@autonomys/auto-drive 1.0.3 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{cjs/api → api}/calls/download.d.ts +1 -0
- package/dist/api/calls/download.d.ts.map +1 -0
- package/dist/api/calls/download.js +21 -0
- package/dist/{esm/api → api}/calls/index.d.ts +1 -0
- package/dist/api/calls/index.d.ts.map +1 -0
- package/dist/{esm/api → api}/calls/read.d.ts +1 -0
- package/dist/api/calls/read.d.ts.map +1 -0
- package/dist/{cjs/api/calls/read.d.ts → api/calls/read.js} +72 -20
- package/dist/{esm/api → api}/calls/upload.d.ts +3 -2
- package/dist/api/calls/upload.d.ts.map +1 -0
- package/dist/{cjs/api/calls/upload.d.ts → api/calls/upload.js} +65 -29
- package/dist/{cjs/api → api}/calls/write.d.ts +1 -0
- package/dist/api/calls/write.d.ts.map +1 -0
- package/dist/{esm/api/calls/write.d.ts → api/calls/write.js} +38 -12
- package/dist/api/connection.d.ts +15 -0
- package/dist/api/connection.d.ts.map +1 -0
- package/dist/api/connection.js +24 -0
- package/dist/{esm/api → api}/index.d.ts +1 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/models/folderTree.d.ts +45 -0
- package/dist/api/models/folderTree.d.ts.map +1 -0
- package/dist/api/models/folderTree.js +56 -0
- package/dist/{esm/api → api}/models/index.d.ts +1 -0
- package/dist/api/models/index.d.ts.map +1 -0
- package/dist/{cjs/api → api}/models/objects.d.ts +1 -0
- package/dist/api/models/objects.d.ts.map +1 -0
- package/dist/api/models/objects.js +10 -0
- package/dist/api/models/uploads.d.ts +117 -0
- package/dist/api/models/uploads.d.ts.map +1 -0
- package/dist/api/models/uploads.js +40 -0
- package/dist/{cjs/api → api}/wrappers.d.ts +5 -3
- package/dist/api/wrappers.d.ts.map +1 -0
- package/dist/api/wrappers.js +192 -0
- package/dist/{esm/index.d.ts → index.d.ts} +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/{cjs/utils → utils}/async.d.ts +1 -0
- package/dist/utils/async.d.ts.map +1 -0
- package/dist/utils/async.js +58 -0
- package/dist/{cjs/utils → utils}/folder.d.ts +1 -0
- package/dist/utils/folder.d.ts.map +1 -0
- package/dist/utils/folder.js +23 -0
- package/dist/{esm/utils → utils}/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/{cjs/utils → utils}/stream.d.ts +1 -0
- package/dist/utils/stream.d.ts.map +1 -0
- package/dist/utils/stream.js +22 -0
- package/dist/{cjs/utils → utils}/types.d.ts +1 -0
- package/dist/utils/types.d.ts.map +1 -0
- package/dist/utils/types.js +1 -0
- package/package.json +3 -3
- package/dist/cjs/api/connection.d.ts +0 -7
- package/dist/cjs/api/models/folderTree.d.ts +0 -29
- package/dist/cjs/api/models/uploads.d.ts +0 -113
- package/dist/cjs/index.js +0 -28810
- package/dist/cjs/index.js.map +0 -1
- package/dist/esm/api/calls/download.d.ts +0 -5
- package/dist/esm/api/connection.d.ts +0 -7
- package/dist/esm/api/models/folderTree.d.ts +0 -29
- package/dist/esm/api/models/objects.d.ts +0 -40
- package/dist/esm/api/models/uploads.d.ts +0 -113
- package/dist/esm/api/wrappers.d.ts +0 -66
- package/dist/esm/index.js +0 -28762
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/utils/async.d.ts +0 -2
- package/dist/esm/utils/folder.d.ts +0 -1
- package/dist/esm/utils/stream.d.ts +0 -2
- package/dist/esm/utils/types.d.ts +0 -5
- /package/dist/{cjs/api/calls/index.d.ts → api/calls/index.js} +0 -0
- /package/dist/{cjs/api/index.d.ts → api/index.js} +0 -0
- /package/dist/{cjs/api/models/index.d.ts → api/models/index.js} +0 -0
- /package/dist/{cjs/index.d.ts → index.js} +0 -0
- /package/dist/{cjs/utils/index.d.ts → utils/index.js} +0 -0
package/dist/esm/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/api/calls/download.ts","../../src/api/calls/read.ts","../../src/api/calls/upload.ts","../../src/api/calls/write.ts","../../src/api/connection.ts","../../src/api/models/objects.ts","../../../../node_modules/zod/lib/index.mjs","../../src/api/models/folderTree.ts","../../src/api/models/uploads.ts","../../../../node_modules/blake3/dist/base/hash-fn.js","../../../../node_modules/blake3/pkg/nodejs/blake3_bg.js","../../../../node_modules/blake3/pkg/nodejs/blake3.js","../../../../node_modules/blake3/dist/node/hash-fn.js","../../../../node_modules/blake3/dist/base/hash-instance.js","../../../../node_modules/blake3/dist/base/index.js","../../../../node_modules/blake3/dist/node/hash-instance.js","../../../../node_modules/blake3/dist/node/index.js","../../../../node_modules/blake3/dist/index.js","../../../../node_modules/multiformats/dist/src/bytes.js","../../../../node_modules/multiformats/dist/src/vendor/base-x.js","../../../../node_modules/multiformats/dist/src/bases/base.js","../../../../node_modules/multiformats/dist/src/bases/base32.js","../../../../node_modules/multiformats/dist/src/bases/base58.js","../../../../node_modules/@ipld/dag-pb/src/pb-decode.js","../../../../node_modules/@ipld/dag-pb/src/pb-encode.js","../../../../node_modules/@ipld/dag-pb/src/util.js","../../../auto-dag-data/dist/ipld/utils.js","../../../../node_modules/fflate/esm/browser.js","../../../../node_modules/uint8arrays/dist/src/alloc.js","../../../../node_modules/uint8-varint/dist/src/index.js","../../../../node_modules/protons-runtime/dist/src/utils/float.js","../../../../node_modules/protons-runtime/dist/src/utils/longbits.js","../../../../node_modules/protons-runtime/dist/src/utils/utf8.js","../../../../node_modules/protons-runtime/dist/src/utils/reader.js","../../../../node_modules/protons-runtime/dist/src/decode.js","../../../../node_modules/multiformats/dist/src/bases/base10.js","../../../../node_modules/multiformats/dist/src/bases/base16.js","../../../../node_modules/multiformats/dist/src/bases/base2.js","../../../../node_modules/multiformats/dist/src/bases/base256emoji.js","../../../../node_modules/multiformats/dist/src/bases/base36.js","../../../../node_modules/multiformats/dist/src/bases/base64.js","../../../../node_modules/multiformats/dist/src/bases/base8.js","../../../../node_modules/multiformats/dist/src/bases/identity.js","../../../../node_modules/multiformats/dist/src/codecs/json.js","../../../../node_modules/multiformats/dist/src/basics.js","../../../../node_modules/uint8arrays/dist/src/util/bases.js","../../../../node_modules/uint8arrays/dist/src/from-string.js","../../../../node_modules/protons-runtime/dist/src/utils/pool.js","../../../../node_modules/protons-runtime/dist/src/utils/writer.js","../../../../node_modules/protons-runtime/dist/src/encode.js","../../../../node_modules/protons-runtime/dist/src/codec.js","../../../../node_modules/protons-runtime/dist/src/codecs/enum.js","../../../../node_modules/protons-runtime/dist/src/codecs/message.js","../../../auto-dag-data/dist/metadata/onchain/protobuf/OnchainMetadata.js","../../../auto-dag-data/dist/ipld/chunker.js","../../../auto-dag-data/dist/utils/async.js","../../../auto-dag-data/dist/compression/index.js","../../../../node_modules/pvtsutils/build/index.es.js","../../../../node_modules/pvutils/build/utils.es.js","../../../../node_modules/asn1js/build/index.es.js","../../../../node_modules/@peculiar/asn1-schema/build/es2015/enums.js","../../../../node_modules/@peculiar/asn1-schema/build/es2015/converters.js","../../../../node_modules/@peculiar/asn1-schema/build/es2015/helper.js","../../../../node_modules/@peculiar/asn1-schema/build/es2015/schema.js","../../../../node_modules/@peculiar/asn1-schema/build/es2015/storage.js","../../../../node_modules/@peculiar/asn1-schema/build/es2015/decorators.js","../../../../node_modules/@peculiar/asn1-schema/build/es2015/errors/schema_validation.js","../../../../node_modules/@peculiar/asn1-schema/build/es2015/parser.js","../../../../node_modules/@peculiar/asn1-schema/build/es2015/serializer.js","../../../../node_modules/@peculiar/asn1-schema/build/es2015/convert.js","../../../../node_modules/@peculiar/json-schema/build/index.es.js","../../../../node_modules/webcrypto-core/build/webcrypto-core.es.js","../../../../node_modules/@peculiar/webcrypto/build/webcrypto.es.js","../../../auto-dag-data/dist/encryption/index.js","../../../../node_modules/mime-db/index.js","../../../../node_modules/mime-types/index.js","../../src/utils/async.ts","../../src/utils/folder.ts","../../src/api/wrappers.ts","../../src/utils/stream.ts"],"sourcesContent":["import { ArgsWithoutPagination } from '../../utils/types.js'\nimport { AutoDriveApi } from '../connection.js'\n\nexport const downloadObject = async (\n api: AutoDriveApi,\n query: ArgsWithoutPagination<{ cid: string }>,\n): Promise<ReadableStream<Uint8Array>> => {\n const response = await api.sendRequest(`/objects/${query.cid}/download`, {\n method: 'GET',\n })\n\n if (!response.ok) {\n throw new Error(`Failed to download file: ${response.statusText}`)\n }\n\n if (!response.body) {\n throw new Error('No body returned from download request')\n }\n\n return response.body\n}\n","import { ArgsWithoutPagination, ArgsWithPagination } from '../../utils/types.js'\nimport { AutoDriveApi } from '../connection.js'\nimport { ObjectInformation, ObjectSummary, Scope } from '../models/objects.js'\n\n/**\n * Retrieves the root objects based on the specified scope.\n *\n * @param {AutoDriveApi} api - The API instance used to send requests.\n * @param {ArgsWithPagination<{ scope: Scope }>} query - The query parameters including scope, limit, and offset.\n * @returns {Promise<ObjectSummary[]>} - A promise that resolves to an array of ObjectSummary representing the root objects.\n * @throws {Error} - Throws an error if the request fails.\n */\nexport const getRoots = async (\n api: AutoDriveApi,\n query: ArgsWithPagination<{ scope: Scope }>,\n): Promise<ObjectSummary[]> => {\n const response = await api.sendRequest(\n `/objects/roots?scope=${query.scope}&limit=${query.limit}&offset=${query.offset}`,\n {\n method: 'GET',\n },\n )\n\n if (!response.ok) {\n throw new Error(`Failed to get roots: ${response.statusText}`)\n }\n\n return response.json()\n}\n\n/**\n * Retrieves the objects that have been shared with the authenticated user.\n *\n * This method sends a request to the server to fetch a list of objects\n * that are shared with the user, based on the specified pagination parameters.\n *\n * @param {AutoDriveApi} api - The API instance used to send requests.\n * @param {ArgsWithPagination} query - The query parameters including limit and offset for pagination.\n * @returns {Promise<ObjectSummary[]>} - A promise that resolves to an array of ObjectSummary representing the shared objects.\n * @throws {Error} - Throws an error if the request fails.\n */\nexport const getSharedWithMe = async (\n api: AutoDriveApi,\n query: ArgsWithPagination,\n): Promise<ObjectSummary[]> => {\n const response = await api.sendRequest(\n `/objects/roots/shared?limit=${query.limit}&offset=${query.offset}`,\n {\n method: 'GET',\n },\n )\n\n if (!response.ok) {\n throw new Error(`Failed to get shared with me: ${response.statusText}`)\n }\n\n return response.json()\n}\n\n/**\n * Retrieves the objects that have been marked as deleted.\n *\n * This method sends a request to the server to fetch a list of objects\n * that have been deleted, based on the specified pagination parameters.\n *\n * @param {AutoDriveApi} api - The API instance used to send requests.\n * @param {ArgsWithPagination} query - The query parameters including limit and offset for pagination.\n * @returns {Promise<ObjectSummary[]>} - A promise that resolves to an array of ObjectSummary representing the deleted objects.\n * @throws {Error} - Throws an error if the request fails.\n */\nexport const getDeleted = async (\n api: AutoDriveApi,\n query: ArgsWithPagination,\n): Promise<ObjectSummary[]> => {\n const response = await api.sendRequest(\n `/objects/roots/deleted?limit=${query.limit}&offset=${query.offset}`,\n {\n method: 'GET',\n },\n )\n\n if (!response.ok) {\n throw new Error(`Failed to get deleted: ${response.statusText}`)\n }\n\n return response.json()\n}\n\n/**\n * Retrieves the aggregated information of a specific object identified by its CID.\n *\n * This method sends a request to the server to fetch details about the\n * object, including its metadata and other relevant information.\n *\n * @param {AutoDriveApi} api - The API instance used to send requests.\n * @param {ArgsWithoutPagination<{ cid: string }>} query - The query parameters containing the CID of the object to retrieve.\n * @returns {Promise<ObjectInformation>} - A promise that resolves to the information of the requested object.\n * @throws {Error} - Throws an error if the request fails.\n */\nexport const getObject = async (\n api: AutoDriveApi,\n query: ArgsWithoutPagination<{ cid: string }>,\n): Promise<ObjectInformation> => {\n const response = await api.sendRequest(`/objects/${query.cid}`, {\n method: 'GET',\n })\n\n if (!response.ok) {\n throw new Error(`Failed to get object: ${response.statusText}`)\n }\n\n return response.json()\n}\n\n/**\n * Retrieves the upload status of a specific object identified by its CID.\n *\n * This method sends a request to the server to fetch the current upload status\n * of the object, which can indicate whether the upload is pending, completed,\n * or failed.\n *\n * @param {AutoDriveApi} api - The API instance used to send requests.\n * @param {ArgsWithoutPagination<{ cid: string }>} query - The query parameters containing the CID of the object whose upload status is to be retrieved.\n * @returns {Promise<ObjectInformation['uploadStatus']>} - A promise that resolves to the upload status of the requested object.\n * @throws {Error} - Throws an error if the request fails.\n */\nexport const getObjectUploadStatus = async (\n api: AutoDriveApi,\n query: ArgsWithoutPagination<{ cid: string }>,\n): Promise<ObjectInformation['uploadStatus']> => {\n const response = await api.sendRequest(`/objects/${query.cid}/status`, {\n method: 'GET',\n })\n\n if (!response.ok) {\n throw new Error(`Failed to get object: ${response.statusText}`)\n }\n\n return response.json()\n}\n\n/**\n * Retrieves the owners of a specific object identified by its CID.\n *\n * This method sends a request to the server to fetch the list of owners\n * associated with the object. The owners can provide insights into who\n * has access to or control over the object.\n *\n * @param {AutoDriveApi} api - The API instance used to send requests.\n * @param {ArgsWithoutPagination<{ cid: string }>} query - The query parameters containing the CID of the object whose owners are to be retrieved.\n * @returns {Promise<ObjectInformation['owners']>} - A promise that resolves to the list of owners of the requested object.\n * @throws {Error} - Throws an error if the request fails.\n */\nexport const getObjectOwners = async (\n api: AutoDriveApi,\n query: ArgsWithoutPagination<{ cid: string }>,\n): Promise<ObjectInformation['owners']> => {\n const response = await api.sendRequest(`/objects/${query.cid}/owners`, {\n method: 'GET',\n })\n\n if (!response.ok) {\n throw new Error(`Failed to get object: ${response.statusText}`)\n }\n\n return response.json()\n}\n\n/**\n * Retrieves the metadata of a specific object identified by its CID.\n *\n * This method sends a request to the server to fetch the metadata associated\n * with the object. The metadata can include various details about the object,\n * such as its name, type, size, and other relevant information.\n *\n * @param {AutoDriveApi} api - The API instance used to send requests.\n * @param {ArgsWithoutPagination<{ cid: string }>} query - The query parameters containing the CID of the object whose metadata is to be retrieved.\n * @returns {Promise<ObjectInformation['metadata']>} - A promise that resolves to the metadata of the requested object.\n * @throws {Error} - Throws an error if the request fails.\n */\nexport const getObjectMetadata = async (\n api: AutoDriveApi,\n query: ArgsWithoutPagination<{ cid: string }>,\n): Promise<ObjectInformation['metadata']> => {\n const response = await api.sendRequest(`/objects/${query.cid}/metadata`, {\n method: 'GET',\n })\n\n if (!response.ok) {\n throw new Error(`Failed to get object: ${response.statusText}`)\n }\n\n return response.json()\n}\n","import { FileUploadOptions } from '@autonomys/auto-dag-data'\nimport { ArgsWithoutPagination } from '../../utils/types.js'\nimport { AutoDriveApi } from '../connection.js'\nimport { FolderTree } from '../models/folderTree.js'\nimport { FileUpload, FolderUpload } from '../models/uploads.js'\n\n/**\n * Initiates a file upload to the server.\n *\n * @param {AutoDriveApi} api - The API instance used to send requests.\n * @param {ArgsWithoutPagination<{ mimeType?: string; filename: string; uploadOptions: FileUploadOptions | null }>} args - The arguments for the file upload.\n * @param {string} args.mimeType - The MIME type of the file (optional).\n * @param {string} args.filename - The name of the file to be uploaded.\n * @param {FileUploadOptions | null} args.uploadOptions - Additional options for the file upload (optional).\n * @returns {Promise<FileUpload>} - A promise that resolves to the file upload information.\n * @throws {Error} - Throws an error if the upload fails.\n */\nexport const createFileUpload = async (\n api: AutoDriveApi,\n {\n mimeType,\n filename,\n uploadOptions = {},\n }: ArgsWithoutPagination<{\n mimeType?: string\n filename: string\n uploadOptions: FileUploadOptions | null\n }>,\n): Promise<FileUpload> => {\n const response = await api.sendRequest(\n `/uploads/file`,\n {\n method: 'POST',\n headers: new Headers({\n 'Content-Type': 'application/json',\n }),\n },\n JSON.stringify({ mimeType, filename, uploadOptions }),\n )\n\n if (!response.ok) {\n throw new Error(`Failed to create file upload: ${response.statusText}`)\n }\n\n return response.json()\n}\n\n/**\n * Initiates a folder upload to the server.\n *\n * @param {AutoDriveApi} api - The API instance used to send requests.\n * @param {ArgsWithoutPagination<{ fileTree: FolderTree; uploadOptions: FileUploadOptions }>} args - The arguments for the folder upload.\n * @param {FolderTree} args.fileTree - The structure of the folder and its contents to be uploaded.\n * @param {FileUploadOptions} args.uploadOptions - Additional options for the folder upload.\n * @returns {Promise<FolderUpload>} - A promise that resolves to the folder upload information.\n * @throws {Error} - Throws an error if the upload fails.\n */\nexport const createFolderUpload = async (\n api: AutoDriveApi,\n {\n fileTree,\n uploadOptions,\n }: ArgsWithoutPagination<{ fileTree: FolderTree; uploadOptions: FileUploadOptions }>,\n): Promise<FolderUpload> => {\n const response = await api.sendRequest(\n `/uploads/folder`,\n {\n method: 'POST',\n headers: new Headers({\n 'Content-Type': 'application/json',\n }),\n },\n JSON.stringify({ fileTree, uploadOptions }),\n )\n\n if (!response.ok) {\n throw new Error(`Failed to create folder upload: ${response.statusText}`)\n }\n\n return response.json()\n}\n\n/**\n * Creates a file upload within an existing folder upload.\n *\n * @param {AutoDriveApi} api - The API instance used to send requests.\n * @param {ArgsWithoutPagination<{ uploadId: string; name: string; mimeType: string; relativeId: string; uploadOptions: FileUploadOptions }>} args - The arguments for the file upload.\n * @param {string} args.uploadId - The ID of the folder upload to which the file will be added.\n * @param {string} args.name - The name of the file to be uploaded.\n * @param {string} args.mimeType - The MIME type of the file being uploaded.\n * @param {string} args.relativeId - The relative ID of the file within the folder structure.\n * @param {FileUploadOptions} [args.uploadOptions={}] - Additional options for the file upload.\n * @returns {Promise<FileUpload>} - A promise that resolves to the file upload information.\n * @throws {Error} - Throws an error if the upload fails.\n */\nexport const createFileUploadWithinFolderUpload = async (\n api: AutoDriveApi,\n {\n uploadId,\n name,\n mimeType,\n relativeId,\n uploadOptions = {},\n }: ArgsWithoutPagination<{\n uploadId: string\n name: string\n mimeType?: string\n relativeId: string\n uploadOptions: FileUploadOptions\n }>,\n): Promise<FileUpload> => {\n const response = await api.sendRequest(\n `/uploads/folder/${uploadId}/file`,\n {\n method: 'POST',\n headers: new Headers({\n 'Content-Type': 'application/json',\n }),\n },\n JSON.stringify({ name, mimeType, relativeId, uploadOptions }),\n )\n\n if (!response.ok) {\n throw new Error(`Failed to create file upload within folder upload: ${response.statusText}`)\n }\n\n return response.json()\n}\n\n/**\n * Uploads a chunk of a file to the server.\n *\n * This function allows for the uploading of a specific chunk of a file\n * during a multi-part upload process. It sends the chunk along with its\n * index to the server, which can be used to reconstruct the file on the\n * server side.\n *\n * @param {AutoDriveApi} api - The API instance used to send requests.\n * @param {ArgsWithoutPagination<{ uploadId: string; chunk: Buffer; index: number }>} args - The arguments for the file chunk upload.\n * @param {string} args.uploadId - The ID of the upload session.\n * @param {Buffer} args.chunk - The chunk of the file to be uploaded.\n * @param {number} args.index - The index of the chunk in the overall file.\n * @returns {Promise<void>} - A promise that resolves when the chunk is uploaded successfully.\n * @throws {Error} - Throws an error if the upload fails.\n */\nexport const uploadFileChunk = async (\n api: AutoDriveApi,\n {\n uploadId,\n chunk,\n index,\n }: ArgsWithoutPagination<{ uploadId: string; chunk: Buffer; index: number }>,\n): Promise<void> => {\n const formData = new FormData()\n formData.append('file', new Blob([chunk]))\n formData.append('index', index.toString())\n\n const response = await api.sendRequest(\n `/uploads/file/${uploadId}/chunk`,\n {\n method: 'POST',\n },\n formData,\n )\n\n if (!response.ok) {\n throw new Error(`Failed to upload file chunk: ${response.statusText}`)\n }\n}\n\n/**\n * Completes a file or folder upload session on the server.\n *\n * This function sends a request to the server to finalize the upload\n * process for a given upload session identified by the upload ID. It is\n * typically called after all file chunks have been uploaded. This method\n * can be used to complete both file and folder uploads.\n *\n * @param {AutoDriveApi} api - The API instance used to send requests.\n * @param {ArgsWithoutPagination<{ uploadId: string }>} args - The arguments for completing the upload.\n * @param {string} args.uploadId - The ID of the upload session to complete.\n * @returns {Promise<any>} - A promise that resolves to the response from the server.\n * @throws {Error} - Throws an error if the completion of the upload fails.\n */\nexport const completeUpload = async (\n api: AutoDriveApi,\n { uploadId }: ArgsWithoutPagination<{ uploadId: string }>,\n) => {\n const response = await api.sendRequest(`/uploads/${uploadId}/complete`, {\n method: 'POST',\n })\n\n if (!response.ok) {\n throw new Error(`Failed to complete upload: ${response.statusText}`)\n }\n\n return response.json()\n}\n","import { ArgsWithoutPagination } from '../../utils/types.js'\nimport { AutoDriveApi } from '../connection.js'\n\n/**\n * Shares an object with a specified public ID.\n *\n * This function sends a request to the server to share an object identified\n * by its CID. The object will be shared with the provided public ID, allowing\n * access to the object for users with that ID.\n *\n * @param {AutoDriveApi} api - The API instance used to send requests.\n * @param {ArgsWithoutPagination<{ cid: string; publicId: string }>} query - The query parameters containing the CID of the object to share and the public ID to share it with.\n * @returns {Promise<any>} - A promise that resolves to the response from the server.\n * @throws {Error} - Throws an error if the sharing process fails.\n */\nexport const shareObject = async (\n api: AutoDriveApi,\n query: ArgsWithoutPagination<{ cid: string; publicId: string }>,\n) => {\n const response = await api.sendRequest(\n `/objects/${query.cid}/share`,\n {\n method: 'POST',\n headers: new Headers({\n 'Content-Type': 'application/json',\n }),\n },\n JSON.stringify({ publicId: query.publicId }),\n )\n\n if (!response.ok) {\n throw new Error(`Failed to share object: ${response.statusText}`)\n }\n\n return response.json()\n}\n\n/**\n * Marks an object as deleted by sending a request to the server.\n *\n * This function sends a request to the server to mark an object identified\n * by its CID as deleted. This action is typically irreversible and should\n * be used with caution.\n *\n * @param {AutoDriveApi} api - The API instance used to send requests.\n * @param {ArgsWithoutPagination<{ cid: string }>} query - The query parameters containing the CID of the object to mark as deleted.\n * @returns {Promise<void>} - A promise that resolves when the object has been marked as deleted.\n * @throws {Error} - Throws an error if the marking process fails.\n */\nexport const markObjectAsDeleted = async (\n api: AutoDriveApi,\n query: ArgsWithoutPagination<{ cid: string }>,\n): Promise<void> => {\n const response = await api.sendRequest(`/objects/${query.cid}/delete`, {\n method: 'POST',\n })\n\n if (!response.ok) {\n throw new Error(`Failed to mark object as deleted: ${response.statusText}`)\n }\n}\n\n/**\n * Restores an object that has been marked as deleted by sending a request to the server.\n *\n * This function sends a request to the server to restore an object identified\n * by its CID. The restoration process may depend on the server's implementation\n * and the object's current state.\n *\n * @param {AutoDriveApi} api - The API instance used to send requests.\n * @param {ArgsWithoutPagination<{ cid: string }>} query - The query parameters containing the CID of the object to restore.\n * @returns {Promise<void>} - A promise that resolves when the object has been successfully restored.\n * @throws {Error} - Throws an error if the restoration process fails.\n */\nexport const restoreObject = async (\n api: AutoDriveApi,\n query: ArgsWithoutPagination<{ cid: string }>,\n): Promise<void> => {\n const response = await api.sendRequest(`/objects/${query.cid}/restore`, {\n method: 'POST',\n })\n\n if (!response.ok) {\n throw new Error(`Failed to restore object: ${response.statusText}`)\n }\n\n return response.json()\n}\n","export interface AutoDriveApi {\n sendRequest: (\n relativeUrl: string,\n request: Partial<Request>,\n body?: BodyInit,\n ) => Promise<Response>\n}\n\nexport const createAutoDriveApi = ({\n apiKey,\n url = 'https://demo.auto-drive.autonomys.xyz',\n}: {\n apiKey: string\n url?: string\n}): AutoDriveApi => {\n return {\n sendRequest: async (relativeUrl: string, request: Partial<Request>, body?: BodyInit) => {\n const headers = new Headers({\n ...Object.fromEntries(request.headers?.entries() || []),\n 'x-auth-provider': 'apikey',\n Authorization: `Bearer ${apiKey}`,\n })\n const fullRequest = {\n ...request,\n headers: new Headers(headers),\n body,\n }\n\n return fetch(`${url}${relativeUrl}`, fullRequest)\n },\n }\n}\n","import { OffchainMetadata } from '@autonomys/auto-dag-data'\n\nexport enum Scope {\n Global = 'global',\n User = 'user',\n}\n\nexport interface Owner {\n publicId: string\n role: OwnerRole\n}\n\nexport enum OwnerRole {\n ADMIN = 'admin',\n VIEWER = 'viewer',\n}\n\nexport interface ObjectUploadStatus {\n uploadedNodes: number | null\n totalNodes: number | null\n minimumBlockDepth: number | null\n maximumBlockDepth: number | null\n}\n\nexport type ObjectSummary = {\n headCid: string\n name?: string\n size: number\n owners: Owner[]\n uploadStatus: ObjectUploadStatus\n} & (\n | {\n type: 'file'\n mimeType?: string\n }\n | {\n type: 'folder'\n children: (OffchainMetadata & { type: 'folder' })['children']\n }\n)\n\nexport interface ObjectInformation {\n cid: string\n metadata: OffchainMetadata\n uploadStatus: ObjectUploadStatus\n owners: Owner[]\n}\n","var util;\n(function (util) {\n util.assertEqual = (val) => val;\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array\n .map((val) => (typeof val === \"string\" ? `'${val}'` : val))\n .join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nvar objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nconst ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nconst getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then &&\n typeof data.then === \"function\" &&\n data.catch &&\n typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n\nconst ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nconst quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nclass ZodError extends Error {\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n get errors() {\n return this.issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n static assert(value) {\n if (!(value instanceof ZodError)) {\n throw new Error(`Not a ZodError: ${value}`);\n }\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n 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 }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n }\n else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact\n ? `exactly equal to `\n : issue.inclusive\n ? `greater than or equal to `\n : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact\n ? `exactly equal to `\n : issue.inclusive\n ? `greater than or equal to `\n : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `less than or equal to`\n : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `less than or equal to`\n : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `smaller than or equal to`\n : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\n\nlet overrideErrorMap = errorMap;\nfunction setErrorMap(map) {\n overrideErrorMap = map;\n}\nfunction getErrorMap() {\n return overrideErrorMap;\n}\n\nconst makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n if (issueData.message !== undefined) {\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message,\n };\n }\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: errorMessage,\n };\n};\nconst EMPTY_PATH = [];\nfunction addIssueToContext(ctx, issueData) {\n const overrideMap = getErrorMap();\n const issue = makeIssue({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n overrideMap,\n overrideMap === errorMap ? undefined : errorMap, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nclass ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (key.value !== \"__proto__\" &&\n (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nconst INVALID = Object.freeze({\n status: \"aborted\",\n});\nconst DIRTY = (value) => ({ status: \"dirty\", value });\nconst OK = (value) => ({ status: \"valid\", value });\nconst isAborted = (x) => x.status === \"aborted\";\nconst isDirty = (x) => x.status === \"dirty\";\nconst isValid = (x) => x.status === \"valid\";\nconst isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nfunction __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nvar errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message === null || message === void 0 ? void 0 : message.message;\n})(errorUtil || (errorUtil = {}));\n\nvar _ZodEnum_cache, _ZodNativeEnum_cache;\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (this._key instanceof Array) {\n this._cachedPath.push(...this._path, ...this._key);\n }\n else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n },\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n var _a, _b;\n const { message } = params;\n if (iss.code === \"invalid_enum_value\") {\n return { message: message !== null && message !== void 0 ? message : ctx.defaultError };\n }\n if (typeof ctx.data === \"undefined\") {\n return { message: (_a = message !== null && message !== void 0 ? message : required_error) !== null && _a !== void 0 ? _a : ctx.defaultError };\n }\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n return { message: (_b = message !== null && message !== void 0 ? message : invalid_type_error) !== null && _b !== void 0 ? _b : ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nclass ZodType {\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n }\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n var _a;\n const ctx = {\n common: {\n issues: [],\n async: (_a = params === null || params === void 0 ? void 0 : params.async) !== null && _a !== void 0 ? _a : false,\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n async: true,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult)\n ? maybeAsyncResult\n : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\"\n ? refinementData(val, ctx)\n : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this, this._def);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[0-9a-z]+$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/;\n// const uuidRegex =\n// /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nconst nanoidRegex = /^[a-z0-9_-]{21}$/i;\nconst durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n// /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n// /^[a-zA-Z0-9\\.\\!\\#\\$\\%\\&\\'\\*\\+\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~\\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// const emailRegex =\n// /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n// /^[a-z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\n// faster, simpler, safer\nconst ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nconst ipv6Regex = /^(([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// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nconst base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\n// simple\n// const dateRegexSource = `\\\\d{4}-\\\\d{2}-\\\\d{2}`;\n// no leap year validation\n// const dateRegexSource = `\\\\d{4}-((0[13578]|10|12)-31|(0[13-9]|1[0-2])-30|(0[1-9]|1[0-2])-(0[1-9]|1\\\\d|2\\\\d))`;\n// with leap year validation\nconst dateRegexSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateRegex = new RegExp(`^${dateRegexSource}$`);\nfunction timeRegexSource(args) {\n // let regex = `\\\\d{2}:\\\\d{2}:\\\\d{2}`;\n let regex = `([01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d`;\n if (args.precision) {\n regex = `${regex}\\\\.\\\\d{${args.precision}}`;\n }\n else if (args.precision == null) {\n regex = `${regex}(\\\\.\\\\d+)?`;\n }\n return regex;\n}\nfunction timeRegex(args) {\n return new RegExp(`^${timeRegexSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nfunction datetimeRegex(args) {\n let regex = `${dateRegexSource}T${timeRegexSource(args)}`;\n const opts = [];\n opts.push(args.local ? `Z?` : `Z`);\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:?\\\\d{2})`);\n regex = `${regex}(${opts.join(\"|\")})`;\n return new RegExp(`^${regex}$`);\n}\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nclass ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"nanoid\") {\n if (!nanoidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"nanoid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch (_a) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n }\n else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"date\") {\n const regex = dateRegex;\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"date\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"time\") {\n const regex = timeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"time\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"duration\") {\n if (!durationRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"duration\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64\") {\n if (!base64Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n nanoid(message) {\n return this._addCheck({ kind: \"nanoid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n base64(message) {\n return this._addCheck({ kind: \"base64\", ...errorUtil.errToObj(message) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n datetime(options) {\n var _a, _b;\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n local: false,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === \"undefined\" ? null : options === null || options === void 0 ? void 0 : options.precision,\n offset: (_a = options === null || options === void 0 ? void 0 : options.offset) !== null && _a !== void 0 ? _a : false,\n local: (_b = options === null || options === void 0 ? void 0 : options.local) !== null && _b !== void 0 ? _b : false,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n date(message) {\n return this._addCheck({ kind: \"date\", message });\n }\n time(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"time\",\n precision: null,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"time\",\n precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === \"undefined\" ? null : options === null || options === void 0 ? void 0 : options.precision,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n duration(message) {\n return this._addCheck({ kind: \"duration\", ...errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value: value,\n position: options === null || options === void 0 ? void 0 : options.position,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message),\n });\n }\n /**\n * @deprecated Use z.string().min(1) instead.\n * @see {@link ZodString.min}\n */\n nonempty(message) {\n return this.min(1, errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isDate() {\n return !!this._def.checks.find((ch) => ch.kind === \"date\");\n }\n get isTime() {\n return !!this._def.checks.find((ch) => ch.kind === \"time\");\n }\n get isDuration() {\n return !!this._def.checks.find((ch) => ch.kind === \"duration\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isNANOID() {\n return !!this._def.checks.find((ch) => ch.kind === \"nanoid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get isBase64() {\n return !!this._def.checks.find((ch) => ch.kind === \"base64\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n var _a;\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / Math.pow(10, decCount);\n}\nclass ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive\n ? input.data < check.value\n : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive\n ? input.data > check.value\n : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message),\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" ||\n (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null, min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" ||\n ch.kind === \"int\" ||\n ch.kind === \"multipleOf\") {\n return true;\n }\n else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n ...processCreateParams(params),\n });\n};\nclass ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = BigInt(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive\n ? input.data < check.value\n : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive\n ? input.data > check.value\n : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodBigInt.create = (params) => {\n var _a;\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,\n ...processCreateParams(params),\n });\n};\nclass ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n ...processCreateParams(params),\n });\n};\nclass ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nclass ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nclass ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nclass ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nclass ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nclass ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nclass ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nclass ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nclass ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: (tooSmall ? def.exactLength.value : undefined),\n maximum: (tooBig ? def.exactLength.value : undefined),\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message,\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element),\n });\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nclass ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n // extend<\n // Augmentation extends ZodRawShape,\n // NewOutput extends util.flatten<{\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // }>,\n // NewInput extends util.flatten<{\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }>\n // >(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<T, Augmentation>,\n // UnknownKeys,\n // Catchall,\n // NewOutput,\n // NewInput\n // > {\n // return new ZodObject({\n // ...this._def,\n // shape: () => ({\n // ...this._def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // }\n /**\n * @deprecated Use `.extend` instead\n * */\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n return (this._cached = { shape, keys });\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever &&\n this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") ;\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n var _a, _b, _c, _d;\n const defaultError = (_c = (_b = (_a = this._def).errorMap) === null || _b === void 0 ? void 0 : _b.call(_a, issue, ctx).message) !== null && _c !== void 0 ? _c : ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: (_d = errorUtil.errToObj(message).message) !== null && _d !== void 0 ? _d : defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n // const AugmentFactory =\n // <Def extends ZodObjectDef>(def: Def) =>\n // <Augmentation extends ZodRawShape>(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<ReturnType<Def[\"shape\"]>, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation,\n }),\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape(),\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge<Incoming extends AnyZodObject>(\n // merging: Incoming\n // ): //ZodObject<T & Incoming[\"_shape\"], UnknownKeys, Catchall> = (merging) => {\n // ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n util.objectKeys(mask).forEach((key) => {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n util.objectKeys(this.shape).forEach((key) => {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n util.objectKeys(this.shape).forEach((key) => {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n }\n else {\n newShape[key] = fieldSchema.optional();\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required(mask) {\n const newShape = {};\n util.objectKeys(this.shape).forEach((key) => {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n }\n else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nclass ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n////////// //////////\n////////// ZodDiscriminatedUnion //////////\n////////// //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n }\n else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n }\n else if (type instanceof ZodLiteral) {\n return [type.value];\n }\n else if (type instanceof ZodEnum) {\n return type.options;\n }\n else if (type instanceof ZodNativeEnum) {\n // eslint-disable-next-line ban/ban\n return util.objectValues(type.enum);\n }\n else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n }\n else if (type instanceof ZodUndefined) {\n return [undefined];\n }\n else if (type instanceof ZodNull) {\n return [null];\n }\n else if (type instanceof ZodOptional) {\n return [undefined, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodNullable) {\n return [null, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodBranded) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodReadonly) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodCatch) {\n return getDiscriminator(type._def.innerType);\n }\n else {\n return [];\n }\n};\nclass ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n // Get all the valid discriminator values\n const optionsMap = new Map();\n // try {\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues.length) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util\n .objectKeys(a)\n .filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date &&\n bType === ZodParsedType.date &&\n +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nclass ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\nclass ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n status.dirty();\n }\n const items = [...ctx.data]\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nclass ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nclass ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nclass ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nclass ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(async function (...args) {\n const error = new ZodError([]);\n const parsedArgs = await me._def.args\n .parseAsync(args, params)\n .catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args\n ? args\n : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nclass ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nclass ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nclass ZodEnum extends ZodType {\n constructor() {\n super(...arguments);\n _ZodEnum_cache.set(this, void 0);\n }\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!__classPrivateFieldGet(this, _ZodEnum_cache, \"f\")) {\n __classPrivateFieldSet(this, _ZodEnum_cache, new Set(this._def.values), \"f\");\n }\n if (!__classPrivateFieldGet(this, _ZodEnum_cache, \"f\").has(input.data)) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values, newDef = this._def) {\n return ZodEnum.create(values, {\n ...this._def,\n ...newDef,\n });\n }\n exclude(values, newDef = this._def) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {\n ...this._def,\n ...newDef,\n });\n }\n}\n_ZodEnum_cache = new WeakMap();\nZodEnum.create = createZodEnum;\nclass ZodNativeEnum extends ZodType {\n constructor() {\n super(...arguments);\n _ZodNativeEnum_cache.set(this, void 0);\n }\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string &&\n ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!__classPrivateFieldGet(this, _ZodNativeEnum_cache, \"f\")) {\n __classPrivateFieldSet(this, _ZodNativeEnum_cache, new Set(util.getValidEnumValues(this._def.values)), \"f\");\n }\n if (!__classPrivateFieldGet(this, _ZodNativeEnum_cache, \"f\").has(input.data)) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\n_ZodNativeEnum_cache = new WeakMap();\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nclass ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise &&\n ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise\n ? ctx.data\n : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nclass ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n ? this._def.schema.sourceType()\n : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(processed).then(async (processed) => {\n if (status.value === \"aborted\")\n return INVALID;\n const result = await this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n });\n }\n else {\n if (status.value === \"aborted\")\n return INVALID;\n const result = this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (!isValid(base))\n return base;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((base) => {\n if (!isValid(base))\n return base;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({ status: status.value, value: result }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nclass ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nclass ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nclass ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\"\n ? params.default\n : () => params.default,\n ...processCreateParams(params),\n });\n};\nclass ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n // newCtx is used to not collect issues from inner types in ctx\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx,\n },\n });\n if (isAsync(result)) {\n return result.then((result) => {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n });\n }\n else {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params),\n });\n};\nclass ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nconst BRAND = Symbol(\"zod_brand\");\nclass ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nclass ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n }\n else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n };\n return handleAsync();\n }\n else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value,\n };\n }\n else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline,\n });\n }\n}\nclass ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n const freeze = (data) => {\n if (isValid(data)) {\n data.value = Object.freeze(data.value);\n }\n return data;\n };\n return isAsync(result)\n ? result.then((data) => freeze(data))\n : freeze(result);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params),\n });\n};\nfunction custom(check, params = {}, \n/**\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n var _a, _b;\n if (!check(data)) {\n const p = typeof params === \"function\"\n ? params(data)\n : typeof params === \"string\"\n ? { message: params }\n : params;\n const _fatal = (_b = (_a = p.fatal) !== null && _a !== void 0 ? _a : fatal) !== null && _b !== void 0 ? _b : true;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n ctx.addIssue({ code: \"custom\", ...p2, fatal: _fatal });\n }\n });\n return ZodAny.create();\n}\nconst late = {\n object: ZodObject.lazycreate,\n};\nvar ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\nconst instanceOfType = (\n// const instanceOfType = <T extends new (...args: any[]) => any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nconst coerce = {\n string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n boolean: ((arg) => ZodBoolean.create({\n ...arg,\n coerce: true,\n })),\n bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nconst NEVER = INVALID;\n\nvar z = /*#__PURE__*/Object.freeze({\n __proto__: null,\n defaultErrorMap: errorMap,\n setErrorMap: setErrorMap,\n getErrorMap: getErrorMap,\n makeIssue: makeIssue,\n EMPTY_PATH: EMPTY_PATH,\n addIssueToContext: addIssueToContext,\n ParseStatus: ParseStatus,\n INVALID: INVALID,\n DIRTY: DIRTY,\n OK: OK,\n isAborted: isAborted,\n isDirty: isDirty,\n isValid: isValid,\n isAsync: isAsync,\n get util () { return util; },\n get objectUtil () { return objectUtil; },\n ZodParsedType: ZodParsedType,\n getParsedType: getParsedType,\n ZodType: ZodType,\n datetimeRegex: datetimeRegex,\n ZodString: ZodString,\n ZodNumber: ZodNumber,\n ZodBigInt: ZodBigInt,\n ZodBoolean: ZodBoolean,\n ZodDate: ZodDate,\n ZodSymbol: ZodSymbol,\n ZodUndefined: ZodUndefined,\n ZodNull: ZodNull,\n ZodAny: ZodAny,\n ZodUnknown: ZodUnknown,\n ZodNever: ZodNever,\n ZodVoid: ZodVoid,\n ZodArray: ZodArray,\n ZodObject: ZodObject,\n ZodUnion: ZodUnion,\n ZodDiscriminatedUnion: ZodDiscriminatedUnion,\n ZodIntersection: ZodIntersection,\n ZodTuple: ZodTuple,\n ZodRecord: ZodRecord,\n ZodMap: ZodMap,\n ZodSet: ZodSet,\n ZodFunction: ZodFunction,\n ZodLazy: ZodLazy,\n ZodLiteral: ZodLiteral,\n ZodEnum: ZodEnum,\n ZodNativeEnum: ZodNativeEnum,\n ZodPromise: ZodPromise,\n ZodEffects: ZodEffects,\n ZodTransformer: ZodEffects,\n ZodOptional: ZodOptional,\n ZodNullable: ZodNullable,\n ZodDefault: ZodDefault,\n ZodCatch: ZodCatch,\n ZodNaN: ZodNaN,\n BRAND: BRAND,\n ZodBranded: ZodBranded,\n ZodPipeline: ZodPipeline,\n ZodReadonly: ZodReadonly,\n custom: custom,\n Schema: ZodType,\n ZodSchema: ZodType,\n late: late,\n get ZodFirstPartyTypeKind () { return ZodFirstPartyTypeKind; },\n coerce: coerce,\n any: anyType,\n array: arrayType,\n bigint: bigIntType,\n boolean: booleanType,\n date: dateType,\n discriminatedUnion: discriminatedUnionType,\n effect: effectsType,\n 'enum': enumType,\n 'function': functionType,\n 'instanceof': instanceOfType,\n intersection: intersectionType,\n lazy: lazyType,\n literal: literalType,\n map: mapType,\n nan: nanType,\n nativeEnum: nativeEnumType,\n never: neverType,\n 'null': nullType,\n nullable: nullableType,\n number: numberType,\n object: objectType,\n oboolean: oboolean,\n onumber: onumber,\n optional: optionalType,\n ostring: ostring,\n pipeline: pipelineType,\n preprocess: preprocessType,\n promise: promiseType,\n record: recordType,\n set: setType,\n strictObject: strictObjectType,\n string: stringType,\n symbol: symbolType,\n transformer: effectsType,\n tuple: tupleType,\n 'undefined': undefinedType,\n union: unionType,\n unknown: unknownType,\n 'void': voidType,\n NEVER: NEVER,\n ZodIssueCode: ZodIssueCode,\n quotelessJson: quotelessJson,\n ZodError: ZodError\n});\n\nexport { BRAND, DIRTY, EMPTY_PATH, INVALID, NEVER, OK, ParseStatus, ZodType as Schema, ZodAny, ZodArray, ZodBigInt, ZodBoolean, ZodBranded, ZodCatch, ZodDate, ZodDefault, ZodDiscriminatedUnion, ZodEffects, ZodEnum, ZodError, ZodFirstPartyTypeKind, ZodFunction, ZodIntersection, ZodIssueCode, ZodLazy, ZodLiteral, ZodMap, ZodNaN, ZodNativeEnum, ZodNever, ZodNull, ZodNullable, ZodNumber, ZodObject, ZodOptional, ZodParsedType, ZodPipeline, ZodPromise, ZodReadonly, ZodRecord, ZodType as ZodSchema, ZodSet, ZodString, ZodSymbol, ZodEffects as ZodTransformer, ZodTuple, ZodType, ZodUndefined, ZodUnion, ZodUnknown, ZodVoid, addIssueToContext, anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, coerce, custom, dateType as date, datetimeRegex, z as default, errorMap as defaultErrorMap, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, getErrorMap, getParsedType, instanceOfType as instanceof, intersectionType as intersection, isAborted, isAsync, isDirty, isValid, late, lazyType as lazy, literalType as literal, makeIssue, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, objectUtil, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, quotelessJson, recordType as record, setType as set, setErrorMap, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, util, voidType as void, z };\n","import { z } from 'zod'\nexport type FolderTreeFolder = {\n name: string\n type: 'folder'\n children: FolderTree[]\n id: string\n}\n\nexport type FolderTreeFile = {\n name: string\n type: 'file'\n id: string\n}\n\nexport type FolderTree = FolderTreeFolder | FolderTreeFile\n\nexport const FolderTreeFolderSchema = z.object({\n name: z.string(),\n type: z.literal('folder'),\n children: z.array(z.lazy(() => FolderTreeSchema)),\n id: z.string(),\n})\n\nexport const FolderTreeFileSchema = z.object({\n name: z.string(),\n type: z.literal('file'),\n id: z.string(),\n})\n\nexport const FolderTreeSchema = z.discriminatedUnion('type', [\n FolderTreeFolderSchema,\n FolderTreeFileSchema,\n])\n\nexport const constructFromFileSystemEntries = (entries: string[]): FolderTree => {\n const root: FolderTreeFolder = {\n name: 'root',\n type: 'folder',\n children: [],\n id: 'root',\n }\n\n for (const entry of entries) {\n const pathParts = entry.split('/').filter(Boolean)\n let currentFolder = root\n\n for (const [index, part] of Array.from(pathParts.entries())) {\n // Check if the part already exists in the current folder's children\n let existingFolder = currentFolder.children.find((child) => child.name === part)\n\n if (!existingFolder) {\n // If it's the last part, create a file node\n if (index === pathParts.length - 1) {\n const fileNode: FolderTreeFile = {\n name: part,\n type: 'file',\n id: entry,\n }\n currentFolder.children.push(fileNode)\n } else {\n // Create a new folder node\n const folderNode: FolderTreeFolder = {\n name: part,\n type: 'folder',\n children: [],\n id: `${currentFolder.id.split('/').slice(1).join('/')}/${part}`,\n }\n currentFolder.children.push(folderNode)\n existingFolder = folderNode\n }\n }\n currentFolder = existingFolder as FolderTreeFolder // Move to the next folder\n }\n }\n\n return root.children.length === 1 ? root.children[0] : root\n}\n","import { FileUploadOptions } from '@autonomys/auto-dag-data'\nimport { z } from 'zod'\nimport { FolderTreeFolderSchema } from './folderTree.js'\n\nexport enum UploadType {\n FILE = 'file',\n FOLDER = 'folder',\n}\n\nexport enum UploadStatus {\n PENDING = 'pending',\n COMPLETED = 'completed',\n MIGRATING = 'migrating',\n CANCELLED = 'cancelled',\n FAILED = 'failed',\n}\n\nexport const fileUploadSchema = z.object({\n id: z.string(),\n rootId: z.string(),\n relativeId: z.string().nullable(),\n type: z.nativeEnum(UploadType),\n status: z.nativeEnum(UploadStatus),\n fileTree: z.null(),\n name: z.string(),\n mimeType: z.string().nullable(),\n oauthProvider: z.string(),\n oauthUserId: z.string(),\n})\n\nexport type FileUpload = z.infer<typeof fileUploadSchema> & {\n uploadOptions: FileUploadOptions | null\n}\n\nexport const folderUploadSchema = z.object({\n id: z.string(),\n rootId: z.string(),\n relativeId: z.string().nullable(),\n type: z.nativeEnum(UploadType),\n status: z.nativeEnum(UploadStatus),\n fileTree: FolderTreeFolderSchema,\n name: z.string(),\n mimeType: z.null(),\n oauthProvider: z.string(),\n oauthUserId: z.string(),\n uploadOptions: z.null(),\n})\n\nexport type FolderUpload = z.infer<typeof folderUploadSchema>\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Converts the input to an Uint8Array.\n * @hidden\n */\nexports.inputToArray = (input) => input instanceof Uint8Array ? input : new Uint8Array(input);\n//# sourceMappingURL=hash-fn.js.map","\nconst path = require('path').join(__dirname, 'blake3_bg.wasm');\nconst bytes = require('fs').readFileSync(path);\nlet imports = {};\nimports['./blake3.js'] = require('./blake3.js');\n\nconst wasmModule = new WebAssembly.Module(bytes);\nconst wasmInstance = new WebAssembly.Instance(wasmModule, imports);\nmodule.exports = wasmInstance.exports;\n","let wasm;\nconst { TextDecoder } = require(String.raw`util`);\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n\ncachedTextDecoder.decode();\n\nlet cachegetUint8Memory0 = null;\nfunction getUint8Memory0() {\n if (cachegetUint8Memory0 === null || cachegetUint8Memory0.buffer !== wasm.memory.buffer) {\n cachegetUint8Memory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachegetUint8Memory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len));\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nfunction passArray8ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 1);\n getUint8Memory0().set(arg, ptr / 1);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n/**\n* @param {Uint8Array} data\n* @param {Uint8Array} out\n*/\nmodule.exports.hash = function(data, out) {\n try {\n var ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = passArray8ToWasm0(out, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n wasm.hash(ptr0, len0, ptr1, len1);\n } finally {\n out.set(getUint8Memory0().subarray(ptr1 / 1, ptr1 / 1 + len1));\n wasm.__wbindgen_free(ptr1, len1 * 1);\n }\n};\n\n/**\n*/\nclass Blake3Hash {\n\n static __wrap(ptr) {\n const obj = Object.create(Blake3Hash.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n free() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n wasm.__wbg_blake3hash_free(ptr);\n }\n /**\n */\n constructor() {\n var ret = wasm.blake3hash_new();\n return Blake3Hash.__wrap(ret);\n }\n /**\n * @param {Uint8Array} input_bytes\n */\n update(input_bytes) {\n var ptr0 = passArray8ToWasm0(input_bytes, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n wasm.blake3hash_update(this.ptr, ptr0, len0);\n }\n /**\n * @param {Uint8Array} out\n */\n digest(out) {\n try {\n var ptr0 = passArray8ToWasm0(out, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n wasm.blake3hash_digest(this.ptr, ptr0, len0);\n } finally {\n out.set(getUint8Memory0().subarray(ptr0 / 1, ptr0 / 1 + len0));\n wasm.__wbindgen_free(ptr0, len0 * 1);\n }\n }\n}\nmodule.exports.Blake3Hash = Blake3Hash;\n\nmodule.exports.__wbindgen_throw = function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n};\nwasm = require('./blake3_bg');\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst hash_fn_1 = require(\"../base/hash-fn\");\nconst blake3_1 = require(\"../../pkg/nodejs/blake3\");\n/**\n * @hidden\n */\nexports.normalizeInput = (input, encoding) => hash_fn_1.inputToArray(typeof input === 'string' ? Buffer.from(input, encoding) : input);\nfunction hash(input, encoding) {\n const result = Buffer.alloc(32);\n blake3_1.hash(exports.normalizeInput(input), result);\n return encoding ? result.toString(encoding) : result;\n}\nexports.hash = hash;\n//# sourceMappingURL=hash-fn.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst hash_fn_1 = require(\"./hash-fn\");\n/**\n * A blake3 hash. Quite similar to Node's crypto hashing.\n *\n * Note that you must call {@link IHash#dispose} or {@link IHash#done} when\n * you're finished with it to free memory.\n */\nclass BaseHash {\n constructor(rawCtor, digested) {\n this.rawCtor = rawCtor;\n this.digested = digested;\n // these are covariant, but typing them better has a runtime overhead\n this.hash = new this.rawCtor();\n }\n /**\n * Adds the given data to the hash.\n * @throws {Error} if {@link IHash#digest} has already been called.\n */\n update(data) {\n if (!this.hash) {\n throw new Error('Cannot continue hashing after digest() has been called');\n }\n this.hash.update(hash_fn_1.inputToArray(data));\n return this;\n }\n /**\n * Returns a digest of the hash.\n */\n digest() {\n if (!this.hash) {\n return this.digested;\n }\n this.hash.digest(this.digested);\n this.hash.free();\n return this.digested;\n }\n /**\n * Frees data associated with the hash. This *must* be called if\n * {@link IHash#digest} is not called in order to free memory.\n */\n dispose() {\n var _a;\n (_a = this.hash) === null || _a === void 0 ? void 0 : _a.free();\n this.hash = undefined;\n }\n}\nexports.BaseHash = BaseHash;\n//# sourceMappingURL=hash-instance.js.map","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(require(\"./hash-instance\"));\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst hash_fn_1 = require(\"./hash-fn\");\nconst base_1 = require(\"../base\");\nconst blake3_1 = require(\"../../pkg/nodejs/blake3\");\n/**\n * @inheritdoc\n */\nclass NodeHash extends base_1.BaseHash {\n /**\n * @inheritdoc\n * @override\n */\n update(data, encoding) {\n return super.update(hash_fn_1.normalizeInput(data, encoding));\n }\n digest(encoding) {\n const result = super.digest();\n return encoding ? result.toString(encoding) : result;\n }\n}\nexports.NodeHash = NodeHash;\n/**\n * A Node.js crypto-like createHash method.\n */\nexports.createHash = () => new NodeHash(blake3_1.Blake3Hash, Buffer.alloc(32));\n//# sourceMappingURL=hash-instance.js.map","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar hash_fn_1 = require(\"./hash-fn\");\nexports.hash = hash_fn_1.hash;\n__export(require(\"./hash-instance\"));\n//# sourceMappingURL=index.js.map","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// Bunlers add the `process.browser` flag to indicate the build enviroment.\n// Throw a verbose error if we see people bundling the Node.js build in their\n// browser, since it probably won't work for them (or at least not give them)\n// nice tree shaking and such.\n//\n// Note that we don't check the presence of window/document, since those can\n// be emulated in common test scenarios (e.g. jest's default setup with jsdom).\nif (process.browser) {\n throw new Error('You tried to import the Node.js version of blake3, instead of the browser ' +\n 'version, in your build. You can fix this by importing \"blake3/browser\" ' +\n 'instead of \"blake3\"');\n}\n__export(require(\"./node\"));\n//# sourceMappingURL=index.js.map","export const empty = new Uint8Array(0);\nexport function toHex(d) {\n return d.reduce((hex, byte) => hex + byte.toString(16).padStart(2, '0'), '');\n}\nexport function fromHex(hex) {\n const hexes = hex.match(/../g);\n return hexes != null ? new Uint8Array(hexes.map(b => parseInt(b, 16))) : empty;\n}\nexport function equals(aa, bb) {\n if (aa === bb)\n return true;\n if (aa.byteLength !== bb.byteLength) {\n return false;\n }\n for (let ii = 0; ii < aa.byteLength; ii++) {\n if (aa[ii] !== bb[ii]) {\n return false;\n }\n }\n return true;\n}\nexport function coerce(o) {\n if (o instanceof Uint8Array && o.constructor.name === 'Uint8Array')\n return o;\n if (o instanceof ArrayBuffer)\n return new Uint8Array(o);\n if (ArrayBuffer.isView(o)) {\n return new Uint8Array(o.buffer, o.byteOffset, o.byteLength);\n }\n throw new Error('Unknown type, must be binary type');\n}\nexport function isBinary(o) {\n return o instanceof ArrayBuffer || ArrayBuffer.isView(o);\n}\nexport function fromString(str) {\n return new TextEncoder().encode(str);\n}\nexport function toString(b) {\n return new TextDecoder().decode(b);\n}\n//# sourceMappingURL=bytes.js.map","/* eslint-disable */\n// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n/**\n * @param {string} ALPHABET\n * @param {any} name\n */\nfunction base(ALPHABET, name) {\n if (ALPHABET.length >= 255) {\n throw new TypeError('Alphabet too long');\n }\n var BASE_MAP = new Uint8Array(256);\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n if (BASE_MAP[xc] !== 255) {\n throw new TypeError(x + ' is ambiguous');\n }\n BASE_MAP[xc] = i;\n }\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256); // log(BASE) / log(256), rounded up\n var iFACTOR = Math.log(256) / Math.log(BASE); // log(256) / log(BASE), rounded up\n /**\n * @param {any[] | Iterable<number>} source\n */\n function encode(source) {\n // @ts-ignore\n if (source instanceof Uint8Array)\n ;\n else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n }\n else if (Array.isArray(source)) {\n source = Uint8Array.from(source);\n }\n if (!(source instanceof Uint8Array)) {\n throw new TypeError('Expected Uint8Array');\n }\n if (source.length === 0) {\n return '';\n }\n // Skip & count leading zeroes.\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n }\n // Allocate enough space in big-endian base58 representation.\n var size = ((pend - pbegin) * iFACTOR + 1) >>> 0;\n var b58 = new Uint8Array(size);\n // Process the bytes.\n while (pbegin !== pend) {\n var carry = source[pbegin];\n // Apply \"b58 = b58 * 256 + ch\".\n var i = 0;\n for (var it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n carry += (256 * b58[it1]) >>> 0;\n b58[it1] = (carry % BASE) >>> 0;\n carry = (carry / BASE) >>> 0;\n }\n if (carry !== 0) {\n throw new Error('Non-zero carry');\n }\n length = i;\n pbegin++;\n }\n // Skip leading zeroes in base58 result.\n var it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n // Translate the result into a string.\n var str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) {\n str += ALPHABET.charAt(b58[it2]);\n }\n return str;\n }\n /**\n * @param {string | string[]} source\n */\n function decodeUnsafe(source) {\n if (typeof source !== 'string') {\n throw new TypeError('Expected String');\n }\n if (source.length === 0) {\n return new Uint8Array();\n }\n var psz = 0;\n // Skip leading spaces.\n if (source[psz] === ' ') {\n return;\n }\n // Skip and count leading '1's.\n var zeroes = 0;\n var length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n // Allocate enough space in big-endian base256 representation.\n var size = (((source.length - psz) * FACTOR) + 1) >>> 0; // log(58) / log(256), rounded up.\n var b256 = new Uint8Array(size);\n // Process the characters.\n while (source[psz]) {\n // Decode character\n var carry = BASE_MAP[source.charCodeAt(psz)];\n // Invalid character\n if (carry === 255) {\n return;\n }\n var i = 0;\n for (var it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n carry += (BASE * b256[it3]) >>> 0;\n b256[it3] = (carry % 256) >>> 0;\n carry = (carry / 256) >>> 0;\n }\n if (carry !== 0) {\n throw new Error('Non-zero carry');\n }\n length = i;\n psz++;\n }\n // Skip trailing spaces.\n if (source[psz] === ' ') {\n return;\n }\n // Skip leading zeroes in b256.\n var it4 = size - length;\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n var vch = new Uint8Array(zeroes + (size - it4));\n var j = zeroes;\n while (it4 !== size) {\n vch[j++] = b256[it4++];\n }\n return vch;\n }\n /**\n * @param {string | string[]} string\n */\n function decode(string) {\n var buffer = decodeUnsafe(string);\n if (buffer) {\n return buffer;\n }\n throw new Error(`Non-${name} character`);\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n };\n}\nvar src = base;\nvar _brrp__multiformats_scope_baseX = src;\nexport default _brrp__multiformats_scope_baseX;\n//# sourceMappingURL=base-x.js.map","import { coerce } from '../bytes.js';\nimport basex from '../vendor/base-x.js';\n/**\n * Class represents both BaseEncoder and MultibaseEncoder meaning it\n * can be used to encode to multibase or base encode without multibase\n * prefix.\n */\nclass Encoder {\n name;\n prefix;\n baseEncode;\n constructor(name, prefix, baseEncode) {\n this.name = name;\n this.prefix = prefix;\n this.baseEncode = baseEncode;\n }\n encode(bytes) {\n if (bytes instanceof Uint8Array) {\n return `${this.prefix}${this.baseEncode(bytes)}`;\n }\n else {\n throw Error('Unknown type, must be binary type');\n }\n }\n}\n/**\n * Class represents both BaseDecoder and MultibaseDecoder so it could be used\n * to decode multibases (with matching prefix) or just base decode strings\n * with corresponding base encoding.\n */\nclass Decoder {\n name;\n prefix;\n baseDecode;\n prefixCodePoint;\n constructor(name, prefix, baseDecode) {\n this.name = name;\n this.prefix = prefix;\n /* c8 ignore next 3 */\n if (prefix.codePointAt(0) === undefined) {\n throw new Error('Invalid prefix character');\n }\n this.prefixCodePoint = prefix.codePointAt(0);\n this.baseDecode = baseDecode;\n }\n decode(text) {\n if (typeof text === 'string') {\n if (text.codePointAt(0) !== this.prefixCodePoint) {\n throw Error(`Unable to decode multibase string ${JSON.stringify(text)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);\n }\n return this.baseDecode(text.slice(this.prefix.length));\n }\n else {\n throw Error('Can only multibase decode strings');\n }\n }\n or(decoder) {\n return or(this, decoder);\n }\n}\nclass ComposedDecoder {\n decoders;\n constructor(decoders) {\n this.decoders = decoders;\n }\n or(decoder) {\n return or(this, decoder);\n }\n decode(input) {\n const prefix = input[0];\n const decoder = this.decoders[prefix];\n if (decoder != null) {\n return decoder.decode(input);\n }\n else {\n throw RangeError(`Unable to decode multibase string ${JSON.stringify(input)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`);\n }\n }\n}\nexport function or(left, right) {\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n return new ComposedDecoder({\n ...(left.decoders ?? { [left.prefix]: left }),\n ...(right.decoders ?? { [right.prefix]: right })\n });\n}\nexport class Codec {\n name;\n prefix;\n baseEncode;\n baseDecode;\n encoder;\n decoder;\n constructor(name, prefix, baseEncode, baseDecode) {\n this.name = name;\n this.prefix = prefix;\n this.baseEncode = baseEncode;\n this.baseDecode = baseDecode;\n this.encoder = new Encoder(name, prefix, baseEncode);\n this.decoder = new Decoder(name, prefix, baseDecode);\n }\n encode(input) {\n return this.encoder.encode(input);\n }\n decode(input) {\n return this.decoder.decode(input);\n }\n}\nexport function from({ name, prefix, encode, decode }) {\n return new Codec(name, prefix, encode, decode);\n}\nexport function baseX({ name, prefix, alphabet }) {\n const { encode, decode } = basex(alphabet, name);\n return from({\n prefix,\n name,\n encode,\n decode: (text) => coerce(decode(text))\n });\n}\nfunction decode(string, alphabet, bitsPerChar, name) {\n // Build the character lookup table:\n const codes = {};\n for (let i = 0; i < alphabet.length; ++i) {\n codes[alphabet[i]] = i;\n }\n // Count the padding bytes:\n let end = string.length;\n while (string[end - 1] === '=') {\n --end;\n }\n // Allocate the output:\n const out = new Uint8Array((end * bitsPerChar / 8) | 0);\n // Parse the data:\n let bits = 0; // Number of bits currently in the buffer\n let buffer = 0; // Bits waiting to be written out, MSB first\n let written = 0; // Next byte to write\n for (let i = 0; i < end; ++i) {\n // Read one character from the string:\n const value = codes[string[i]];\n if (value === undefined) {\n throw new SyntaxError(`Non-${name} character`);\n }\n // Append the bits to the buffer:\n buffer = (buffer << bitsPerChar) | value;\n bits += bitsPerChar;\n // Write out some bits if the buffer has a byte's worth:\n if (bits >= 8) {\n bits -= 8;\n out[written++] = 0xff & (buffer >> bits);\n }\n }\n // Verify that we have received just enough bits:\n if (bits >= bitsPerChar || (0xff & (buffer << (8 - bits))) !== 0) {\n throw new SyntaxError('Unexpected end of data');\n }\n return out;\n}\nfunction encode(data, alphabet, bitsPerChar) {\n const pad = alphabet[alphabet.length - 1] === '=';\n const mask = (1 << bitsPerChar) - 1;\n let out = '';\n let bits = 0; // Number of bits currently in the buffer\n let buffer = 0; // Bits waiting to be written out, MSB first\n for (let i = 0; i < data.length; ++i) {\n // Slurp data into the buffer:\n buffer = (buffer << 8) | data[i];\n bits += 8;\n // Write out as much as we can:\n while (bits > bitsPerChar) {\n bits -= bitsPerChar;\n out += alphabet[mask & (buffer >> bits)];\n }\n }\n // Partial character:\n if (bits !== 0) {\n out += alphabet[mask & (buffer << (bitsPerChar - bits))];\n }\n // Add padding characters until we hit a byte boundary:\n if (pad) {\n while (((out.length * bitsPerChar) & 7) !== 0) {\n out += '=';\n }\n }\n return out;\n}\n/**\n * RFC4648 Factory\n */\nexport function rfc4648({ name, prefix, bitsPerChar, alphabet }) {\n return from({\n prefix,\n name,\n encode(input) {\n return encode(input, alphabet, bitsPerChar);\n },\n decode(input) {\n return decode(input, alphabet, bitsPerChar, name);\n }\n });\n}\n//# sourceMappingURL=base.js.map","import { rfc4648 } from './base.js';\nexport const base32 = rfc4648({\n prefix: 'b',\n name: 'base32',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567',\n bitsPerChar: 5\n});\nexport const base32upper = rfc4648({\n prefix: 'B',\n name: 'base32upper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567',\n bitsPerChar: 5\n});\nexport const base32pad = rfc4648({\n prefix: 'c',\n name: 'base32pad',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567=',\n bitsPerChar: 5\n});\nexport const base32padupper = rfc4648({\n prefix: 'C',\n name: 'base32padupper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=',\n bitsPerChar: 5\n});\nexport const base32hex = rfc4648({\n prefix: 'v',\n name: 'base32hex',\n alphabet: '0123456789abcdefghijklmnopqrstuv',\n bitsPerChar: 5\n});\nexport const base32hexupper = rfc4648({\n prefix: 'V',\n name: 'base32hexupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV',\n bitsPerChar: 5\n});\nexport const base32hexpad = rfc4648({\n prefix: 't',\n name: 'base32hexpad',\n alphabet: '0123456789abcdefghijklmnopqrstuv=',\n bitsPerChar: 5\n});\nexport const base32hexpadupper = rfc4648({\n prefix: 'T',\n name: 'base32hexpadupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV=',\n bitsPerChar: 5\n});\nexport const base32z = rfc4648({\n prefix: 'h',\n name: 'base32z',\n alphabet: 'ybndrfg8ejkmcpqxot1uwisza345h769',\n bitsPerChar: 5\n});\n//# sourceMappingURL=base32.js.map","import { baseX } from './base.js';\nexport const base58btc = baseX({\n name: 'base58btc',\n prefix: 'z',\n alphabet: '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n});\nexport const base58flickr = baseX({\n name: 'base58flickr',\n prefix: 'Z',\n alphabet: '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ'\n});\n//# sourceMappingURL=base58.js.map","const textDecoder = new TextDecoder()\n\n/**\n * @typedef {import('./interface.js').RawPBLink} RawPBLink\n */\n\n/**\n * @typedef {import('./interface.js').RawPBNode} RawPBNode\n */\n\n/**\n * @param {Uint8Array} bytes\n * @param {number} offset\n * @returns {[number, number]}\n */\nfunction decodeVarint (bytes, offset) {\n let v = 0\n\n for (let shift = 0; ; shift += 7) {\n /* c8 ignore next 3 */\n if (shift >= 64) {\n throw new Error('protobuf: varint overflow')\n }\n /* c8 ignore next 3 */\n if (offset >= bytes.length) {\n throw new Error('protobuf: unexpected end of data')\n }\n\n const b = bytes[offset++]\n v += shift < 28 ? (b & 0x7f) << shift : (b & 0x7f) * (2 ** shift)\n if (b < 0x80) {\n break\n }\n }\n return [v, offset]\n}\n\n/**\n * @param {Uint8Array} bytes\n * @param {number} offset\n * @returns {[Uint8Array, number]}\n */\nfunction decodeBytes (bytes, offset) {\n let byteLen\n ;[byteLen, offset] = decodeVarint(bytes, offset)\n const postOffset = offset + byteLen\n\n /* c8 ignore next 3 */\n if (byteLen < 0 || postOffset < 0) {\n throw new Error('protobuf: invalid length')\n }\n /* c8 ignore next 3 */\n if (postOffset > bytes.length) {\n throw new Error('protobuf: unexpected end of data')\n }\n\n return [bytes.subarray(offset, postOffset), postOffset]\n}\n\n/**\n * @param {Uint8Array} bytes\n * @param {number} index\n * @returns {[number, number, number]}\n */\nfunction decodeKey (bytes, index) {\n let wire\n ;[wire, index] = decodeVarint(bytes, index)\n // [wireType, fieldNum, newIndex]\n return [wire & 0x7, wire >> 3, index]\n}\n\n/**\n * @param {Uint8Array} bytes\n * @returns {RawPBLink}\n */\nfunction decodeLink (bytes) {\n /** @type {RawPBLink} */\n const link = {}\n const l = bytes.length\n let index = 0\n\n while (index < l) {\n let wireType, fieldNum\n ;[wireType, fieldNum, index] = decodeKey(bytes, index)\n\n if (fieldNum === 1) {\n if (link.Hash) {\n throw new Error('protobuf: (PBLink) duplicate Hash section')\n }\n if (wireType !== 2) {\n throw new Error(`protobuf: (PBLink) wrong wireType (${wireType}) for Hash`)\n }\n if (link.Name !== undefined) {\n throw new Error('protobuf: (PBLink) invalid order, found Name before Hash')\n }\n if (link.Tsize !== undefined) {\n throw new Error('protobuf: (PBLink) invalid order, found Tsize before Hash')\n }\n\n [link.Hash, index] = decodeBytes(bytes, index)\n } else if (fieldNum === 2) {\n if (link.Name !== undefined) {\n throw new Error('protobuf: (PBLink) duplicate Name section')\n }\n if (wireType !== 2) {\n throw new Error(`protobuf: (PBLink) wrong wireType (${wireType}) for Name`)\n }\n if (link.Tsize !== undefined) {\n throw new Error('protobuf: (PBLink) invalid order, found Tsize before Name')\n }\n\n let byts\n ;[byts, index] = decodeBytes(bytes, index)\n link.Name = textDecoder.decode(byts)\n } else if (fieldNum === 3) {\n if (link.Tsize !== undefined) {\n throw new Error('protobuf: (PBLink) duplicate Tsize section')\n }\n if (wireType !== 0) {\n throw new Error(`protobuf: (PBLink) wrong wireType (${wireType}) for Tsize`)\n }\n\n [link.Tsize, index] = decodeVarint(bytes, index)\n } else {\n throw new Error(`protobuf: (PBLink) invalid fieldNumber, expected 1, 2 or 3, got ${fieldNum}`)\n }\n }\n\n /* c8 ignore next 3 */\n if (index > l) {\n throw new Error('protobuf: (PBLink) unexpected end of data')\n }\n\n return link\n}\n\n/**\n * @param {Uint8Array} bytes\n * @returns {RawPBNode}\n */\nexport function decodeNode (bytes) {\n const l = bytes.length\n let index = 0\n /** @type {RawPBLink[]|void} */\n let links = undefined // eslint-disable-line no-undef-init\n let linksBeforeData = false\n /** @type {Uint8Array|void} */\n let data = undefined // eslint-disable-line no-undef-init\n\n while (index < l) {\n let wireType, fieldNum\n ;[wireType, fieldNum, index] = decodeKey(bytes, index)\n\n if (wireType !== 2) {\n throw new Error(`protobuf: (PBNode) invalid wireType, expected 2, got ${wireType}`)\n }\n\n if (fieldNum === 1) {\n if (data) {\n throw new Error('protobuf: (PBNode) duplicate Data section')\n }\n\n [data, index] = decodeBytes(bytes, index)\n if (links) {\n linksBeforeData = true\n }\n } else if (fieldNum === 2) {\n if (linksBeforeData) { // interleaved Links/Data/Links\n throw new Error('protobuf: (PBNode) duplicate Links section')\n } else if (!links) {\n links = []\n }\n let byts\n ;[byts, index] = decodeBytes(bytes, index)\n links.push(decodeLink(byts))\n } else {\n throw new Error(`protobuf: (PBNode) invalid fieldNumber, expected 1 or 2, got ${fieldNum}`)\n }\n }\n\n /* c8 ignore next 3 */\n if (index > l) {\n throw new Error('protobuf: (PBNode) unexpected end of data')\n }\n\n /** @type {RawPBNode} */\n const node = {}\n if (data) {\n node.Data = data\n }\n node.Links = links || []\n return node\n}\n","const textEncoder = new TextEncoder()\nconst maxInt32 = 2 ** 32\nconst maxUInt32 = 2 ** 31\n\n/**\n * @typedef {import('./interface.js').RawPBLink} RawPBLink\n */\n\n/**\n * @typedef {import('./interface.js').RawPBNode} RawPBNode\n */\n\n// the encoders work backward from the end of the bytes array\n\n/**\n * encodeLink() is passed a slice of the parent byte array that ends where this\n * link needs to end, so it packs to the right-most part of the passed `bytes`\n *\n * @param {RawPBLink} link\n * @param {Uint8Array} bytes\n * @returns {number}\n */\nfunction encodeLink (link, bytes) {\n let i = bytes.length\n\n if (typeof link.Tsize === 'number') {\n if (link.Tsize < 0) {\n throw new Error('Tsize cannot be negative')\n }\n if (!Number.isSafeInteger(link.Tsize)) {\n throw new Error('Tsize too large for encoding')\n }\n i = encodeVarint(bytes, i, link.Tsize) - 1\n bytes[i] = 0x18\n }\n\n if (typeof link.Name === 'string') {\n const nameBytes = textEncoder.encode(link.Name)\n i -= nameBytes.length\n bytes.set(nameBytes, i)\n i = encodeVarint(bytes, i, nameBytes.length) - 1\n bytes[i] = 0x12\n }\n\n if (link.Hash) {\n i -= link.Hash.length\n bytes.set(link.Hash, i)\n i = encodeVarint(bytes, i, link.Hash.length) - 1\n bytes[i] = 0xa\n }\n\n return bytes.length - i\n}\n\n/**\n * Encodes a PBNode into a new byte array of precisely the correct size\n *\n * @param {RawPBNode} node\n * @returns {Uint8Array}\n */\nexport function encodeNode (node) {\n const size = sizeNode(node)\n const bytes = new Uint8Array(size)\n let i = size\n\n if (node.Data) {\n i -= node.Data.length\n bytes.set(node.Data, i)\n i = encodeVarint(bytes, i, node.Data.length) - 1\n bytes[i] = 0xa\n }\n\n if (node.Links) {\n for (let index = node.Links.length - 1; index >= 0; index--) {\n const size = encodeLink(node.Links[index], bytes.subarray(0, i))\n i -= size\n i = encodeVarint(bytes, i, size) - 1\n bytes[i] = 0x12\n }\n }\n\n return bytes\n}\n\n/**\n * work out exactly how many bytes this link takes up\n *\n * @param {RawPBLink} link\n * @returns\n */\nfunction sizeLink (link) {\n let n = 0\n\n if (link.Hash) {\n const l = link.Hash.length\n n += 1 + l + sov(l)\n }\n\n if (typeof link.Name === 'string') {\n const l = textEncoder.encode(link.Name).length\n n += 1 + l + sov(l)\n }\n\n if (typeof link.Tsize === 'number') {\n n += 1 + sov(link.Tsize)\n }\n\n return n\n}\n\n/**\n * Work out exactly how many bytes this node takes up\n *\n * @param {RawPBNode} node\n * @returns {number}\n */\nfunction sizeNode (node) {\n let n = 0\n\n if (node.Data) {\n const l = node.Data.length\n n += 1 + l + sov(l)\n }\n\n if (node.Links) {\n for (const link of node.Links) {\n const l = sizeLink(link)\n n += 1 + l + sov(l)\n }\n }\n\n return n\n}\n\n/**\n * @param {Uint8Array} bytes\n * @param {number} offset\n * @param {number} v\n * @returns {number}\n */\nfunction encodeVarint (bytes, offset, v) {\n offset -= sov(v)\n const base = offset\n\n while (v >= maxUInt32) {\n bytes[offset++] = (v & 0x7f) | 0x80\n v /= 128\n }\n\n while (v >= 128) {\n bytes[offset++] = (v & 0x7f) | 0x80\n v >>>= 7\n }\n\n bytes[offset] = v\n\n return base\n}\n\n/**\n * size of varint\n *\n * @param {number} x\n * @returns {number}\n */\nfunction sov (x) {\n if (x % 2 === 0) {\n x++\n }\n return Math.floor((len64(x) + 6) / 7)\n}\n\n/**\n * golang math/bits, how many bits does it take to represent this integer?\n *\n * @param {number} x\n * @returns {number}\n */\nfunction len64 (x) {\n let n = 0\n if (x >= maxInt32) {\n x = Math.floor(x / maxInt32)\n n = 32\n }\n if (x >= (1 << 16)) {\n x >>>= 16\n n += 16\n }\n if (x >= (1 << 8)) {\n x >>>= 8\n n += 8\n }\n return n + len8tab[x]\n}\n\n// golang math/bits\nconst len8tab = [\n 0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4,\n 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\n 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,\n 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,\n 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,\n 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,\n 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,\n 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,\n 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,\n 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,\n 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,\n 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,\n 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,\n 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,\n 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,\n 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8\n]\n","import { CID } from 'multiformats/cid'\n\n/**\n * @typedef {import('./interface.js').PBLink} PBLink\n * @typedef {import('./interface.js').PBNode} PBNode\n */\n\n/**\n * @template T\n * @typedef {import('multiformats/codecs/interface').ByteView<T>} ByteView\n */\n\n/**\n * @template T\n * @typedef {import('multiformats/codecs/interface').ArrayBufferView<T>} ArrayBufferView\n */\n\nconst pbNodeProperties = ['Data', 'Links']\nconst pbLinkProperties = ['Hash', 'Name', 'Tsize']\n\nconst textEncoder = new TextEncoder()\n\n/**\n * @param {PBLink} a\n * @param {PBLink} b\n * @returns {number}\n */\nfunction linkComparator (a, b) {\n if (a === b) {\n return 0\n }\n\n const abuf = a.Name ? textEncoder.encode(a.Name) : []\n const bbuf = b.Name ? textEncoder.encode(b.Name) : []\n\n let x = abuf.length\n let y = bbuf.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (abuf[i] !== bbuf[i]) {\n x = abuf[i]\n y = bbuf[i]\n break\n }\n }\n\n return x < y ? -1 : y < x ? 1 : 0\n}\n\n/**\n * @param {any} node\n * @param {string[]} properties\n * @returns {boolean}\n */\nfunction hasOnlyProperties (node, properties) {\n return !Object.keys(node).some((p) => !properties.includes(p))\n}\n\n/**\n * Converts a CID, or a PBLink-like object to a PBLink\n *\n * @param {any} link\n * @returns {PBLink}\n */\nfunction asLink (link) {\n if (typeof link.asCID === 'object') {\n const Hash = CID.asCID(link)\n if (!Hash) {\n throw new TypeError('Invalid DAG-PB form')\n }\n return { Hash }\n }\n\n if (typeof link !== 'object' || Array.isArray(link)) {\n throw new TypeError('Invalid DAG-PB form')\n }\n\n const pbl = {}\n\n if (link.Hash) {\n let cid = CID.asCID(link.Hash)\n try {\n if (!cid) {\n if (typeof link.Hash === 'string') {\n cid = CID.parse(link.Hash)\n } else if (link.Hash instanceof Uint8Array) {\n cid = CID.decode(link.Hash)\n }\n }\n } catch (/** @type {any} */ e) {\n throw new TypeError(`Invalid DAG-PB form: ${e.message}`)\n }\n\n if (cid) {\n pbl.Hash = cid\n }\n }\n\n if (!pbl.Hash) {\n throw new TypeError('Invalid DAG-PB form')\n }\n\n if (typeof link.Name === 'string') {\n pbl.Name = link.Name\n }\n\n if (typeof link.Tsize === 'number') {\n pbl.Tsize = link.Tsize\n }\n\n return pbl\n}\n\n/**\n * @param {any} node\n * @returns {PBNode}\n */\nexport function prepare (node) {\n if (node instanceof Uint8Array || typeof node === 'string') {\n node = { Data: node }\n }\n\n if (typeof node !== 'object' || Array.isArray(node)) {\n throw new TypeError('Invalid DAG-PB form')\n }\n\n /** @type {PBNode} */\n const pbn = {}\n\n if (node.Data !== undefined) {\n if (typeof node.Data === 'string') {\n pbn.Data = textEncoder.encode(node.Data)\n } else if (node.Data instanceof Uint8Array) {\n pbn.Data = node.Data\n } else {\n throw new TypeError('Invalid DAG-PB form')\n }\n }\n\n if (node.Links !== undefined) {\n if (Array.isArray(node.Links)) {\n pbn.Links = node.Links.map(asLink)\n pbn.Links.sort(linkComparator)\n } else {\n throw new TypeError('Invalid DAG-PB form')\n }\n } else {\n pbn.Links = []\n }\n\n return pbn\n}\n\n/**\n * @param {PBNode} node\n */\nexport function validate (node) {\n /*\n type PBLink struct {\n Hash optional Link\n Name optional String\n Tsize optional Int\n }\n\n type PBNode struct {\n Links [PBLink]\n Data optional Bytes\n }\n */\n // @ts-ignore private property for TS\n if (!node || typeof node !== 'object' || Array.isArray(node) || node instanceof Uint8Array || (node['/'] && node['/'] === node.bytes)) {\n throw new TypeError('Invalid DAG-PB form')\n }\n\n if (!hasOnlyProperties(node, pbNodeProperties)) {\n throw new TypeError('Invalid DAG-PB form (extraneous properties)')\n }\n\n if (node.Data !== undefined && !(node.Data instanceof Uint8Array)) {\n throw new TypeError('Invalid DAG-PB form (Data must be bytes)')\n }\n\n if (!Array.isArray(node.Links)) {\n throw new TypeError('Invalid DAG-PB form (Links must be a list)')\n }\n\n for (let i = 0; i < node.Links.length; i++) {\n const link = node.Links[i]\n // @ts-ignore private property for TS\n if (!link || typeof link !== 'object' || Array.isArray(link) || link instanceof Uint8Array || (link['/'] && link['/'] === link.bytes)) {\n throw new TypeError('Invalid DAG-PB form (bad link)')\n }\n\n if (!hasOnlyProperties(link, pbLinkProperties)) {\n throw new TypeError('Invalid DAG-PB form (extraneous properties on link)')\n }\n\n if (link.Hash === undefined) {\n throw new TypeError('Invalid DAG-PB form (link must have a Hash)')\n }\n\n // @ts-ignore private property for TS\n if (link.Hash == null || !link.Hash['/'] || link.Hash['/'] !== link.Hash.bytes) {\n throw new TypeError('Invalid DAG-PB form (link Hash must be a CID)')\n }\n\n if (link.Name !== undefined && typeof link.Name !== 'string') {\n throw new TypeError('Invalid DAG-PB form (link Name must be a string)')\n }\n\n if (link.Tsize !== undefined) {\n if (typeof link.Tsize !== 'number' || link.Tsize % 1 !== 0) {\n throw new TypeError('Invalid DAG-PB form (link Tsize must be an integer)')\n }\n if (link.Tsize < 0) {\n throw new TypeError('Invalid DAG-PB form (link Tsize cannot be negative)')\n }\n }\n\n if (i > 0 && linkComparator(link, node.Links[i - 1]) === -1) {\n throw new TypeError('Invalid DAG-PB form (links must be sorted by Name bytes)')\n }\n }\n}\n\n/**\n * @param {Uint8Array} data\n * @param {PBLink[]} [links=[]]\n * @returns {PBNode}\n */\nexport function createNode (data, links = []) {\n return prepare({ Data: data, Links: links })\n}\n\n/**\n * @param {string} name\n * @param {number} size\n * @param {CID} cid\n * @returns {PBLink}\n */\nexport function createLink (name, size, cid) {\n return asLink({ Hash: cid, Name: name, Tsize: size })\n}\n\n/**\n * @template T\n * @param {ByteView<T> | ArrayBufferView<T>} buf\n * @returns {ByteView<T>}\n */\nexport function toByteView (buf) {\n if (buf instanceof ArrayBuffer) {\n return new Uint8Array(buf, 0, buf.byteLength)\n }\n\n return buf\n}\n","var __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nvar __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\nvar __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n};\nimport { createNode, decode, encode } from '@ipld/dag-pb';\nexport const chunkBuffer = function (buffer_1, _a) {\n return __asyncGenerator(this, arguments, function* (buffer, { maxChunkSize, ignoreLastChunk = false }) {\n var _b, e_1, _c, _d;\n let target = Buffer.alloc(0);\n try {\n for (var _e = true, buffer_2 = __asyncValues(buffer), buffer_2_1; buffer_2_1 = yield __await(buffer_2.next()), _b = buffer_2_1.done, !_b; _e = true) {\n _d = buffer_2_1.value;\n _e = false;\n let chunk = _d;\n target = Buffer.concat([target, chunk]);\n while (target.length >= maxChunkSize) {\n yield yield __await(target.subarray(0, maxChunkSize));\n target = target.subarray(maxChunkSize);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (!_e && !_b && (_c = buffer_2.return)) yield __await(_c.call(buffer_2));\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (target.length > 0 && !ignoreLastChunk) {\n yield yield __await(target);\n }\n });\n};\nexport { createNode, decode as decodeNode, encode as encodeNode };\n","// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Some of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// However, the vast majority of the codebase has diverged from UZIP.js to increase performance and reduce bundle size.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\nvar ch2 = {};\nvar wk = (function (c, id, msg, transfer, cb) {\n var w = new Worker(ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([\n c + ';addEventListener(\"error\",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})'\n ], { type: 'text/javascript' }))));\n w.onmessage = function (e) {\n var d = e.data, ed = d.$e$;\n if (ed) {\n var err = new Error(ed[0]);\n err['code'] = ed[1];\n err.stack = ed[2];\n cb(err, null);\n }\n else\n cb(null, d);\n };\n w.postMessage(msg, transfer);\n return w;\n});\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, i32 = Int32Array;\n// fixed length extra bits\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new i32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return { b: b, r: r };\n};\nvar _a = freb(fleb, 2), fl = _a.b, revfl = _a.r;\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b.b, revfd = _b.r;\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >> 8) | ((x & 0x00FF) << 8)) >> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i) {\n if (cd[i])\n ++l[cd[i] - 1];\n }\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 1; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i) {\n if (cd[i]) {\n co[i] = rev[le[cd[i] - 1]++] >> (15 - cd[i]);\n }\n }\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8)) >> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p + 7) / 8) | 0; };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n return new u8(v.subarray(s, e));\n};\n/**\n * Codes for errors generated within this library\n */\nexport var FlateErrorCode = {\n UnexpectedEOF: 0,\n InvalidBlockType: 1,\n InvalidLengthLiteral: 2,\n InvalidDistance: 3,\n StreamFinished: 4,\n NoStreamHandler: 5,\n InvalidHeader: 6,\n NoCallback: 7,\n InvalidUTF8: 8,\n ExtraFieldTooLong: 9,\n InvalidDate: 10,\n FilenameTooLong: 11,\n StreamFinishing: 12,\n InvalidZipData: 13,\n UnknownCompressionMethod: 14\n};\n// error codes\nvar ec = [\n 'unexpected EOF',\n 'invalid block type',\n 'invalid length/literal',\n 'invalid distance',\n 'stream finished',\n 'no stream handler',\n ,\n 'no callback',\n 'invalid UTF-8 data',\n 'extra field too long',\n 'date not in range 1980-2099',\n 'filename too long',\n 'stream finishing',\n 'invalid zip data'\n // determined by unknown compression method\n];\n;\nvar err = function (ind, msg, nt) {\n var e = new Error(msg || ec[ind]);\n e.code = ind;\n if (Error.captureStackTrace)\n Error.captureStackTrace(e, err);\n if (!nt)\n throw e;\n return e;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, st, buf, dict) {\n // source length dict length\n var sl = dat.length, dl = dict ? dict.length : 0;\n if (!sl || st.f && !st.l)\n return buf || new u8(0);\n var noBuf = !buf;\n // have to estimate size\n var resize = noBuf || st.i != 2;\n // no state\n var noSt = st.i;\n // Assumes roughly 33% compression ratio average\n if (noBuf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n var cbuf = function (l) {\n var bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n // total bits\n var tbts = sl * 8;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n err(0);\n break;\n }\n // ensure size\n if (resize)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t * 8, st.f = final;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n var ldt = new u8(tl);\n // code length tree\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n // code lengths map\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n var s = r >> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n err(1);\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n }\n // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17\n if (resize)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var lpos = pos;\n for (;; lpos = pos) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms], sym = c >> 4;\n pos += c & 15;\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (!c)\n err(2);\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lpos = pos, lm = null;\n break;\n }\n else {\n var add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n var d = dm[bits16(dat, pos) & dms], dsym = d >> 4;\n if (!d)\n err(3);\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & (1 << b) - 1, pos += b;\n }\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (resize)\n cbuf(bt + 131072);\n var end = bt + add;\n if (bt < dt) {\n var shift = dl - dt, dend = Math.min(dt, end);\n if (shift + bt < 0)\n err(3);\n for (; bt < dend; ++bt)\n buf[bt] = dict[shift + bt];\n }\n for (; bt < end; ++bt)\n buf[bt] = buf[bt - dt];\n }\n }\n st.l = lm, st.p = lpos, st.b = bt, st.f = final;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n // don't reallocate for streams or user buffers\n return bt != buf.length && noBuf ? slc(buf, 0, bt) : buf.subarray(0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n d[o + 2] |= v >> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return { t: et, l: 0 };\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return { t: v, l: 1 };\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return { t: new u8(tr), l: mbt };\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return { c: cl.subarray(0, cli), n: s };\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a.t, mlb = _a.l;\n var _b = hTree(df, 15), ddt = _b.t, mdb = _b.l;\n var _c = lc(dlt), lclt = _c.c, nlc = _c.n;\n var _d = lc(ddt), lcdt = _d.c, ndc = _d.n;\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n ++lcfreq[lclt[i] & 31];\n for (var i = 0; i < lcdt.length; ++i)\n ++lcfreq[lcdt[i] & 31];\n var _e = hTree(lcfreq, 7), lct = _e.t, mlcb = _e.l;\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + 2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18];\n if (bs >= 0 && flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >> 5) & 127), p += clct[i] >> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n var sym = syms[i];\n if (sym > 255) {\n var len = (sym >> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (sym >> 23) & 31), p += fleb[len];\n var dst = sym & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (sym >> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[sym]), p += ll[sym];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new i32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, st) {\n var s = st.z || dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var lst = st.l;\n var pos = (st.r || 0) & 7;\n if (lvl) {\n if (pos)\n w[0] = st.r >> 3;\n var opt = deo[lvl - 1];\n var n = opt >> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = st.p || new u16(32768), head = st.h || new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new i32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx blkpos\n var lc_1 = 0, eb = 0, i = st.i || 0, li = 0, wi = st.w || 0, bs = 0;\n for (; i + 2 < s; ++i) {\n // hash value\n var hv = hsh(i);\n // index mod 32768 previous index mod\n var imod = i & 32767, pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && (rem > 423 || !lst)) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = imod - pimod & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = i - dif + j & 32767;\n var pti = prev[ti];\n var cd = ti - pti & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += imod - pimod & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one int32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n for (i = Math.max(i, wi); i < s; ++i) {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n if (!lst) {\n st.r = (pos & 7) | w[(pos / 8) | 0] << 3;\n // shft(pos) now 1 less if pos & 7 != 0\n pos -= 7;\n st.h = head, st.p = prev, st.i = i, st.w = wi;\n }\n }\n else {\n for (var i = st.w || 0; i < s + lst; i += 65535) {\n // end\n var e = i + 65535;\n if (e >= s) {\n // write final block\n w[(pos / 8) | 0] = lst;\n e = s;\n }\n pos = wfblk(w, pos + 1, dat.subarray(i, e));\n }\n st.i = s;\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// CRC32 table\nvar crct = /*#__PURE__*/ (function () {\n var t = new Int32Array(256);\n for (var i = 0; i < 256; ++i) {\n var c = i, k = 9;\n while (--k)\n c = ((c & 1) && -306674912) ^ (c >>> 1);\n t[i] = c;\n }\n return t;\n})();\n// CRC32\nvar crc = function () {\n var c = -1;\n return {\n p: function (d) {\n // closures have awful performance\n var cr = c;\n for (var i = 0; i < d.length; ++i)\n cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8);\n c = cr;\n },\n d: function () { return ~c; }\n };\n};\n// Adler32\nvar adler = function () {\n var a = 1, b = 0;\n return {\n p: function (d) {\n // closures have awful performance\n var n = a, m = b;\n var l = d.length | 0;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 2655, l);\n for (; i < e; ++i)\n m += n += d[i];\n n = (n & 65535) + 15 * (n >> 16), m = (m & 65535) + 15 * (m >> 16);\n }\n a = n, b = m;\n },\n d: function () {\n a %= 65521, b %= 65521;\n return (a & 255) << 24 | (a & 0xFF00) << 8 | (b & 255) << 8 | (b >> 8);\n }\n };\n};\n;\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n if (!st) {\n st = { l: 1 };\n if (opt.dictionary) {\n var dict = opt.dictionary.subarray(-32768);\n var newDat = new u8(dict.length + dat.length);\n newDat.set(dict);\n newDat.set(dat, dict.length);\n dat = newDat;\n st.w = dict.length;\n }\n }\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? (st.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : 20) : (12 + opt.mem), pre, post, st);\n};\n// Walmart object spread\nvar mrg = function (a, b) {\n var o = {};\n for (var k in a)\n o[k] = a[k];\n for (var k in b)\n o[k] = b[k];\n return o;\n};\n// worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\nvar wcln = function (fn, fnStr, td) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/\\s+/g, '').split(',');\n for (var i = 0; i < dt.length; ++i) {\n var v = dt[i], k = ks[i];\n if (typeof v == 'function') {\n fnStr += ';' + k + '=';\n var st_1 = v.toString();\n if (v.prototype) {\n // for global objects\n if (st_1.indexOf('[native code]') != -1) {\n var spInd = st_1.indexOf(' ', 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n }\n else {\n fnStr += st_1;\n for (var t in v.prototype)\n fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n }\n }\n else\n fnStr += st_1;\n }\n else\n td[k] = v;\n }\n return fnStr;\n};\nvar ch = [];\n// clone bufs\nvar cbfs = function (v) {\n var tl = [];\n for (var k in v) {\n if (v[k].buffer) {\n tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n }\n return tl;\n};\n// use a worker to execute code\nvar wrkr = function (fns, init, id, cb) {\n if (!ch[id]) {\n var fnStr = '', td_1 = {}, m = fns.length - 1;\n for (var i = 0; i < m; ++i)\n fnStr = wcln(fns[i], fnStr, td_1);\n ch[id] = { c: wcln(fns[m], fnStr, td_1), e: td_1 };\n }\n var td = mrg({}, ch[id].e);\n return wk(ch[id].c + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n};\n// base async inflate fn\nvar bInflt = function () { return [u8, u16, i32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, ec, hMap, max, bits, bits16, shft, slc, err, inflt, inflateSync, pbf, gopt]; };\nvar bDflt = function () { return [u8, u16, i32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; };\n// gzip extra\nvar gze = function () { return [gzh, gzhl, wbytes, crc, crct]; };\n// gunzip extra\nvar guze = function () { return [gzs, gzl]; };\n// zlib extra\nvar zle = function () { return [zlh, wbytes, adler]; };\n// unzlib extra\nvar zule = function () { return [zls]; };\n// post buf\nvar pbf = function (msg) { return postMessage(msg, [msg.buffer]); };\n// get opts\nvar gopt = function (o) { return o && {\n out: o.size && new u8(o.size),\n dictionary: o.dictionary\n}; };\n// async helper\nvar cbify = function (dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function (err, dat) {\n w.terminate();\n cb(err, dat);\n });\n w.postMessage([dat, opts], opts.consume ? [dat.buffer] : []);\n return function () { w.terminate(); };\n};\n// auto stream\nvar astrm = function (strm) {\n strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); };\n return function (ev) {\n if (ev.data.length) {\n strm.push(ev.data[0], ev.data[1]);\n postMessage([ev.data[0].length]);\n }\n else\n strm.flush();\n };\n};\n// async stream attach\nvar astrmify = function (fns, strm, opts, init, id, flush, ext) {\n var t;\n var w = wrkr(fns, init, id, function (err, dat) {\n if (err)\n w.terminate(), strm.ondata.call(strm, err);\n else if (!Array.isArray(dat))\n ext(dat);\n else if (dat.length == 1) {\n strm.queuedSize -= dat[0];\n if (strm.ondrain)\n strm.ondrain(dat[0]);\n }\n else {\n if (dat[1])\n w.terminate();\n strm.ondata.call(strm, err, dat[0], dat[1]);\n }\n });\n w.postMessage(opts);\n strm.queuedSize = 0;\n strm.push = function (d, f) {\n if (!strm.ondata)\n err(5);\n if (t)\n strm.ondata(err(4, 0, 1), null, !!f);\n strm.queuedSize += d.length;\n w.postMessage([d, t = f], [d.buffer]);\n };\n strm.terminate = function () { w.terminate(); };\n if (flush) {\n strm.flush = function () { w.postMessage([]); };\n }\n};\n// read 2 bytes\nvar b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };\n// read 4 bytes\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16) | (d[b + 3] << 24)) >>> 0; };\nvar b8 = function (d, b) { return b4(d, b) + (b4(d, b + 4) * 4294967296); };\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n// gzip header\nvar gzh = function (c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n if (o.mtime != 0)\n wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n if (fn) {\n c[3] = 8;\n for (var i = 0; i <= fn.length; ++i)\n c[i + 10] = fn.charCodeAt(i);\n }\n};\n// gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\nvar gzs = function (d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n err(6, 'invalid gzip data');\n var flg = d[3];\n var st = 10;\n if (flg & 4)\n st += (d[10] | d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n ;\n return st + (flg & 2);\n};\n// gzip length\nvar gzl = function (d) {\n var l = d.length;\n return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16 | d[l - 1] << 24) >>> 0;\n};\n// gzip header length\nvar gzhl = function (o) { return 10 + (o.filename ? o.filename.length + 1 : 0); };\n// zlib header\nvar zlh = function (c, o) {\n var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = (fl << 6) | (o.dictionary && 32);\n c[1] |= 31 - ((c[0] << 8) | c[1]) % 31;\n if (o.dictionary) {\n var h = adler();\n h.p(o.dictionary);\n wbytes(c, 2, h.d());\n }\n};\n// zlib start\nvar zls = function (d, dict) {\n if ((d[0] & 15) != 8 || (d[0] >> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n err(6, 'invalid zlib data');\n if ((d[1] >> 5 & 1) == +!dict)\n err(6, 'invalid zlib data: ' + (d[1] & 32 ? 'need' : 'unexpected') + ' dictionary');\n return (d[1] >> 3 & 4) + 2;\n};\nfunction StrmOpt(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n return opts;\n}\n/**\n * Streaming DEFLATE compression\n */\nvar Deflate = /*#__PURE__*/ (function () {\n function Deflate(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n this.o = opts || {};\n this.s = { l: 0, i: 32768, w: 32768, z: 32768 };\n // Buffer length must always be 0 mod 32768 for index calculations to be correct when modifying head and prev\n // 98304 = 32768 (lookback) + 65536 (common chunk size)\n this.b = new u8(98304);\n if (this.o.dictionary) {\n var dict = this.o.dictionary.subarray(-32768);\n this.b.set(dict, 32768 - dict.length);\n this.s.i = 32768 - dict.length;\n }\n }\n Deflate.prototype.p = function (c, f) {\n this.ondata(dopt(c, this.o, 0, 0, this.s), f);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Deflate.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n var endLen = chunk.length + this.s.z;\n if (endLen > this.b.length) {\n if (endLen > 2 * this.b.length - 32768) {\n var newBuf = new u8(endLen & -32768);\n newBuf.set(this.b.subarray(0, this.s.z));\n this.b = newBuf;\n }\n var split = this.b.length - this.s.z;\n this.b.set(chunk.subarray(0, split), this.s.z);\n this.s.z = this.b.length;\n this.p(this.b, false);\n this.b.set(this.b.subarray(-32768));\n this.b.set(chunk.subarray(split), 32768);\n this.s.z = chunk.length - split + 32768;\n this.s.i = 32766, this.s.w = 32768;\n }\n else {\n this.b.set(chunk, this.s.z);\n this.s.z += chunk.length;\n }\n this.s.l = final & 1;\n if (this.s.z > this.s.w + 8191 || final) {\n this.p(this.b, final || false);\n this.s.w = this.s.i, this.s.i -= 2;\n }\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * deflated output for small inputs.\n */\n Deflate.prototype.flush = function () {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n this.p(this.b, false);\n this.s.w = this.s.i, this.s.i -= 2;\n };\n return Deflate;\n}());\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\nvar AsyncDeflate = /*#__PURE__*/ (function () {\n function AsyncDeflate(opts, cb) {\n astrmify([\n bDflt,\n function () { return [astrm, Deflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Deflate(ev.data);\n onmessage = astrm(strm);\n }, 6, 1);\n }\n return AsyncDeflate;\n}());\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n ], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\nexport function deflateSync(data, opts) {\n return dopt(data, opts || {}, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\nvar Inflate = /*#__PURE__*/ (function () {\n function Inflate(opts, cb) {\n // no StrmOpt here to avoid adding to workerizer\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n var dict = opts && opts.dictionary && opts.dictionary.subarray(-32768);\n this.s = { i: 0, b: dict ? dict.length : 0 };\n this.o = new u8(32768);\n this.p = new u8(0);\n if (dict)\n this.o.set(dict);\n }\n Inflate.prototype.e = function (c) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n if (!this.p.length)\n this.p = c;\n else if (c.length) {\n var n = new u8(this.p.length + c.length);\n n.set(this.p), n.set(c, this.p.length), this.p = n;\n }\n };\n Inflate.prototype.c = function (final) {\n this.s.i = +(this.d = final || false);\n var bts = this.s.b;\n var dt = inflt(this.p, this.s, this.o);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, (this.s.p / 8) | 0), this.s.p &= 7;\n };\n /**\n * Pushes a chunk to be inflated\n * @param chunk The chunk to push\n * @param final Whether this is the final chunk\n */\n Inflate.prototype.push = function (chunk, final) {\n this.e(chunk), this.c(final);\n };\n return Inflate;\n}());\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\nvar AsyncInflate = /*#__PURE__*/ (function () {\n function AsyncInflate(opts, cb) {\n astrmify([\n bInflt,\n function () { return [astrm, Inflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Inflate(ev.data);\n onmessage = astrm(strm);\n }, 7, 0);\n }\n return AsyncInflate;\n}());\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt\n ], function (ev) { return pbf(inflateSync(ev.data[0], gopt(ev.data[1]))); }, 1, cb);\n}\n/**\n * Expands DEFLATE data with no wrapper\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function inflateSync(data, opts) {\n return inflt(data, { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n/**\n * Streaming GZIP compression\n */\nvar Gzip = /*#__PURE__*/ (function () {\n function Gzip(opts, cb) {\n this.c = crc();\n this.l = 0;\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gzip.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n this.l += chunk.length;\n Deflate.prototype.push.call(this, chunk, final);\n };\n Gzip.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, this.s);\n if (this.v)\n gzh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * GZIPped output for small inputs.\n */\n Gzip.prototype.flush = function () {\n Deflate.prototype.flush.call(this);\n };\n return Gzip;\n}());\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\nvar AsyncGzip = /*#__PURE__*/ (function () {\n function AsyncGzip(opts, cb) {\n astrmify([\n bDflt,\n gze,\n function () { return [astrm, Deflate, Gzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gzip(ev.data);\n onmessage = astrm(strm);\n }, 8, 1);\n }\n return AsyncGzip;\n}());\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n gze,\n function () { return [gzipSync]; }\n ], function (ev) { return pbf(gzipSync(ev.data[0], ev.data[1])); }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\nexport function gzipSync(data, opts) {\n if (!opts)\n opts = {};\n var c = crc(), l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8), s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming single or multi-member GZIP decompression\n */\nvar Gunzip = /*#__PURE__*/ (function () {\n function Gunzip(opts, cb) {\n this.v = 1;\n this.r = 0;\n Inflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GUNZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gunzip.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n this.r += chunk.length;\n if (this.v) {\n var p = this.p.subarray(this.v - 1);\n var s = p.length > 3 ? gzs(p) : 4;\n if (s > p.length) {\n if (!final)\n return;\n }\n else if (this.v > 1 && this.onmember) {\n this.onmember(this.r - p.length);\n }\n this.p = p.subarray(s), this.v = 0;\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n // process concatenated GZIP\n if (this.s.f && !this.s.l && !final) {\n this.v = shft(this.s.p) + 9;\n this.s = { i: 0 };\n this.o = new u8(0);\n this.push(new u8(0), final);\n }\n };\n return Gunzip;\n}());\nexport { Gunzip };\n/**\n * Asynchronous streaming single or multi-member GZIP decompression\n */\nvar AsyncGunzip = /*#__PURE__*/ (function () {\n function AsyncGunzip(opts, cb) {\n var _this = this;\n astrmify([\n bInflt,\n guze,\n function () { return [astrm, Inflate, Gunzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gunzip(ev.data);\n strm.onmember = function (offset) { return postMessage(offset); };\n onmessage = astrm(strm);\n }, 9, 0, function (offset) { return _this.onmember && _this.onmember(offset); });\n }\n return AsyncGunzip;\n}());\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n guze,\n function () { return [gunzipSync]; }\n ], function (ev) { return pbf(gunzipSync(ev.data[0], ev.data[1])); }, 3, cb);\n}\n/**\n * Expands GZIP data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function gunzipSync(data, opts) {\n var st = gzs(data);\n if (st + 8 > data.length)\n err(6, 'invalid gzip data');\n return inflt(data.subarray(st, -8), { i: 2 }, opts && opts.out || new u8(gzl(data)), opts && opts.dictionary);\n}\n/**\n * Streaming Zlib compression\n */\nvar Zlib = /*#__PURE__*/ (function () {\n function Zlib(opts, cb) {\n this.c = adler();\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be zlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Zlib.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n Deflate.prototype.push.call(this, chunk, final);\n };\n Zlib.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && (this.o.dictionary ? 6 : 2), f && 4, this.s);\n if (this.v)\n zlh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 4, this.c.d());\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * zlibbed output for small inputs.\n */\n Zlib.prototype.flush = function () {\n Deflate.prototype.flush.call(this);\n };\n return Zlib;\n}());\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\nvar AsyncZlib = /*#__PURE__*/ (function () {\n function AsyncZlib(opts, cb) {\n astrmify([\n bDflt,\n zle,\n function () { return [astrm, Deflate, Zlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Zlib(ev.data);\n onmessage = astrm(strm);\n }, 10, 1);\n }\n return AsyncZlib;\n}());\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n zle,\n function () { return [zlibSync]; }\n ], function (ev) { return pbf(zlibSync(ev.data[0], ev.data[1])); }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nexport function zlibSync(data, opts) {\n if (!opts)\n opts = {};\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, opts.dictionary ? 6 : 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\nvar Unzlib = /*#__PURE__*/ (function () {\n function Unzlib(opts, cb) {\n Inflate.call(this, opts, cb);\n this.v = opts && opts.dictionary ? 2 : 1;\n }\n /**\n * Pushes a chunk to be unzlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzlib.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n if (this.p.length < 6 && !final)\n return;\n this.p = this.p.subarray(zls(this.p, this.v - 1)), this.v = 0;\n }\n if (final) {\n if (this.p.length < 4)\n err(6, 'invalid zlib data');\n this.p = this.p.subarray(0, -4);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Unzlib;\n}());\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\nvar AsyncUnzlib = /*#__PURE__*/ (function () {\n function AsyncUnzlib(opts, cb) {\n astrmify([\n bInflt,\n zule,\n function () { return [astrm, Inflate, Unzlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Unzlib(ev.data);\n onmessage = astrm(strm);\n }, 11, 0);\n }\n return AsyncUnzlib;\n}());\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n zule,\n function () { return [unzlibSync]; }\n ], function (ev) { return pbf(unzlibSync(ev.data[0], gopt(ev.data[1]))); }, 5, cb);\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function unzlibSync(data, opts) {\n return inflt(data.subarray(zls(data, opts && opts.dictionary), -4), { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzip as compress, AsyncGzip as AsyncCompress };\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar Decompress = /*#__PURE__*/ (function () {\n function Decompress(opts, cb) {\n this.o = StrmOpt.call(this, opts, cb) || {};\n this.G = Gunzip;\n this.I = Inflate;\n this.Z = Unzlib;\n }\n // init substream\n // overriden by AsyncDecompress\n Decompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (dat, final) {\n _this.ondata(dat, final);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Decompress.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (!this.s) {\n if (this.p && this.p.length) {\n var n = new u8(this.p.length + chunk.length);\n n.set(this.p), n.set(chunk, this.p.length);\n }\n else\n this.p = chunk;\n if (this.p.length > 2) {\n this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8)\n ? new this.G(this.o)\n : ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31))\n ? new this.I(this.o)\n : new this.Z(this.o);\n this.i();\n this.s.push(this.p, final);\n this.p = null;\n }\n }\n else\n this.s.push(chunk, final);\n };\n return Decompress;\n}());\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar AsyncDecompress = /*#__PURE__*/ (function () {\n function AsyncDecompress(opts, cb) {\n Decompress.call(this, opts, cb);\n this.queuedSize = 0;\n this.G = AsyncGunzip;\n this.I = AsyncInflate;\n this.Z = AsyncUnzlib;\n }\n AsyncDecompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (err, dat, final) {\n _this.ondata(err, dat, final);\n };\n this.s.ondrain = function (size) {\n _this.queuedSize -= size;\n if (_this.ondrain)\n _this.ondrain(size);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncDecompress.prototype.push = function (chunk, final) {\n this.queuedSize += chunk.length;\n Decompress.prototype.push.call(this, chunk, final);\n };\n return AsyncDecompress;\n}());\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzip(data, opts, cb)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflate(data, opts, cb)\n : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function decompressSync(data, opts) {\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzipSync(data, opts)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflateSync(data, opts)\n : unzlibSync(data, opts);\n}\n// flatten a directory structure\nvar fltn = function (d, p, t, o) {\n for (var k in d) {\n var val = d[k], n = p + k, op = o;\n if (Array.isArray(val))\n op = mrg(o, val[1]), val = val[0];\n if (val instanceof u8)\n t[n] = [val, op];\n else {\n t[n += '/'] = [new u8(0), op];\n fltn(val, n, t, o);\n }\n }\n};\n// text encoder\nvar te = typeof TextEncoder != 'undefined' && /*#__PURE__*/ new TextEncoder();\n// text decoder\nvar td = typeof TextDecoder != 'undefined' && /*#__PURE__*/ new TextDecoder();\n// text decoder stream\nvar tds = 0;\ntry {\n td.decode(et, { stream: true });\n tds = 1;\n}\ncatch (e) { }\n// decode UTF8\nvar dutf8 = function (d) {\n for (var r = '', i = 0;;) {\n var c = d[i++];\n var eb = (c > 127) + (c > 223) + (c > 239);\n if (i + eb > d.length)\n return { s: r, r: slc(d, i - 1) };\n if (!eb)\n r += String.fromCharCode(c);\n else if (eb == 3) {\n c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63)) - 65536,\n r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n }\n else if (eb & 1)\n r += String.fromCharCode((c & 31) << 6 | (d[i++] & 63));\n else\n r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63));\n }\n};\n/**\n * Streaming UTF-8 decoding\n */\nvar DecodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is decoded\n */\n function DecodeUTF8(cb) {\n this.ondata = cb;\n if (tds)\n this.t = new TextDecoder();\n else\n this.p = et;\n }\n /**\n * Pushes a chunk to be decoded from UTF-8 binary\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n DecodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n final = !!final;\n if (this.t) {\n this.ondata(this.t.decode(chunk, { stream: true }), final);\n if (final) {\n if (this.t.decode().length)\n err(8);\n this.t = null;\n }\n return;\n }\n if (!this.p)\n err(4);\n var dat = new u8(this.p.length + chunk.length);\n dat.set(this.p);\n dat.set(chunk, this.p.length);\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (final) {\n if (r.length)\n err(8);\n this.p = null;\n }\n else\n this.p = r;\n this.ondata(s, final);\n };\n return DecodeUTF8;\n}());\nexport { DecodeUTF8 };\n/**\n * Streaming UTF-8 encoding\n */\nvar EncodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is encoded\n */\n function EncodeUTF8(cb) {\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be encoded to UTF-8\n * @param chunk The string data to push\n * @param final Whether this is the last chunk\n */\n EncodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n this.ondata(strToU8(chunk), this.d = final || false);\n };\n return EncodeUTF8;\n}());\nexport { EncodeUTF8 };\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nexport function strToU8(str, latin1) {\n if (latin1) {\n var ar_1 = new u8(str.length);\n for (var i = 0; i < str.length; ++i)\n ar_1[i] = str.charCodeAt(i);\n return ar_1;\n }\n if (te)\n return te.encode(str);\n var l = str.length;\n var ar = new u8(str.length + (str.length >> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >> 18)), w(128 | ((c >> 12) & 63)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >> 12)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nexport function strFromU8(dat, latin1) {\n if (latin1) {\n var r = '';\n for (var i = 0; i < dat.length; i += 16384)\n r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384));\n return r;\n }\n else if (td) {\n return td.decode(dat);\n }\n else {\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (r.length)\n err(8);\n return s;\n }\n}\n;\n// deflate bit flag\nvar dbf = function (l) { return l == 1 ? 3 : l < 6 ? 2 : l == 9 ? 1 : 0; };\n// skip local zip header\nvar slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); };\n// read zip header\nvar zh = function (d, b, z) {\n var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20);\n var _a = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a[0], su = _a[1], off = _a[2];\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n};\n// read zip64 extra field\nvar z64e = function (d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))\n ;\n return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)];\n};\n// extra field length\nvar exfl = function (ex) {\n var le = 0;\n if (ex) {\n for (var k in ex) {\n var l = ex[k].length;\n if (l > 65535)\n err(9);\n le += l + 4;\n }\n }\n return le;\n};\n// write zip header\nvar wzh = function (d, b, f, fn, u, c, ce, co) {\n var fl = fn.length, ex = f.extra, col = co && co.length;\n var exl = exfl(ex);\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null)\n d[b++] = 20, d[b++] = f.os;\n d[b] = 20, b += 2; // spec compliance? what's that?\n d[b++] = (f.flag << 1) | (c < 0 && 8), d[b++] = u && 8;\n d[b++] = f.compression & 255, d[b++] = f.compression >> 8;\n var dt = new Date(f.mtime == null ? Date.now() : f.mtime), y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119)\n err(10);\n wbytes(d, b, (y << 25) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >> 1)), b += 4;\n if (c != -1) {\n wbytes(d, b, f.crc);\n wbytes(d, b + 4, c < 0 ? -c - 2 : c);\n wbytes(d, b + 8, f.size);\n }\n wbytes(d, b + 12, fl);\n wbytes(d, b + 14, exl), b += 16;\n if (ce != null) {\n wbytes(d, b, col);\n wbytes(d, b + 6, f.attrs);\n wbytes(d, b + 10, ce), b += 14;\n }\n d.set(fn, b);\n b += fl;\n if (exl) {\n for (var k in ex) {\n var exf = ex[k], l = exf.length;\n wbytes(d, b, +k);\n wbytes(d, b + 2, l);\n d.set(exf, b + 4), b += 4 + l;\n }\n }\n if (col)\n d.set(co, b), b += col;\n return b;\n};\n// write zip footer (end of central directory)\nvar wzf = function (o, b, c, d, e) {\n wbytes(o, b, 0x6054B50); // skip disk\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n};\n/**\n * A pass-through stream to keep data uncompressed in a ZIP archive.\n */\nvar ZipPassThrough = /*#__PURE__*/ (function () {\n /**\n * Creates a pass-through stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n */\n function ZipPassThrough(filename) {\n this.filename = filename;\n this.c = crc();\n this.size = 0;\n this.compression = 0;\n }\n /**\n * Processes a chunk and pushes to the output stream. You can override this\n * method in a subclass for custom behavior, but by default this passes\n * the data through. You must call this.ondata(err, chunk, final) at some\n * point in this method.\n * @param chunk The chunk to process\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.process = function (chunk, final) {\n this.ondata(null, chunk, final);\n };\n /**\n * Pushes a chunk to be added. If you are subclassing this with a custom\n * compression algorithm, note that you must push data from the source\n * file only, pre-compression.\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n this.c.p(chunk);\n this.size += chunk.length;\n if (final)\n this.crc = this.c.d();\n this.process(chunk, final || false);\n };\n return ZipPassThrough;\n}());\nexport { ZipPassThrough };\n// I don't extend because TypeScript extension adds 1kB of runtime bloat\n/**\n * Streaming DEFLATE compression for ZIP archives. Prefer using AsyncZipDeflate\n * for better performance\n */\nvar ZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function ZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new Deflate(opts, function (dat, final) {\n _this.ondata(null, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n }\n ZipDeflate.prototype.process = function (chunk, final) {\n try {\n this.d.push(chunk, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return ZipDeflate;\n}());\nexport { ZipDeflate };\n/**\n * Asynchronous streaming DEFLATE compression for ZIP archives\n */\nvar AsyncZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function AsyncZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new AsyncDeflate(opts, function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n this.terminate = this.d.terminate;\n }\n AsyncZipDeflate.prototype.process = function (chunk, final) {\n this.d.push(chunk, final);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return AsyncZipDeflate;\n}());\nexport { AsyncZipDeflate };\n// TODO: Better tree shaking\n/**\n * A zippable archive to which files can incrementally be added\n */\nvar Zip = /*#__PURE__*/ (function () {\n /**\n * Creates an empty ZIP archive to which files can be added\n * @param cb The callback to call whenever data for the generated ZIP archive\n * is available\n */\n function Zip(cb) {\n this.ondata = cb;\n this.u = [];\n this.d = 1;\n }\n /**\n * Adds a file to the ZIP archive\n * @param file The file stream to add\n */\n Zip.prototype.add = function (file) {\n var _this = this;\n if (!this.ondata)\n err(5);\n // finishing or finished\n if (this.d & 2)\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, false);\n else {\n var f = strToU8(file.filename), fl_1 = f.length;\n var com = file.comment, o = com && strToU8(com);\n var u = fl_1 != file.filename.length || (o && (com.length != o.length));\n var hl_1 = fl_1 + exfl(file.extra) + 30;\n if (fl_1 > 65535)\n this.ondata(err(11, 0, 1), null, false);\n var header = new u8(hl_1);\n wzh(header, 0, file, f, u, -1);\n var chks_1 = [header];\n var pAll_1 = function () {\n for (var _i = 0, chks_2 = chks_1; _i < chks_2.length; _i++) {\n var chk = chks_2[_i];\n _this.ondata(null, chk, false);\n }\n chks_1 = [];\n };\n var tr_1 = this.d;\n this.d = 0;\n var ind_1 = this.u.length;\n var uf_1 = mrg(file, {\n f: f,\n u: u,\n o: o,\n t: function () {\n if (file.terminate)\n file.terminate();\n },\n r: function () {\n pAll_1();\n if (tr_1) {\n var nxt = _this.u[ind_1 + 1];\n if (nxt)\n nxt.r();\n else\n _this.d = 1;\n }\n tr_1 = 1;\n }\n });\n var cl_1 = 0;\n file.ondata = function (err, dat, final) {\n if (err) {\n _this.ondata(err, dat, final);\n _this.terminate();\n }\n else {\n cl_1 += dat.length;\n chks_1.push(dat);\n if (final) {\n var dd = new u8(16);\n wbytes(dd, 0, 0x8074B50);\n wbytes(dd, 4, file.crc);\n wbytes(dd, 8, cl_1);\n wbytes(dd, 12, file.size);\n chks_1.push(dd);\n uf_1.c = cl_1, uf_1.b = hl_1 + cl_1 + 16, uf_1.crc = file.crc, uf_1.size = file.size;\n if (tr_1)\n uf_1.r();\n tr_1 = 1;\n }\n else if (tr_1)\n pAll_1();\n }\n };\n this.u.push(uf_1);\n }\n };\n /**\n * Ends the process of adding files and prepares to emit the final chunks.\n * This *must* be called after adding all desired files for the resulting\n * ZIP file to work properly.\n */\n Zip.prototype.end = function () {\n var _this = this;\n if (this.d & 2) {\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, true);\n return;\n }\n if (this.d)\n this.e();\n else\n this.u.push({\n r: function () {\n if (!(_this.d & 1))\n return;\n _this.u.splice(-1, 1);\n _this.e();\n },\n t: function () { }\n });\n this.d = 3;\n };\n Zip.prototype.e = function () {\n var bt = 0, l = 0, tl = 0;\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n tl += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0);\n }\n var out = new u8(tl + 22);\n for (var _b = 0, _c = this.u; _b < _c.length; _b++) {\n var f = _c[_b];\n wzh(out, bt, f, f.f, f.u, -f.c - 2, l, f.o);\n bt += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0), l += f.b;\n }\n wzf(out, bt, this.u.length, tl, l);\n this.ondata(null, out, true);\n this.d = 2;\n };\n /**\n * A method to terminate any internal workers used by the stream. Subsequent\n * calls to add() will fail.\n */\n Zip.prototype.terminate = function () {\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n f.t();\n }\n this.d = 2;\n };\n return Zip;\n}());\nexport { Zip };\nexport function zip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var r = {};\n fltn(data, '', r, opts);\n var k = Object.keys(r);\n var lft = k.length, o = 0, tot = 0;\n var slft = lft, files = new Array(lft);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var cbf = function () {\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n tot = 0;\n for (var i = 0; i < slft; ++i) {\n var f = files[i];\n try {\n var l = f.c.length;\n wzh(out, tot, f, f.f, f.u, l);\n var badd = 30 + f.f.length + exfl(f.extra);\n var loc = tot + badd;\n out.set(f.c, loc);\n wzh(out, o, f, f.f, f.u, l, tot, f.m), o += 16 + badd + (f.m ? f.m.length : 0), tot = loc + l;\n }\n catch (e) {\n return cbd(e, null);\n }\n }\n wzf(out, o, files.length, cdl, oe);\n cbd(null, out);\n };\n if (!lft)\n cbf();\n var _loop_1 = function (i) {\n var fn = k[i];\n var _a = r[fn], file = _a[0], p = _a[1];\n var c = crc(), size = file.length;\n c.p(file);\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n var compression = p.level == 0 ? 0 : 8;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n var l = d.length;\n files[i] = mrg(p, {\n size: size,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n compression: compression\n });\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n if (!--lft)\n cbf();\n }\n };\n if (s > 65535)\n cbl(err(11, 0, 1), null);\n if (!compression)\n cbl(null, file);\n else if (size < 160000) {\n try {\n cbl(null, deflateSync(file, p));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(deflate(file, p, cbl));\n };\n // Cannot use lft because it can decrease\n for (var i = 0; i < slft; ++i) {\n _loop_1(i);\n }\n return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\nexport function zipSync(data, opts) {\n if (!opts)\n opts = {};\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n for (var fn in r) {\n var _a = r[fn], file = _a[0], p = _a[1];\n var compression = p.level == 0 ? 0 : 8;\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n if (s > 65535)\n err(11);\n var d = compression ? deflateSync(file, p) : file, l = d.length;\n var c = crc();\n c.p(file);\n files.push(mrg(p, {\n size: file.length,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n o: o,\n compression: compression\n }));\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n }\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f, f.f, f.u, f.c.length);\n var badd = 30 + f.f.length + exfl(f.extra);\n out.set(f.c, f.o + badd);\n wzh(out, o, f, f.f, f.u, f.c.length, f.o, f.m), o += 16 + badd + (f.m ? f.m.length : 0);\n }\n wzf(out, o, files.length, cdl, oe);\n return out;\n}\n/**\n * Streaming pass-through decompression for ZIP archives\n */\nvar UnzipPassThrough = /*#__PURE__*/ (function () {\n function UnzipPassThrough() {\n }\n UnzipPassThrough.prototype.push = function (data, final) {\n this.ondata(null, data, final);\n };\n UnzipPassThrough.compression = 0;\n return UnzipPassThrough;\n}());\nexport { UnzipPassThrough };\n/**\n * Streaming DEFLATE decompression for ZIP archives. Prefer AsyncZipInflate for\n * better performance.\n */\nvar UnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function UnzipInflate() {\n var _this = this;\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n UnzipInflate.prototype.push = function (data, final) {\n try {\n this.i.push(data, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n UnzipInflate.compression = 8;\n return UnzipInflate;\n}());\nexport { UnzipInflate };\n/**\n * Asynchronous streaming DEFLATE decompression for ZIP archives\n */\nvar AsyncUnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function AsyncUnzipInflate(_, sz) {\n var _this = this;\n if (sz < 320000) {\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n else {\n this.i = new AsyncInflate(function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.terminate = this.i.terminate;\n }\n }\n AsyncUnzipInflate.prototype.push = function (data, final) {\n if (this.i.terminate)\n data = slc(data, 0);\n this.i.push(data, final);\n };\n AsyncUnzipInflate.compression = 8;\n return AsyncUnzipInflate;\n}());\nexport { AsyncUnzipInflate };\n/**\n * A ZIP archive decompression stream that emits files as they are discovered\n */\nvar Unzip = /*#__PURE__*/ (function () {\n /**\n * Creates a ZIP decompression stream\n * @param cb The callback to call whenever a file in the ZIP archive is found\n */\n function Unzip(cb) {\n this.onfile = cb;\n this.k = [];\n this.o = {\n 0: UnzipPassThrough\n };\n this.p = et;\n }\n /**\n * Pushes a chunk to be unzipped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzip.prototype.push = function (chunk, final) {\n var _this = this;\n if (!this.onfile)\n err(5);\n if (!this.p)\n err(4);\n if (this.c > 0) {\n var len = Math.min(this.c, chunk.length);\n var toAdd = chunk.subarray(0, len);\n this.c -= len;\n if (this.d)\n this.d.push(toAdd, !this.c);\n else\n this.k[0].push(toAdd);\n chunk = chunk.subarray(len);\n if (chunk.length)\n return this.push(chunk, final);\n }\n else {\n var f = 0, i = 0, is = void 0, buf = void 0;\n if (!this.p.length)\n buf = chunk;\n else if (!chunk.length)\n buf = this.p;\n else {\n buf = new u8(this.p.length + chunk.length);\n buf.set(this.p), buf.set(chunk, this.p.length);\n }\n var l = buf.length, oc = this.c, add = oc && this.d;\n var _loop_2 = function () {\n var _a;\n var sig = b4(buf, i);\n if (sig == 0x4034B50) {\n f = 1, is = i;\n this_1.d = null;\n this_1.c = 0;\n var bf = b2(buf, i + 6), cmp_1 = b2(buf, i + 8), u = bf & 2048, dd = bf & 8, fnl = b2(buf, i + 26), es = b2(buf, i + 28);\n if (l > i + 30 + fnl + es) {\n var chks_3 = [];\n this_1.k.unshift(chks_3);\n f = 2;\n var sc_1 = b4(buf, i + 18), su_1 = b4(buf, i + 22);\n var fn_1 = strFromU8(buf.subarray(i + 30, i += 30 + fnl), !u);\n if (sc_1 == 4294967295) {\n _a = dd ? [-2] : z64e(buf, i), sc_1 = _a[0], su_1 = _a[1];\n }\n else if (dd)\n sc_1 = -1;\n i += es;\n this_1.c = sc_1;\n var d_1;\n var file_1 = {\n name: fn_1,\n compression: cmp_1,\n start: function () {\n if (!file_1.ondata)\n err(5);\n if (!sc_1)\n file_1.ondata(null, et, true);\n else {\n var ctr = _this.o[cmp_1];\n if (!ctr)\n file_1.ondata(err(14, 'unknown compression type ' + cmp_1, 1), null, false);\n d_1 = sc_1 < 0 ? new ctr(fn_1) : new ctr(fn_1, sc_1, su_1);\n d_1.ondata = function (err, dat, final) { file_1.ondata(err, dat, final); };\n for (var _i = 0, chks_4 = chks_3; _i < chks_4.length; _i++) {\n var dat = chks_4[_i];\n d_1.push(dat, false);\n }\n if (_this.k[0] == chks_3 && _this.c)\n _this.d = d_1;\n else\n d_1.push(et, true);\n }\n },\n terminate: function () {\n if (d_1 && d_1.terminate)\n d_1.terminate();\n }\n };\n if (sc_1 >= 0)\n file_1.size = sc_1, file_1.originalSize = su_1;\n this_1.onfile(file_1);\n }\n return \"break\";\n }\n else if (oc) {\n if (sig == 0x8074B50) {\n is = i += 12 + (oc == -2 && 8), f = 3, this_1.c = 0;\n return \"break\";\n }\n else if (sig == 0x2014B50) {\n is = i -= 4, f = 3, this_1.c = 0;\n return \"break\";\n }\n }\n };\n var this_1 = this;\n for (; i < l - 4; ++i) {\n var state_1 = _loop_2();\n if (state_1 === \"break\")\n break;\n }\n this.p = et;\n if (oc < 0) {\n var dat = f ? buf.subarray(0, is - 12 - (oc == -2 && 8) - (b4(buf, is - 16) == 0x8074B50 && 4)) : buf.subarray(0, i);\n if (add)\n add.push(dat, !!f);\n else\n this.k[+(f == 2)].push(dat);\n }\n if (f & 2)\n return this.push(buf.subarray(i), final);\n this.p = buf.subarray(i);\n }\n if (final) {\n if (this.c)\n err(13);\n this.p = null;\n }\n };\n /**\n * Registers a decoder with the stream, allowing for files compressed with\n * the compression type provided to be expanded correctly\n * @param decoder The decoder constructor\n */\n Unzip.prototype.register = function (decoder) {\n this.o[decoder.compression] = decoder;\n };\n return Unzip;\n}());\nexport { Unzip };\nvar mt = typeof queueMicrotask == 'function' ? queueMicrotask : typeof setTimeout == 'function' ? setTimeout : function (fn) { fn(); };\nexport function unzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var files = {};\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) {\n cbd(err(13, 0, 1), null);\n return tAll;\n }\n }\n ;\n var lft = b2(data, e + 8);\n if (lft) {\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = lft = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n var _loop_3 = function (i) {\n var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n if (d)\n files[fn] = d;\n if (!--lft)\n cbd(null, files);\n }\n };\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_1\n })) {\n if (!c_1)\n cbl(null, slc(data, b, b + sc));\n else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n // Synchronously decompress under 512KB, or barely-compressed data\n if (su < 524288 || sc > 0.8 * su) {\n try {\n cbl(null, inflateSync(infl, { out: new u8(su) }));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(inflate(infl, { size: su }, cbl));\n }\n else\n cbl(err(14, 'unknown compression type ' + c_1, 1), null);\n }\n else\n cbl(null, null);\n };\n for (var i = 0; i < c; ++i) {\n _loop_3(i);\n }\n }\n else\n cbd(null, {});\n return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @param opts The ZIP extraction options\n * @returns The decompressed files\n */\nexport function unzipSync(data, opts) {\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558)\n err(13);\n }\n ;\n var c = b2(data, e + 8);\n if (!c)\n return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n for (var i = 0; i < c; ++i) {\n var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_2\n })) {\n if (!c_2)\n files[fn] = slc(data, b, b + sc);\n else if (c_2 == 8)\n files[fn] = inflateSync(data.subarray(b, b + sc), { out: new u8(su) });\n else\n err(14, 'unknown compression type ' + c_2);\n }\n }\n return files;\n}\n","/**\n * Returns a `Uint8Array` of the requested size. Referenced memory will\n * be initialized to 0.\n */\nexport function alloc(size = 0) {\n return new Uint8Array(size);\n}\n/**\n * Where possible returns a Uint8Array of the requested size that references\n * uninitialized memory. Only use if you are certain you will immediately\n * overwrite every value in the returned `Uint8Array`.\n */\nexport function allocUnsafe(size = 0) {\n return new Uint8Array(size);\n}\n//# sourceMappingURL=alloc.js.map","/* eslint-disable no-fallthrough */\nimport { allocUnsafe } from 'uint8arrays/alloc';\nconst N1 = Math.pow(2, 7);\nconst N2 = Math.pow(2, 14);\nconst N3 = Math.pow(2, 21);\nconst N4 = Math.pow(2, 28);\nconst N5 = Math.pow(2, 35);\nconst N6 = Math.pow(2, 42);\nconst N7 = Math.pow(2, 49);\n/** Most significant bit of a byte */\nconst MSB = 0x80;\n/** Rest of the bits in a byte */\nconst REST = 0x7f;\nexport function encodingLength(value) {\n if (value < N1) {\n return 1;\n }\n if (value < N2) {\n return 2;\n }\n if (value < N3) {\n return 3;\n }\n if (value < N4) {\n return 4;\n }\n if (value < N5) {\n return 5;\n }\n if (value < N6) {\n return 6;\n }\n if (value < N7) {\n return 7;\n }\n if (Number.MAX_SAFE_INTEGER != null && value > Number.MAX_SAFE_INTEGER) {\n throw new RangeError('Could not encode varint');\n }\n return 8;\n}\nexport function encodeUint8Array(value, buf, offset = 0) {\n switch (encodingLength(value)) {\n case 8: {\n buf[offset++] = (value & 0xFF) | MSB;\n value /= 128;\n }\n case 7: {\n buf[offset++] = (value & 0xFF) | MSB;\n value /= 128;\n }\n case 6: {\n buf[offset++] = (value & 0xFF) | MSB;\n value /= 128;\n }\n case 5: {\n buf[offset++] = (value & 0xFF) | MSB;\n value /= 128;\n }\n case 4: {\n buf[offset++] = (value & 0xFF) | MSB;\n value >>>= 7;\n }\n case 3: {\n buf[offset++] = (value & 0xFF) | MSB;\n value >>>= 7;\n }\n case 2: {\n buf[offset++] = (value & 0xFF) | MSB;\n value >>>= 7;\n }\n case 1: {\n buf[offset++] = (value & 0xFF);\n value >>>= 7;\n break;\n }\n default: throw new Error('unreachable');\n }\n return buf;\n}\nexport function encodeUint8ArrayList(value, buf, offset = 0) {\n switch (encodingLength(value)) {\n case 8: {\n buf.set(offset++, (value & 0xFF) | MSB);\n value /= 128;\n }\n case 7: {\n buf.set(offset++, (value & 0xFF) | MSB);\n value /= 128;\n }\n case 6: {\n buf.set(offset++, (value & 0xFF) | MSB);\n value /= 128;\n }\n case 5: {\n buf.set(offset++, (value & 0xFF) | MSB);\n value /= 128;\n }\n case 4: {\n buf.set(offset++, (value & 0xFF) | MSB);\n value >>>= 7;\n }\n case 3: {\n buf.set(offset++, (value & 0xFF) | MSB);\n value >>>= 7;\n }\n case 2: {\n buf.set(offset++, (value & 0xFF) | MSB);\n value >>>= 7;\n }\n case 1: {\n buf.set(offset++, (value & 0xFF));\n value >>>= 7;\n break;\n }\n default: throw new Error('unreachable');\n }\n return buf;\n}\nexport function decodeUint8Array(buf, offset) {\n let b = buf[offset];\n let res = 0;\n res += b & REST;\n if (b < MSB) {\n return res;\n }\n b = buf[offset + 1];\n res += (b & REST) << 7;\n if (b < MSB) {\n return res;\n }\n b = buf[offset + 2];\n res += (b & REST) << 14;\n if (b < MSB) {\n return res;\n }\n b = buf[offset + 3];\n res += (b & REST) << 21;\n if (b < MSB) {\n return res;\n }\n b = buf[offset + 4];\n res += (b & REST) * N4;\n if (b < MSB) {\n return res;\n }\n b = buf[offset + 5];\n res += (b & REST) * N5;\n if (b < MSB) {\n return res;\n }\n b = buf[offset + 6];\n res += (b & REST) * N6;\n if (b < MSB) {\n return res;\n }\n b = buf[offset + 7];\n res += (b & REST) * N7;\n if (b < MSB) {\n return res;\n }\n throw new RangeError('Could not decode varint');\n}\nexport function decodeUint8ArrayList(buf, offset) {\n let b = buf.get(offset);\n let res = 0;\n res += b & REST;\n if (b < MSB) {\n return res;\n }\n b = buf.get(offset + 1);\n res += (b & REST) << 7;\n if (b < MSB) {\n return res;\n }\n b = buf.get(offset + 2);\n res += (b & REST) << 14;\n if (b < MSB) {\n return res;\n }\n b = buf.get(offset + 3);\n res += (b & REST) << 21;\n if (b < MSB) {\n return res;\n }\n b = buf.get(offset + 4);\n res += (b & REST) * N4;\n if (b < MSB) {\n return res;\n }\n b = buf.get(offset + 5);\n res += (b & REST) * N5;\n if (b < MSB) {\n return res;\n }\n b = buf.get(offset + 6);\n res += (b & REST) * N6;\n if (b < MSB) {\n return res;\n }\n b = buf.get(offset + 7);\n res += (b & REST) * N7;\n if (b < MSB) {\n return res;\n }\n throw new RangeError('Could not decode varint');\n}\nexport function encode(value, buf, offset = 0) {\n if (buf == null) {\n buf = allocUnsafe(encodingLength(value));\n }\n if (buf instanceof Uint8Array) {\n return encodeUint8Array(value, buf, offset);\n }\n else {\n return encodeUint8ArrayList(value, buf, offset);\n }\n}\nexport function decode(buf, offset = 0) {\n if (buf instanceof Uint8Array) {\n return decodeUint8Array(buf, offset);\n }\n else {\n return decodeUint8ArrayList(buf, offset);\n }\n}\n//# sourceMappingURL=index.js.map","const f32 = new Float32Array([-0]);\nconst f8b = new Uint8Array(f32.buffer);\n/**\n * Writes a 32 bit float to a buffer using little endian byte order\n */\nexport function writeFloatLE(val, buf, pos) {\n f32[0] = val;\n buf[pos] = f8b[0];\n buf[pos + 1] = f8b[1];\n buf[pos + 2] = f8b[2];\n buf[pos + 3] = f8b[3];\n}\n/**\n * Writes a 32 bit float to a buffer using big endian byte order\n */\nexport function writeFloatBE(val, buf, pos) {\n f32[0] = val;\n buf[pos] = f8b[3];\n buf[pos + 1] = f8b[2];\n buf[pos + 2] = f8b[1];\n buf[pos + 3] = f8b[0];\n}\n/**\n * Reads a 32 bit float from a buffer using little endian byte order\n */\nexport function readFloatLE(buf, pos) {\n f8b[0] = buf[pos];\n f8b[1] = buf[pos + 1];\n f8b[2] = buf[pos + 2];\n f8b[3] = buf[pos + 3];\n return f32[0];\n}\n/**\n * Reads a 32 bit float from a buffer using big endian byte order\n */\nexport function readFloatBE(buf, pos) {\n f8b[3] = buf[pos];\n f8b[2] = buf[pos + 1];\n f8b[1] = buf[pos + 2];\n f8b[0] = buf[pos + 3];\n return f32[0];\n}\nconst f64 = new Float64Array([-0]);\nconst d8b = new Uint8Array(f64.buffer);\n/**\n * Writes a 64 bit double to a buffer using little endian byte order\n */\nexport function writeDoubleLE(val, buf, pos) {\n f64[0] = val;\n buf[pos] = d8b[0];\n buf[pos + 1] = d8b[1];\n buf[pos + 2] = d8b[2];\n buf[pos + 3] = d8b[3];\n buf[pos + 4] = d8b[4];\n buf[pos + 5] = d8b[5];\n buf[pos + 6] = d8b[6];\n buf[pos + 7] = d8b[7];\n}\n/**\n * Writes a 64 bit double to a buffer using big endian byte order\n */\nexport function writeDoubleBE(val, buf, pos) {\n f64[0] = val;\n buf[pos] = d8b[7];\n buf[pos + 1] = d8b[6];\n buf[pos + 2] = d8b[5];\n buf[pos + 3] = d8b[4];\n buf[pos + 4] = d8b[3];\n buf[pos + 5] = d8b[2];\n buf[pos + 6] = d8b[1];\n buf[pos + 7] = d8b[0];\n}\n/**\n * Reads a 64 bit double from a buffer using little endian byte order\n */\nexport function readDoubleLE(buf, pos) {\n d8b[0] = buf[pos];\n d8b[1] = buf[pos + 1];\n d8b[2] = buf[pos + 2];\n d8b[3] = buf[pos + 3];\n d8b[4] = buf[pos + 4];\n d8b[5] = buf[pos + 5];\n d8b[6] = buf[pos + 6];\n d8b[7] = buf[pos + 7];\n return f64[0];\n}\n/**\n * Reads a 64 bit double from a buffer using big endian byte order\n */\nexport function readDoubleBE(buf, pos) {\n d8b[7] = buf[pos];\n d8b[6] = buf[pos + 1];\n d8b[5] = buf[pos + 2];\n d8b[4] = buf[pos + 3];\n d8b[3] = buf[pos + 4];\n d8b[2] = buf[pos + 5];\n d8b[1] = buf[pos + 6];\n d8b[0] = buf[pos + 7];\n return f64[0];\n}\n//# sourceMappingURL=float.js.map","// the largest BigInt we can safely downcast to a Number\nconst MAX_SAFE_NUMBER_INTEGER = BigInt(Number.MAX_SAFE_INTEGER);\nconst MIN_SAFE_NUMBER_INTEGER = BigInt(Number.MIN_SAFE_INTEGER);\n/**\n * Constructs new long bits.\n *\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @function Object() { [native code] }\n * @param {number} lo - Low 32 bits, unsigned\n * @param {number} hi - High 32 bits, unsigned\n */\nexport class LongBits {\n lo;\n hi;\n constructor(lo, hi) {\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n /**\n * Low bits\n */\n this.lo = lo | 0;\n /**\n * High bits\n */\n this.hi = hi | 0;\n }\n /**\n * Converts this long bits to a possibly unsafe JavaScript number\n */\n toNumber(unsigned = false) {\n if (!unsigned && (this.hi >>> 31) > 0) {\n const lo = ~this.lo + 1 >>> 0;\n let hi = ~this.hi >>> 0;\n if (lo === 0) {\n hi = hi + 1 >>> 0;\n }\n return -(lo + hi * 4294967296);\n }\n return this.lo + this.hi * 4294967296;\n }\n /**\n * Converts this long bits to a bigint\n */\n toBigInt(unsigned = false) {\n if (unsigned) {\n return BigInt(this.lo >>> 0) + (BigInt(this.hi >>> 0) << 32n);\n }\n if ((this.hi >>> 31) !== 0) {\n const lo = ~this.lo + 1 >>> 0;\n let hi = ~this.hi >>> 0;\n if (lo === 0) {\n hi = hi + 1 >>> 0;\n }\n return -(BigInt(lo) + (BigInt(hi) << 32n));\n }\n return BigInt(this.lo >>> 0) + (BigInt(this.hi >>> 0) << 32n);\n }\n /**\n * Converts this long bits to a string\n */\n toString(unsigned = false) {\n return this.toBigInt(unsigned).toString();\n }\n /**\n * Zig-zag encodes this long bits\n */\n zzEncode() {\n const mask = this.hi >> 31;\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n this.lo = (this.lo << 1 ^ mask) >>> 0;\n return this;\n }\n /**\n * Zig-zag decodes this long bits\n */\n zzDecode() {\n const mask = -(this.lo & 1);\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n this.hi = (this.hi >>> 1 ^ mask) >>> 0;\n return this;\n }\n /**\n * Calculates the length of this longbits when encoded as a varint.\n */\n length() {\n const part0 = this.lo;\n const part1 = (this.lo >>> 28 | this.hi << 4) >>> 0;\n const part2 = this.hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10;\n }\n /**\n * Constructs new long bits from the specified number\n */\n static fromBigInt(value) {\n if (value === 0n) {\n return zero;\n }\n if (value < MAX_SAFE_NUMBER_INTEGER && value > MIN_SAFE_NUMBER_INTEGER) {\n return this.fromNumber(Number(value));\n }\n const negative = value < 0n;\n if (negative) {\n value = -value;\n }\n let hi = value >> 32n;\n let lo = value - (hi << 32n);\n if (negative) {\n hi = ~hi | 0n;\n lo = ~lo | 0n;\n if (++lo > TWO_32) {\n lo = 0n;\n if (++hi > TWO_32) {\n hi = 0n;\n }\n }\n }\n return new LongBits(Number(lo), Number(hi));\n }\n /**\n * Constructs new long bits from the specified number\n */\n static fromNumber(value) {\n if (value === 0) {\n return zero;\n }\n const sign = value < 0;\n if (sign) {\n value = -value;\n }\n let lo = value >>> 0;\n let hi = (value - lo) / 4294967296 >>> 0;\n if (sign) {\n hi = ~hi >>> 0;\n lo = ~lo >>> 0;\n if (++lo > 4294967295) {\n lo = 0;\n if (++hi > 4294967295) {\n hi = 0;\n }\n }\n }\n return new LongBits(lo, hi);\n }\n /**\n * Constructs new long bits from a number, long or string\n */\n static from(value) {\n if (typeof value === 'number') {\n return LongBits.fromNumber(value);\n }\n if (typeof value === 'bigint') {\n return LongBits.fromBigInt(value);\n }\n if (typeof value === 'string') {\n return LongBits.fromBigInt(BigInt(value));\n }\n return value.low != null || value.high != null ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n }\n}\nconst zero = new LongBits(0, 0);\nzero.toBigInt = function () { return 0n; };\nzero.zzEncode = zero.zzDecode = function () { return this; };\nzero.length = function () { return 1; };\nconst TWO_32 = 4294967296n;\n//# sourceMappingURL=longbits.js.map","/**\n * Calculates the UTF8 byte length of a string\n */\nexport function length(string) {\n let len = 0;\n let c = 0;\n for (let i = 0; i < string.length; ++i) {\n c = string.charCodeAt(i);\n if (c < 128) {\n len += 1;\n }\n else if (c < 2048) {\n len += 2;\n }\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\n ++i;\n len += 4;\n }\n else {\n len += 3;\n }\n }\n return len;\n}\n/**\n * Reads UTF8 bytes as a string\n */\nexport function read(buffer, start, end) {\n const len = end - start;\n if (len < 1) {\n return '';\n }\n let parts;\n const chunk = [];\n let i = 0; // char offset\n let t; // temporary\n while (start < end) {\n t = buffer[start++];\n if (t < 128) {\n chunk[i++] = t;\n }\n else if (t > 191 && t < 224) {\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\n }\n else if (t > 239 && t < 365) {\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\n chunk[i++] = 0xD800 + (t >> 10);\n chunk[i++] = 0xDC00 + (t & 1023);\n }\n else {\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\n }\n if (i > 8191) {\n (parts ?? (parts = [])).push(String.fromCharCode.apply(String, chunk));\n i = 0;\n }\n }\n if (parts != null) {\n if (i > 0) {\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\n }\n return parts.join('');\n }\n return String.fromCharCode.apply(String, chunk.slice(0, i));\n}\n/**\n * Writes a string as UTF8 bytes\n */\nexport function write(string, buffer, offset) {\n const start = offset;\n let c1; // character 1\n let c2; // character 2\n for (let i = 0; i < string.length; ++i) {\n c1 = string.charCodeAt(i);\n if (c1 < 128) {\n buffer[offset++] = c1;\n }\n else if (c1 < 2048) {\n buffer[offset++] = c1 >> 6 | 192;\n buffer[offset++] = c1 & 63 | 128;\n }\n else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\n ++i;\n buffer[offset++] = c1 >> 18 | 240;\n buffer[offset++] = c1 >> 12 & 63 | 128;\n buffer[offset++] = c1 >> 6 & 63 | 128;\n buffer[offset++] = c1 & 63 | 128;\n }\n else {\n buffer[offset++] = c1 >> 12 | 224;\n buffer[offset++] = c1 >> 6 & 63 | 128;\n buffer[offset++] = c1 & 63 | 128;\n }\n }\n return offset - start;\n}\n//# sourceMappingURL=utf8.js.map","import { decodeUint8Array, encodingLength } from 'uint8-varint';\nimport { readFloatLE, readDoubleLE } from './float.js';\nimport { LongBits } from './longbits.js';\nimport * as utf8 from './utf8.js';\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(`index out of range: ${reader.pos} + ${writeLength ?? 1} > ${reader.len}`);\n}\nfunction readFixed32End(buf, end) {\n return (buf[end - 4] |\n buf[end - 3] << 8 |\n buf[end - 2] << 16 |\n buf[end - 1] << 24) >>> 0;\n}\n/**\n * Constructs a new reader instance using the specified buffer.\n */\nexport class Uint8ArrayReader {\n buf;\n pos;\n len;\n _slice = Uint8Array.prototype.subarray;\n constructor(buffer) {\n /**\n * Read buffer\n */\n this.buf = buffer;\n /**\n * Read buffer position\n */\n this.pos = 0;\n /**\n * Read buffer length\n */\n this.len = buffer.length;\n }\n /**\n * Reads a varint as an unsigned 32 bit value\n */\n uint32() {\n let value = 4294967295;\n value = (this.buf[this.pos] & 127) >>> 0;\n if (this.buf[this.pos++] < 128)\n return value;\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return value;\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0;\n if (this.buf[this.pos++] < 128)\n return value;\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0;\n if (this.buf[this.pos++] < 128)\n return value;\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0;\n if (this.buf[this.pos++] < 128)\n return value;\n if ((this.pos += 5) > this.len) {\n this.pos = this.len;\n throw indexOutOfRange(this, 10);\n }\n return value;\n }\n /**\n * Reads a varint as a signed 32 bit value\n */\n int32() {\n return this.uint32() | 0;\n }\n /**\n * Reads a zig-zag encoded varint as a signed 32 bit value\n */\n sint32() {\n const value = this.uint32();\n return value >>> 1 ^ -(value & 1) | 0;\n }\n /**\n * Reads a varint as a boolean\n */\n bool() {\n return this.uint32() !== 0;\n }\n /**\n * Reads fixed 32 bits as an unsigned 32 bit integer\n */\n fixed32() {\n if (this.pos + 4 > this.len) {\n throw indexOutOfRange(this, 4);\n }\n const res = readFixed32End(this.buf, this.pos += 4);\n return res;\n }\n /**\n * Reads fixed 32 bits as a signed 32 bit integer\n */\n sfixed32() {\n if (this.pos + 4 > this.len) {\n throw indexOutOfRange(this, 4);\n }\n const res = readFixed32End(this.buf, this.pos += 4) | 0;\n return res;\n }\n /**\n * Reads a float (32 bit) as a number\n */\n float() {\n if (this.pos + 4 > this.len) {\n throw indexOutOfRange(this, 4);\n }\n const value = readFloatLE(this.buf, this.pos);\n this.pos += 4;\n return value;\n }\n /**\n * Reads a double (64 bit float) as a number\n */\n double() {\n /* istanbul ignore if */\n if (this.pos + 8 > this.len) {\n throw indexOutOfRange(this, 4);\n }\n const value = readDoubleLE(this.buf, this.pos);\n this.pos += 8;\n return value;\n }\n /**\n * Reads a sequence of bytes preceded by its length as a varint\n */\n bytes() {\n const length = this.uint32();\n const start = this.pos;\n const end = this.pos + length;\n /* istanbul ignore if */\n if (end > this.len) {\n throw indexOutOfRange(this, length);\n }\n this.pos += length;\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\n ? new Uint8Array(0)\n : this.buf.subarray(start, end);\n }\n /**\n * Reads a string preceded by its byte length as a varint\n */\n string() {\n const bytes = this.bytes();\n return utf8.read(bytes, 0, bytes.length);\n }\n /**\n * Skips the specified number of bytes if specified, otherwise skips a varint\n */\n skip(length) {\n if (typeof length === 'number') {\n /* istanbul ignore if */\n if (this.pos + length > this.len) {\n throw indexOutOfRange(this, length);\n }\n this.pos += length;\n }\n else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len) {\n throw indexOutOfRange(this);\n }\n } while ((this.buf[this.pos++] & 128) !== 0);\n }\n return this;\n }\n /**\n * Skips the next element of the specified wire type\n */\n skipType(wireType) {\n switch (wireType) {\n case 0:\n this.skip();\n break;\n case 1:\n this.skip(8);\n break;\n case 2:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case 5:\n this.skip(4);\n break;\n /* istanbul ignore next */\n default:\n throw Error(`invalid wire type ${wireType} at offset ${this.pos}`);\n }\n return this;\n }\n readLongVarint() {\n // tends to deopt with local vars for octet etc.\n const bits = new LongBits(0, 0);\n let i = 0;\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128) {\n return bits;\n }\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n if (this.buf[this.pos++] < 128) {\n return bits;\n }\n i = 0;\n }\n else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len) {\n throw indexOutOfRange(this);\n }\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128) {\n return bits;\n }\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n return bits;\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128) {\n return bits;\n }\n }\n }\n else {\n for (; i < 5; ++i) {\n if (this.pos >= this.len) {\n throw indexOutOfRange(this);\n }\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128) {\n return bits;\n }\n }\n }\n throw Error('invalid varint encoding');\n }\n readFixed64() {\n if (this.pos + 8 > this.len) {\n throw indexOutOfRange(this, 8);\n }\n const lo = readFixed32End(this.buf, this.pos += 4);\n const hi = readFixed32End(this.buf, this.pos += 4);\n return new LongBits(lo, hi);\n }\n /**\n * Reads a varint as a signed 64 bit value\n */\n int64() {\n return this.readLongVarint().toBigInt();\n }\n /**\n * Reads a varint as a signed 64 bit value returned as a possibly unsafe\n * JavaScript number\n */\n int64Number() {\n return this.readLongVarint().toNumber();\n }\n /**\n * Reads a varint as a signed 64 bit value returned as a string\n */\n int64String() {\n return this.readLongVarint().toString();\n }\n /**\n * Reads a varint as an unsigned 64 bit value\n */\n uint64() {\n return this.readLongVarint().toBigInt(true);\n }\n /**\n * Reads a varint as an unsigned 64 bit value returned as a possibly unsafe\n * JavaScript number\n */\n uint64Number() {\n const value = decodeUint8Array(this.buf, this.pos);\n this.pos += encodingLength(value);\n return value;\n }\n /**\n * Reads a varint as an unsigned 64 bit value returned as a string\n */\n uint64String() {\n return this.readLongVarint().toString(true);\n }\n /**\n * Reads a zig-zag encoded varint as a signed 64 bit value\n */\n sint64() {\n return this.readLongVarint().zzDecode().toBigInt();\n }\n /**\n * Reads a zig-zag encoded varint as a signed 64 bit value returned as a\n * possibly unsafe JavaScript number\n */\n sint64Number() {\n return this.readLongVarint().zzDecode().toNumber();\n }\n /**\n * Reads a zig-zag encoded varint as a signed 64 bit value returned as a\n * string\n */\n sint64String() {\n return this.readLongVarint().zzDecode().toString();\n }\n /**\n * Reads fixed 64 bits\n */\n fixed64() {\n return this.readFixed64().toBigInt();\n }\n /**\n * Reads fixed 64 bits returned as a possibly unsafe JavaScript number\n */\n fixed64Number() {\n return this.readFixed64().toNumber();\n }\n /**\n * Reads fixed 64 bits returned as a string\n */\n fixed64String() {\n return this.readFixed64().toString();\n }\n /**\n * Reads zig-zag encoded fixed 64 bits\n */\n sfixed64() {\n return this.readFixed64().toBigInt();\n }\n /**\n * Reads zig-zag encoded fixed 64 bits returned as a possibly unsafe\n * JavaScript number\n */\n sfixed64Number() {\n return this.readFixed64().toNumber();\n }\n /**\n * Reads zig-zag encoded fixed 64 bits returned as a string\n */\n sfixed64String() {\n return this.readFixed64().toString();\n }\n}\nexport function createReader(buf) {\n return new Uint8ArrayReader(buf instanceof Uint8Array ? buf : buf.subarray());\n}\n//# sourceMappingURL=reader.js.map","import { createReader } from './utils/reader.js';\nexport function decodeMessage(buf, codec, opts) {\n const reader = createReader(buf);\n return codec.decode(reader, undefined, opts);\n}\n//# sourceMappingURL=decode.js.map","import { baseX } from './base.js';\nexport const base10 = baseX({\n prefix: '9',\n name: 'base10',\n alphabet: '0123456789'\n});\n//# sourceMappingURL=base10.js.map","import { rfc4648 } from './base.js';\nexport const base16 = rfc4648({\n prefix: 'f',\n name: 'base16',\n alphabet: '0123456789abcdef',\n bitsPerChar: 4\n});\nexport const base16upper = rfc4648({\n prefix: 'F',\n name: 'base16upper',\n alphabet: '0123456789ABCDEF',\n bitsPerChar: 4\n});\n//# sourceMappingURL=base16.js.map","import { rfc4648 } from './base.js';\nexport const base2 = rfc4648({\n prefix: '0',\n name: 'base2',\n alphabet: '01',\n bitsPerChar: 1\n});\n//# sourceMappingURL=base2.js.map","import { from } from './base.js';\nconst alphabet = Array.from('🚀🪐☄🛰🌌🌑🌒🌓🌔🌕🌖🌗🌘🌍🌏🌎🐉☀💻🖥💾💿😂❤😍🤣😊🙏💕😭😘👍😅👏😁🔥🥰💔💖💙😢🤔😆🙄💪😉☺👌🤗💜😔😎😇🌹🤦🎉💞✌✨🤷😱😌🌸🙌😋💗💚😏💛🙂💓🤩😄😀🖤😃💯🙈👇🎶😒🤭❣😜💋👀😪😑💥🙋😞😩😡🤪👊🥳😥🤤👉💃😳✋😚😝😴🌟😬🙃🍀🌷😻😓⭐✅🥺🌈😈🤘💦✔😣🏃💐☹🎊💘😠☝😕🌺🎂🌻😐🖕💝🙊😹🗣💫💀👑🎵🤞😛🔴😤🌼😫⚽🤙☕🏆🤫👈😮🙆🍻🍃🐶💁😲🌿🧡🎁⚡🌞🎈❌✊👋😰🤨😶🤝🚶💰🍓💢🤟🙁🚨💨🤬✈🎀🍺🤓😙💟🌱😖👶🥴▶➡❓💎💸⬇😨🌚🦋😷🕺⚠🙅😟😵👎🤲🤠🤧📌🔵💅🧐🐾🍒😗🤑🌊🤯🐷☎💧😯💆👆🎤🙇🍑❄🌴💣🐸💌📍🥀🤢👅💡💩👐📸👻🤐🤮🎼🥵🚩🍎🍊👼💍📣🥂');\nconst alphabetBytesToChars = (alphabet.reduce((p, c, i) => { p[i] = c; return p; }, ([])));\nconst alphabetCharsToBytes = (alphabet.reduce((p, c, i) => { p[c.codePointAt(0)] = i; return p; }, ([])));\nfunction encode(data) {\n return data.reduce((p, c) => {\n p += alphabetBytesToChars[c];\n return p;\n }, '');\n}\nfunction decode(str) {\n const byts = [];\n for (const char of str) {\n const byt = alphabetCharsToBytes[char.codePointAt(0)];\n if (byt === undefined) {\n throw new Error(`Non-base256emoji character: ${char}`);\n }\n byts.push(byt);\n }\n return new Uint8Array(byts);\n}\nexport const base256emoji = from({\n prefix: '🚀',\n name: 'base256emoji',\n encode,\n decode\n});\n//# sourceMappingURL=base256emoji.js.map","import { baseX } from './base.js';\nexport const base36 = baseX({\n prefix: 'k',\n name: 'base36',\n alphabet: '0123456789abcdefghijklmnopqrstuvwxyz'\n});\nexport const base36upper = baseX({\n prefix: 'K',\n name: 'base36upper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'\n});\n//# sourceMappingURL=base36.js.map","import { rfc4648 } from './base.js';\nexport const base64 = rfc4648({\n prefix: 'm',\n name: 'base64',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n bitsPerChar: 6\n});\nexport const base64pad = rfc4648({\n prefix: 'M',\n name: 'base64pad',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n bitsPerChar: 6\n});\nexport const base64url = rfc4648({\n prefix: 'u',\n name: 'base64url',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',\n bitsPerChar: 6\n});\nexport const base64urlpad = rfc4648({\n prefix: 'U',\n name: 'base64urlpad',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=',\n bitsPerChar: 6\n});\n//# sourceMappingURL=base64.js.map","import { rfc4648 } from './base.js';\nexport const base8 = rfc4648({\n prefix: '7',\n name: 'base8',\n alphabet: '01234567',\n bitsPerChar: 3\n});\n//# sourceMappingURL=base8.js.map","import { fromString, toString } from '../bytes.js';\nimport { from } from './base.js';\nexport const identity = from({\n prefix: '\\x00',\n name: 'identity',\n encode: (buf) => toString(buf),\n decode: (str) => fromString(str)\n});\n//# sourceMappingURL=identity.js.map","const textEncoder = new TextEncoder();\nconst textDecoder = new TextDecoder();\nexport const name = 'json';\nexport const code = 0x0200;\nexport function encode(node) {\n return textEncoder.encode(JSON.stringify(node));\n}\nexport function decode(data) {\n return JSON.parse(textDecoder.decode(data));\n}\n//# sourceMappingURL=json.js.map","import * as base10 from './bases/base10.js';\nimport * as base16 from './bases/base16.js';\nimport * as base2 from './bases/base2.js';\nimport * as base256emoji from './bases/base256emoji.js';\nimport * as base32 from './bases/base32.js';\nimport * as base36 from './bases/base36.js';\nimport * as base58 from './bases/base58.js';\nimport * as base64 from './bases/base64.js';\nimport * as base8 from './bases/base8.js';\nimport * as identityBase from './bases/identity.js';\nimport * as json from './codecs/json.js';\nimport * as raw from './codecs/raw.js';\nimport * as identity from './hashes/identity.js';\nimport * as sha2 from './hashes/sha2.js';\nimport { CID, hasher, digest, varint, bytes } from './index.js';\nexport const bases = { ...identityBase, ...base2, ...base8, ...base10, ...base16, ...base32, ...base36, ...base58, ...base64, ...base256emoji };\nexport const hashes = { ...sha2, ...identity };\nexport const codecs = { raw, json };\nexport { CID, hasher, digest, varint, bytes };\n//# sourceMappingURL=basics.js.map","import { bases } from 'multiformats/basics';\nimport { allocUnsafe } from '#alloc';\nfunction createCodec(name, prefix, encode, decode) {\n return {\n name,\n prefix,\n encoder: {\n name,\n prefix,\n encode\n },\n decoder: {\n decode\n }\n };\n}\nconst string = createCodec('utf8', 'u', (buf) => {\n const decoder = new TextDecoder('utf8');\n return 'u' + decoder.decode(buf);\n}, (str) => {\n const encoder = new TextEncoder();\n return encoder.encode(str.substring(1));\n});\nconst ascii = createCodec('ascii', 'a', (buf) => {\n let string = 'a';\n for (let i = 0; i < buf.length; i++) {\n string += String.fromCharCode(buf[i]);\n }\n return string;\n}, (str) => {\n str = str.substring(1);\n const buf = allocUnsafe(str.length);\n for (let i = 0; i < str.length; i++) {\n buf[i] = str.charCodeAt(i);\n }\n return buf;\n});\nconst BASES = {\n utf8: string,\n 'utf-8': string,\n hex: bases.base16,\n latin1: ascii,\n ascii,\n binary: ascii,\n ...bases\n};\nexport default BASES;\n//# sourceMappingURL=bases.js.map","import bases, {} from './util/bases.js';\n/**\n * Create a `Uint8Array` from the passed string\n *\n * Supports `utf8`, `utf-8`, `hex`, and any encoding supported by the multiformats module.\n *\n * Also `ascii` which is similar to node's 'binary' encoding.\n */\nexport function fromString(string, encoding = 'utf8') {\n const base = bases[encoding];\n if (base == null) {\n throw new Error(`Unsupported encoding \"${encoding}\"`);\n }\n // add multibase prefix\n return base.decoder.decode(`${base.prefix}${string}`); // eslint-disable-line @typescript-eslint/restrict-template-expressions\n}\n//# sourceMappingURL=from-string.js.map","import { allocUnsafe } from 'uint8arrays/alloc';\n/**\n * A general purpose buffer pool\n */\nexport default function pool(size) {\n const SIZE = size ?? 8192;\n const MAX = SIZE >>> 1;\n let slab;\n let offset = SIZE;\n return function poolAlloc(size) {\n if (size < 1 || size > MAX) {\n return allocUnsafe(size);\n }\n if (offset + size > SIZE) {\n slab = allocUnsafe(SIZE);\n offset = 0;\n }\n const buf = slab.subarray(offset, offset += size);\n if ((offset & 7) !== 0) {\n // align to 32 bit\n offset = (offset | 7) + 1;\n }\n return buf;\n };\n}\n//# sourceMappingURL=pool.js.map","import { encodeUint8Array, encodingLength } from 'uint8-varint';\nimport { allocUnsafe } from 'uint8arrays/alloc';\nimport { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';\nimport { writeFloatLE, writeDoubleLE } from './float.js';\nimport { LongBits } from './longbits.js';\nimport pool from './pool.js';\nimport * as utf8 from './utf8.js';\n/**\n * Constructs a new writer operation instance.\n *\n * @classdesc Scheduled writer operation\n */\nclass Op {\n /**\n * Function to call\n */\n fn;\n /**\n * Value byte length\n */\n len;\n /**\n * Next operation\n */\n next;\n /**\n * Value to write\n */\n val;\n constructor(fn, len, val) {\n this.fn = fn;\n this.len = len;\n this.next = undefined;\n this.val = val; // type varies\n }\n}\n/* istanbul ignore next */\nfunction noop() { } // eslint-disable-line no-empty-function\n/**\n * Constructs a new writer state instance\n */\nclass State {\n /**\n * Current head\n */\n head;\n /**\n * Current tail\n */\n tail;\n /**\n * Current buffer length\n */\n len;\n /**\n * Next state\n */\n next;\n constructor(writer) {\n this.head = writer.head;\n this.tail = writer.tail;\n this.len = writer.len;\n this.next = writer.states;\n }\n}\nconst bufferPool = pool();\n/**\n * Allocates a buffer of the specified size\n */\nfunction alloc(size) {\n if (globalThis.Buffer != null) {\n return allocUnsafe(size);\n }\n return bufferPool(size);\n}\n/**\n * When a value is written, the writer calculates its byte length and puts it into a linked\n * list of operations to perform when finish() is called. This both allows us to allocate\n * buffers of the exact required size and reduces the amount of work we have to do compared\n * to first calculating over objects and then encoding over objects. In our case, the encoding\n * part is just a linked list walk calling operations with already prepared values.\n */\nclass Uint8ArrayWriter {\n /**\n * Current length\n */\n len;\n /**\n * Operations head\n */\n head;\n /**\n * Operations tail\n */\n tail;\n /**\n * Linked forked states\n */\n states;\n constructor() {\n this.len = 0;\n this.head = new Op(noop, 0, 0);\n this.tail = this.head;\n this.states = null;\n }\n /**\n * Pushes a new operation to the queue\n */\n _push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n }\n /**\n * Writes an unsigned 32 bit value as a varint\n */\n uint32(value) {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp((value = value >>> 0) <\n 128\n ? 1\n : value < 16384\n ? 2\n : value < 2097152\n ? 3\n : value < 268435456\n ? 4\n : 5, value)).len;\n return this;\n }\n /**\n * Writes a signed 32 bit value as a varint`\n */\n int32(value) {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value);\n }\n /**\n * Writes a 32 bit value as a varint, zig-zag encoded\n */\n sint32(value) {\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\n }\n /**\n * Writes an unsigned 64 bit value as a varint\n */\n uint64(value) {\n const bits = LongBits.fromBigInt(value);\n return this._push(writeVarint64, bits.length(), bits);\n }\n /**\n * Writes an unsigned 64 bit value as a varint\n */\n uint64Number(value) {\n return this._push(encodeUint8Array, encodingLength(value), value);\n }\n /**\n * Writes an unsigned 64 bit value as a varint\n */\n uint64String(value) {\n return this.uint64(BigInt(value));\n }\n /**\n * Writes a signed 64 bit value as a varint\n */\n int64(value) {\n return this.uint64(value);\n }\n /**\n * Writes a signed 64 bit value as a varint\n */\n int64Number(value) {\n return this.uint64Number(value);\n }\n /**\n * Writes a signed 64 bit value as a varint\n */\n int64String(value) {\n return this.uint64String(value);\n }\n /**\n * Writes a signed 64 bit value as a varint, zig-zag encoded\n */\n sint64(value) {\n const bits = LongBits.fromBigInt(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n }\n /**\n * Writes a signed 64 bit value as a varint, zig-zag encoded\n */\n sint64Number(value) {\n const bits = LongBits.fromNumber(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n }\n /**\n * Writes a signed 64 bit value as a varint, zig-zag encoded\n */\n sint64String(value) {\n return this.sint64(BigInt(value));\n }\n /**\n * Writes a boolish value as a varint\n */\n bool(value) {\n return this._push(writeByte, 1, value ? 1 : 0);\n }\n /**\n * Writes an unsigned 32 bit value as fixed 32 bits\n */\n fixed32(value) {\n return this._push(writeFixed32, 4, value >>> 0);\n }\n /**\n * Writes a signed 32 bit value as fixed 32 bits\n */\n sfixed32(value) {\n return this.fixed32(value);\n }\n /**\n * Writes an unsigned 64 bit value as fixed 64 bits\n */\n fixed64(value) {\n const bits = LongBits.fromBigInt(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n }\n /**\n * Writes an unsigned 64 bit value as fixed 64 bits\n */\n fixed64Number(value) {\n const bits = LongBits.fromNumber(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n }\n /**\n * Writes an unsigned 64 bit value as fixed 64 bits\n */\n fixed64String(value) {\n return this.fixed64(BigInt(value));\n }\n /**\n * Writes a signed 64 bit value as fixed 64 bits\n */\n sfixed64(value) {\n return this.fixed64(value);\n }\n /**\n * Writes a signed 64 bit value as fixed 64 bits\n */\n sfixed64Number(value) {\n return this.fixed64Number(value);\n }\n /**\n * Writes a signed 64 bit value as fixed 64 bits\n */\n sfixed64String(value) {\n return this.fixed64String(value);\n }\n /**\n * Writes a float (32 bit)\n */\n float(value) {\n return this._push(writeFloatLE, 4, value);\n }\n /**\n * Writes a double (64 bit float).\n *\n * @function\n * @param {number} value - Value to write\n * @returns {Writer} `this`\n */\n double(value) {\n return this._push(writeDoubleLE, 8, value);\n }\n /**\n * Writes a sequence of bytes\n */\n bytes(value) {\n const len = value.length >>> 0;\n if (len === 0) {\n return this._push(writeByte, 1, 0);\n }\n return this.uint32(len)._push(writeBytes, len, value);\n }\n /**\n * Writes a string\n */\n string(value) {\n const len = utf8.length(value);\n return len !== 0\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0);\n }\n /**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n */\n fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n return this;\n }\n /**\n * Resets this instance to the last state\n */\n reset() {\n if (this.states != null) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n }\n else {\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n }\n return this;\n }\n /**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n */\n ldelim() {\n const head = this.head;\n const tail = this.tail;\n const len = this.len;\n this.reset().uint32(len);\n if (len !== 0) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n }\n /**\n * Finishes the write operation\n */\n finish() {\n let head = this.head.next; // skip noop\n const buf = alloc(this.len);\n let pos = 0;\n while (head != null) {\n head.fn(head.val, buf, pos);\n pos += head.len;\n head = head.next;\n }\n // this.head = this.tail = null;\n return buf;\n }\n}\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = val & 127 | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\n/**\n * Constructs a new varint writer operation instance.\n *\n * @classdesc Scheduled varint writer operation\n */\nclass VarintOp extends Op {\n next;\n constructor(len, val) {\n super(writeVarint32, len, val);\n this.next = undefined;\n }\n}\nfunction writeVarint64(val, buf, pos) {\n while (val.hi !== 0) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\nfunction writeFixed32(val, buf, pos) {\n buf[pos] = val & 255;\n buf[pos + 1] = val >>> 8 & 255;\n buf[pos + 2] = val >>> 16 & 255;\n buf[pos + 3] = val >>> 24;\n}\nfunction writeBytes(val, buf, pos) {\n buf.set(val, pos);\n}\nif (globalThis.Buffer != null) {\n Uint8ArrayWriter.prototype.bytes = function (value) {\n const len = value.length >>> 0;\n this.uint32(len);\n if (len > 0) {\n this._push(writeBytesBuffer, len, value);\n }\n return this;\n };\n Uint8ArrayWriter.prototype.string = function (value) {\n const len = globalThis.Buffer.byteLength(value);\n this.uint32(len);\n if (len > 0) {\n this._push(writeStringBuffer, len, value);\n }\n return this;\n };\n}\nfunction writeBytesBuffer(val, buf, pos) {\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n}\nfunction writeStringBuffer(val, buf, pos) {\n if (val.length < 40) {\n // plain js is faster for short strings (probably due to redundant assertions)\n utf8.write(val, buf, pos);\n // @ts-expect-error buf isn't a Uint8Array?\n }\n else if (buf.utf8Write != null) {\n // @ts-expect-error buf isn't a Uint8Array?\n buf.utf8Write(val, pos);\n }\n else {\n buf.set(uint8ArrayFromString(val), pos);\n }\n}\n/**\n * Creates a new writer\n */\nexport function createWriter() {\n return new Uint8ArrayWriter();\n}\n//# sourceMappingURL=writer.js.map","import { createWriter } from './utils/writer.js';\nexport function encodeMessage(message, codec) {\n const w = createWriter();\n codec.encode(message, w, {\n lengthDelimited: false\n });\n return w.finish();\n}\n//# sourceMappingURL=encode.js.map","// https://developers.google.com/protocol-buffers/docs/encoding#structure\nexport var CODEC_TYPES;\n(function (CODEC_TYPES) {\n CODEC_TYPES[CODEC_TYPES[\"VARINT\"] = 0] = \"VARINT\";\n CODEC_TYPES[CODEC_TYPES[\"BIT64\"] = 1] = \"BIT64\";\n CODEC_TYPES[CODEC_TYPES[\"LENGTH_DELIMITED\"] = 2] = \"LENGTH_DELIMITED\";\n CODEC_TYPES[CODEC_TYPES[\"START_GROUP\"] = 3] = \"START_GROUP\";\n CODEC_TYPES[CODEC_TYPES[\"END_GROUP\"] = 4] = \"END_GROUP\";\n CODEC_TYPES[CODEC_TYPES[\"BIT32\"] = 5] = \"BIT32\";\n})(CODEC_TYPES || (CODEC_TYPES = {}));\nexport function createCodec(name, type, encode, decode) {\n return {\n name,\n type,\n encode,\n decode\n };\n}\n//# sourceMappingURL=codec.js.map","import { createCodec, CODEC_TYPES } from '../codec.js';\nexport function enumeration(v) {\n function findValue(val) {\n // Use the reverse mapping to look up the enum key for the stored value\n // https://www.typescriptlang.org/docs/handbook/enums.html#reverse-mappings\n if (v[val.toString()] == null) {\n throw new Error('Invalid enum value');\n }\n return v[val];\n }\n const encode = function enumEncode(val, writer) {\n const enumValue = findValue(val);\n writer.int32(enumValue);\n };\n const decode = function enumDecode(reader) {\n const val = reader.int32();\n return findValue(val);\n };\n // @ts-expect-error yeah yeah\n return createCodec('enum', CODEC_TYPES.VARINT, encode, decode);\n}\n//# sourceMappingURL=enum.js.map","import { createCodec, CODEC_TYPES } from '../codec.js';\nexport function message(encode, decode) {\n return createCodec('message', CODEC_TYPES.LENGTH_DELIMITED, encode, decode);\n}\n//# sourceMappingURL=message.js.map","/* eslint-disable import/export */\n/* eslint-disable complexity */\n/* eslint-disable @typescript-eslint/no-namespace */\n/* eslint-disable @typescript-eslint/no-unnecessary-boolean-literal-compare */\n/* eslint-disable @typescript-eslint/no-empty-interface */\nimport { decodeMessage, encodeMessage, enumeration, message } from 'protons-runtime';\nexport var IPLDNodeData;\n(function (IPLDNodeData) {\n let _codec;\n IPLDNodeData.codec = () => {\n if (_codec == null) {\n _codec = message((obj, w, opts = {}) => {\n if (opts.lengthDelimited !== false) {\n w.fork();\n }\n if (obj.type != null && __MetadataTypeValues[obj.type] !== 0) {\n w.uint32(8);\n MetadataType.codec().encode(obj.type, w);\n }\n if ((obj.linkDepth != null && obj.linkDepth !== 0)) {\n w.uint32(16);\n w.int32(obj.linkDepth);\n }\n if (obj.size != null) {\n w.uint32(24);\n w.int32(obj.size);\n }\n if (obj.name != null) {\n w.uint32(34);\n w.string(obj.name);\n }\n if (obj.data != null) {\n w.uint32(42);\n w.bytes(obj.data);\n }\n if (obj.uploadOptions != null) {\n w.uint32(50);\n FileUploadOptions.codec().encode(obj.uploadOptions, w);\n }\n if (opts.lengthDelimited !== false) {\n w.ldelim();\n }\n }, (reader, length, opts = {}) => {\n var _a;\n const obj = {\n type: MetadataType.File,\n linkDepth: 0\n };\n const end = length == null ? reader.len : reader.pos + length;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n obj.type = MetadataType.codec().decode(reader);\n break;\n }\n case 2: {\n obj.linkDepth = reader.int32();\n break;\n }\n case 3: {\n obj.size = reader.int32();\n break;\n }\n case 4: {\n obj.name = reader.string();\n break;\n }\n case 5: {\n obj.data = reader.bytes();\n break;\n }\n case 6: {\n obj.uploadOptions = FileUploadOptions.codec().decode(reader, reader.uint32(), {\n limits: (_a = opts.limits) === null || _a === void 0 ? void 0 : _a.uploadOptions\n });\n break;\n }\n default: {\n reader.skipType(tag & 7);\n break;\n }\n }\n }\n return obj;\n });\n }\n return _codec;\n };\n IPLDNodeData.encode = (obj) => {\n return encodeMessage(obj, IPLDNodeData.codec());\n };\n IPLDNodeData.decode = (buf, opts) => {\n return decodeMessage(buf, IPLDNodeData.codec(), opts);\n };\n})(IPLDNodeData || (IPLDNodeData = {}));\nexport var MetadataType;\n(function (MetadataType) {\n MetadataType[\"File\"] = \"File\";\n MetadataType[\"FileInlink\"] = \"FileInlink\";\n MetadataType[\"FileChunk\"] = \"FileChunk\";\n MetadataType[\"Folder\"] = \"Folder\";\n MetadataType[\"FolderInlink\"] = \"FolderInlink\";\n MetadataType[\"Metadata\"] = \"Metadata\";\n MetadataType[\"MetadataInlink\"] = \"MetadataInlink\";\n MetadataType[\"MetadataChunk\"] = \"MetadataChunk\";\n})(MetadataType || (MetadataType = {}));\nvar __MetadataTypeValues;\n(function (__MetadataTypeValues) {\n __MetadataTypeValues[__MetadataTypeValues[\"File\"] = 0] = \"File\";\n __MetadataTypeValues[__MetadataTypeValues[\"FileInlink\"] = 1] = \"FileInlink\";\n __MetadataTypeValues[__MetadataTypeValues[\"FileChunk\"] = 2] = \"FileChunk\";\n __MetadataTypeValues[__MetadataTypeValues[\"Folder\"] = 3] = \"Folder\";\n __MetadataTypeValues[__MetadataTypeValues[\"FolderInlink\"] = 4] = \"FolderInlink\";\n __MetadataTypeValues[__MetadataTypeValues[\"Metadata\"] = 5] = \"Metadata\";\n __MetadataTypeValues[__MetadataTypeValues[\"MetadataInlink\"] = 6] = \"MetadataInlink\";\n __MetadataTypeValues[__MetadataTypeValues[\"MetadataChunk\"] = 7] = \"MetadataChunk\";\n})(__MetadataTypeValues || (__MetadataTypeValues = {}));\n(function (MetadataType) {\n MetadataType.codec = () => {\n return enumeration(__MetadataTypeValues);\n };\n})(MetadataType || (MetadataType = {}));\nexport var FileUploadOptions;\n(function (FileUploadOptions) {\n let _codec;\n FileUploadOptions.codec = () => {\n if (_codec == null) {\n _codec = message((obj, w, opts = {}) => {\n if (opts.lengthDelimited !== false) {\n w.fork();\n }\n if (obj.compression != null) {\n w.uint32(10);\n CompressionOptions.codec().encode(obj.compression, w);\n }\n if (obj.encryption != null) {\n w.uint32(18);\n EncryptionOptions.codec().encode(obj.encryption, w);\n }\n if (opts.lengthDelimited !== false) {\n w.ldelim();\n }\n }, (reader, length, opts = {}) => {\n var _a, _b;\n const obj = {};\n const end = length == null ? reader.len : reader.pos + length;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n obj.compression = CompressionOptions.codec().decode(reader, reader.uint32(), {\n limits: (_a = opts.limits) === null || _a === void 0 ? void 0 : _a.compression\n });\n break;\n }\n case 2: {\n obj.encryption = EncryptionOptions.codec().decode(reader, reader.uint32(), {\n limits: (_b = opts.limits) === null || _b === void 0 ? void 0 : _b.encryption\n });\n break;\n }\n default: {\n reader.skipType(tag & 7);\n break;\n }\n }\n }\n return obj;\n });\n }\n return _codec;\n };\n FileUploadOptions.encode = (obj) => {\n return encodeMessage(obj, FileUploadOptions.codec());\n };\n FileUploadOptions.decode = (buf, opts) => {\n return decodeMessage(buf, FileUploadOptions.codec(), opts);\n };\n})(FileUploadOptions || (FileUploadOptions = {}));\nexport var CompressionOptions;\n(function (CompressionOptions) {\n let _codec;\n CompressionOptions.codec = () => {\n if (_codec == null) {\n _codec = message((obj, w, opts = {}) => {\n if (opts.lengthDelimited !== false) {\n w.fork();\n }\n if (obj.algorithm != null && __CompressionAlgorithmValues[obj.algorithm] !== 0) {\n w.uint32(8);\n CompressionAlgorithm.codec().encode(obj.algorithm, w);\n }\n if (obj.level != null) {\n w.uint32(16);\n w.int32(obj.level);\n }\n if (obj.chunkSize != null) {\n w.uint32(24);\n w.int32(obj.chunkSize);\n }\n if (opts.lengthDelimited !== false) {\n w.ldelim();\n }\n }, (reader, length, opts = {}) => {\n const obj = {\n algorithm: CompressionAlgorithm.ZLIB\n };\n const end = length == null ? reader.len : reader.pos + length;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n obj.algorithm = CompressionAlgorithm.codec().decode(reader);\n break;\n }\n case 2: {\n obj.level = reader.int32();\n break;\n }\n case 3: {\n obj.chunkSize = reader.int32();\n break;\n }\n default: {\n reader.skipType(tag & 7);\n break;\n }\n }\n }\n return obj;\n });\n }\n return _codec;\n };\n CompressionOptions.encode = (obj) => {\n return encodeMessage(obj, CompressionOptions.codec());\n };\n CompressionOptions.decode = (buf, opts) => {\n return decodeMessage(buf, CompressionOptions.codec(), opts);\n };\n})(CompressionOptions || (CompressionOptions = {}));\nexport var EncryptionOptions;\n(function (EncryptionOptions) {\n let _codec;\n EncryptionOptions.codec = () => {\n if (_codec == null) {\n _codec = message((obj, w, opts = {}) => {\n if (opts.lengthDelimited !== false) {\n w.fork();\n }\n if (obj.algorithm != null && __EncryptionAlgorithmValues[obj.algorithm] !== 0) {\n w.uint32(8);\n EncryptionAlgorithm.codec().encode(obj.algorithm, w);\n }\n if (obj.chunkSize != null) {\n w.uint32(16);\n w.int32(obj.chunkSize);\n }\n if (opts.lengthDelimited !== false) {\n w.ldelim();\n }\n }, (reader, length, opts = {}) => {\n const obj = {\n algorithm: EncryptionAlgorithm.AES_256_GCM\n };\n const end = length == null ? reader.len : reader.pos + length;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n obj.algorithm = EncryptionAlgorithm.codec().decode(reader);\n break;\n }\n case 2: {\n obj.chunkSize = reader.int32();\n break;\n }\n default: {\n reader.skipType(tag & 7);\n break;\n }\n }\n }\n return obj;\n });\n }\n return _codec;\n };\n EncryptionOptions.encode = (obj) => {\n return encodeMessage(obj, EncryptionOptions.codec());\n };\n EncryptionOptions.decode = (buf, opts) => {\n return decodeMessage(buf, EncryptionOptions.codec(), opts);\n };\n})(EncryptionOptions || (EncryptionOptions = {}));\nexport var CompressionAlgorithm;\n(function (CompressionAlgorithm) {\n CompressionAlgorithm[\"ZLIB\"] = \"ZLIB\";\n})(CompressionAlgorithm || (CompressionAlgorithm = {}));\nvar __CompressionAlgorithmValues;\n(function (__CompressionAlgorithmValues) {\n __CompressionAlgorithmValues[__CompressionAlgorithmValues[\"ZLIB\"] = 0] = \"ZLIB\";\n})(__CompressionAlgorithmValues || (__CompressionAlgorithmValues = {}));\n(function (CompressionAlgorithm) {\n CompressionAlgorithm.codec = () => {\n return enumeration(__CompressionAlgorithmValues);\n };\n})(CompressionAlgorithm || (CompressionAlgorithm = {}));\nexport var EncryptionAlgorithm;\n(function (EncryptionAlgorithm) {\n EncryptionAlgorithm[\"AES_256_GCM\"] = \"AES_256_GCM\";\n})(EncryptionAlgorithm || (EncryptionAlgorithm = {}));\nvar __EncryptionAlgorithmValues;\n(function (__EncryptionAlgorithmValues) {\n __EncryptionAlgorithmValues[__EncryptionAlgorithmValues[\"AES_256_GCM\"] = 0] = \"AES_256_GCM\";\n})(__EncryptionAlgorithmValues || (__EncryptionAlgorithmValues = {}));\n(function (EncryptionAlgorithm) {\n EncryptionAlgorithm.codec = () => {\n return enumeration(__EncryptionAlgorithmValues);\n };\n})(EncryptionAlgorithm || (EncryptionAlgorithm = {}));\n","var __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 __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\nvar __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n};\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nimport { cidOfNode } from '../cid/index.js';\nimport { decodeIPLDNodeData } from '../metadata/index.js';\nimport { fileBuilders, metadataBuilders } from './builders.js';\nimport { createFolderInlinkIpldNode, createFolderIpldNode } from './nodes.js';\nimport { chunkBuffer, encodeNode } from './utils.js';\nexport const DEFAULT_MAX_CHUNK_SIZE = 64 * 1024;\nconst ESTIMATED_LINK_SIZE_IN_BYTES = 64;\nexport const DEFAULT_MAX_LINK_PER_NODE = DEFAULT_MAX_CHUNK_SIZE / ESTIMATED_LINK_SIZE_IN_BYTES;\nexport const processFileToIPLDFormat = (blockstore, file, totalSize, filename, { maxChunkSize = DEFAULT_MAX_CHUNK_SIZE, maxLinkPerNode = DEFAULT_MAX_LINK_PER_NODE, encryption = undefined, compression = undefined, } = {\n maxChunkSize: DEFAULT_MAX_CHUNK_SIZE,\n maxLinkPerNode: DEFAULT_MAX_LINK_PER_NODE,\n encryption: undefined,\n compression: undefined,\n}) => {\n return processBufferToIPLDFormat(blockstore, file, filename, totalSize, fileBuilders, {\n maxChunkSize,\n maxLinkPerNode,\n encryption,\n compression,\n });\n};\nexport const processMetadataToIPLDFormat = (blockstore_1, metadata_1, ...args_1) => __awaiter(void 0, [blockstore_1, metadata_1, ...args_1], void 0, function* (blockstore, metadata, limits = {\n maxChunkSize: DEFAULT_MAX_CHUNK_SIZE,\n maxLinkPerNode: DEFAULT_MAX_LINK_PER_NODE,\n}) {\n const buffer = Buffer.from(JSON.stringify(metadata));\n const name = `${metadata.name}.metadata.json`;\n return processBufferToIPLDFormat(blockstore, (function () {\n return __asyncGenerator(this, arguments, function* () {\n yield yield __await(buffer);\n });\n })(), name, buffer.byteLength, metadataBuilders, limits);\n});\nconst processBufferToIPLDFormat = (blockstore_1, buffer_1, filename_1, totalSize_1, builders_1, ...args_1) => __awaiter(void 0, [blockstore_1, buffer_1, filename_1, totalSize_1, builders_1, ...args_1], void 0, function* (blockstore, buffer, filename, totalSize, builders, { maxChunkSize = DEFAULT_MAX_CHUNK_SIZE, maxLinkPerNode = DEFAULT_MAX_LINK_PER_NODE, encryption = undefined, compression = undefined, } = {\n maxChunkSize: DEFAULT_MAX_CHUNK_SIZE,\n maxLinkPerNode: DEFAULT_MAX_LINK_PER_NODE,\n encryption: undefined,\n compression: undefined,\n}) {\n var _a, e_1, _b, _c;\n const bufferChunks = chunkBuffer(buffer, { maxChunkSize: maxChunkSize });\n let CIDs = [];\n try {\n for (var _d = true, bufferChunks_1 = __asyncValues(bufferChunks), bufferChunks_1_1; bufferChunks_1_1 = yield bufferChunks_1.next(), _a = bufferChunks_1_1.done, !_a; _d = true) {\n _c = bufferChunks_1_1.value;\n _d = false;\n const chunk = _c;\n const node = builders.chunk(chunk);\n const cid = cidOfNode(node);\n yield blockstore.put(cid, encodeNode(node));\n CIDs.push(cid);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = bufferChunks_1.return)) yield _b.call(bufferChunks_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return processBufferToIPLDFormatFromChunks(blockstore, CIDs, filename, totalSize, builders, {\n maxLinkPerNode,\n maxChunkSize,\n encryption,\n compression,\n });\n});\nexport const processBufferToIPLDFormatFromChunks = (blockstore_1, chunks_1, filename_1, totalSize_1, builders_1, ...args_1) => __awaiter(void 0, [blockstore_1, chunks_1, filename_1, totalSize_1, builders_1, ...args_1], void 0, function* (blockstore, chunks, filename, totalSize, builders, { maxChunkSize = DEFAULT_MAX_CHUNK_SIZE, maxLinkPerNode = DEFAULT_MAX_LINK_PER_NODE, encryption = undefined, compression = undefined, } = {\n maxChunkSize: DEFAULT_MAX_CHUNK_SIZE,\n maxLinkPerNode: DEFAULT_MAX_LINK_PER_NODE,\n encryption: undefined,\n compression: undefined,\n}) {\n var _a, chunks_2, chunks_2_1;\n var _b, e_2, _c, _d;\n let chunkCount = 0;\n let CIDs = [];\n try {\n for (_a = true, chunks_2 = __asyncValues(chunks); chunks_2_1 = yield chunks_2.next(), _b = chunks_2_1.done, !_b; _a = true) {\n _d = chunks_2_1.value;\n _a = false;\n const chunk = _d;\n CIDs.push(chunk);\n chunkCount++;\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (!_a && !_b && (_c = chunks_2.return)) yield _c.call(chunks_2);\n }\n finally { if (e_2) throw e_2.error; }\n }\n if (CIDs.length === 1) {\n const nodeBytes = yield blockstore.get(CIDs[0]);\n yield blockstore.delete(CIDs[0]);\n const data = decodeIPLDNodeData(nodeBytes);\n const singleNode = builders.single(Buffer.from(data.data), filename, {\n compression,\n encryption,\n });\n yield blockstore.put(cidOfNode(singleNode), encodeNode(singleNode));\n const headCID = cidOfNode(singleNode);\n return headCID;\n }\n let depth = 1;\n while (CIDs.length > maxLinkPerNode) {\n const newCIDs = [];\n for (let i = 0; i < CIDs.length; i += maxLinkPerNode) {\n const chunk = CIDs.slice(i, i + maxLinkPerNode);\n const node = builders.inlink(chunk, chunk.length, depth, maxChunkSize);\n const cid = cidOfNode(node);\n yield blockstore.put(cid, encodeNode(node));\n newCIDs.push(cid);\n }\n depth++;\n CIDs = newCIDs;\n }\n const head = builders.root(CIDs, totalSize, depth, filename, maxChunkSize, {\n compression,\n encryption,\n });\n const headCID = cidOfNode(head);\n yield blockstore.put(headCID, encodeNode(head));\n return headCID;\n});\nexport const processFolderToIPLDFormat = (blockstore_1, children_1, name_1, size_1, ...args_1) => __awaiter(void 0, [blockstore_1, children_1, name_1, size_1, ...args_1], void 0, function* (blockstore, children, name, size, { maxLinkPerNode = DEFAULT_MAX_LINK_PER_NODE, maxChunkSize = DEFAULT_MAX_CHUNK_SIZE, compression = undefined, encryption = undefined, } = {\n maxLinkPerNode: DEFAULT_MAX_LINK_PER_NODE,\n maxChunkSize: DEFAULT_MAX_CHUNK_SIZE,\n compression: undefined,\n encryption: undefined,\n}) {\n let cids = children;\n let depth = 0;\n while (cids.length > maxLinkPerNode) {\n const newCIDs = [];\n for (let i = 0; i < cids.length; i += maxLinkPerNode) {\n const chunk = cids.slice(i, i + maxLinkPerNode);\n const node = createFolderInlinkIpldNode(chunk, depth);\n const cid = cidOfNode(node);\n yield blockstore.put(cid, encodeNode(node));\n newCIDs.push(cid);\n }\n cids = newCIDs;\n depth++;\n }\n const node = createFolderIpldNode(cids, name, depth, size, maxChunkSize, {\n compression,\n encryption,\n });\n const cid = cidOfNode(node);\n yield blockstore.put(cid, encodeNode(node));\n return cid;\n});\n/**\n * Process chunks to IPLD format, return the last chunk if it's not full\n * @returns the last chunk if it's not full, otherwise an empty buffer\n */\nexport const processChunksToIPLDFormat = (blockstore_1, chunks_1, builders_1, _a) => __awaiter(void 0, [blockstore_1, chunks_1, builders_1, _a], void 0, function* (blockstore, chunks, builders, { maxChunkSize = DEFAULT_MAX_CHUNK_SIZE }) {\n var _b, e_3, _c, _d;\n const bufferChunks = chunkBuffer(chunks, { maxChunkSize, ignoreLastChunk: false });\n try {\n for (var _e = true, bufferChunks_2 = __asyncValues(bufferChunks), bufferChunks_2_1; bufferChunks_2_1 = yield bufferChunks_2.next(), _b = bufferChunks_2_1.done, !_b; _e = true) {\n _d = bufferChunks_2_1.value;\n _e = false;\n const chunk = _d;\n if (chunk.byteLength < maxChunkSize) {\n return chunk;\n }\n const node = builders.chunk(chunk);\n const cid = cidOfNode(node);\n yield blockstore.put(cid, encodeNode(node));\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (!_e && !_b && (_c = bufferChunks_2.return)) yield _c.call(bufferChunks_2);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return Buffer.alloc(0);\n});\nexport const ensureNodeMaxSize = (node, maxSize = DEFAULT_MAX_CHUNK_SIZE) => {\n const nodeSize = encodeNode(node).byteLength;\n if (nodeSize > maxSize) {\n throw new Error(`Node is too large to fit in a single chunk: ${nodeSize} > ${maxSize}`);\n }\n return node;\n};\n","var __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nvar __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\nvar __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n};\nexport const asyncByChunk = function (iterable_1, chunkSize_1) {\n return __asyncGenerator(this, arguments, function* (iterable, chunkSize, ignoreLastChunk = false) {\n var _a, e_1, _b, _c;\n let accumulated = Buffer.alloc(0);\n try {\n for (var _d = true, iterable_2 = __asyncValues(iterable), iterable_2_1; iterable_2_1 = yield __await(iterable_2.next()), _a = iterable_2_1.done, !_a; _d = true) {\n _c = iterable_2_1.value;\n _d = false;\n const chunk = _c;\n accumulated = Buffer.concat([accumulated, chunk]);\n while (accumulated.length >= chunkSize) {\n yield yield __await(accumulated.subarray(0, chunkSize));\n accumulated = accumulated.subarray(chunkSize);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_2.return)) yield __await(_b.call(iterable_2));\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (accumulated.length > 0 && !ignoreLastChunk) {\n yield yield __await(accumulated);\n }\n });\n};\n","var __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nvar __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\nvar __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n};\nimport { Unzlib, Zlib } from 'fflate';\nimport { CompressionAlgorithm } from '../metadata/index.js';\nimport { asyncByChunk } from '../utils/async.js';\nexport const COMPRESSION_CHUNK_SIZE = 1024 * 1024;\nexport function compressFile(file_1, _a) {\n return __asyncGenerator(this, arguments, function* compressFile_1(file, { level = 9, chunkSize = COMPRESSION_CHUNK_SIZE, algorithm, }) {\n var _b, e_1, _c, _d;\n if (algorithm !== CompressionAlgorithm.ZLIB) {\n throw new Error('Unsupported compression algorithm');\n }\n if (level < 0 || level > 9) {\n throw new Error('Invalid compression level');\n }\n if (chunkSize <= 0) {\n throw new Error('Invalid chunk size');\n }\n const zlib = new Zlib({ level });\n const compressedChunks = [];\n zlib.ondata = (chunk) => {\n compressedChunks.push(Buffer.from(chunk));\n };\n try {\n for (var _e = true, _f = __asyncValues(asyncByChunk(file, chunkSize)), _g; _g = yield __await(_f.next()), _b = _g.done, !_b; _e = true) {\n _d = _g.value;\n _e = false;\n const chunk = _d;\n zlib.push(chunk, false);\n while (compressedChunks.length > 0) {\n yield yield __await(compressedChunks.shift());\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (!_e && !_b && (_c = _f.return)) yield __await(_c.call(_f));\n }\n finally { if (e_1) throw e_1.error; }\n }\n zlib.push(new Uint8Array(), true);\n while (compressedChunks.length > 0) {\n yield yield __await(compressedChunks.shift());\n }\n });\n}\nexport function decompressFile(compressedFile_1, _a) {\n return __asyncGenerator(this, arguments, function* decompressFile_1(compressedFile, { chunkSize = COMPRESSION_CHUNK_SIZE, algorithm = CompressionAlgorithm.ZLIB, level = 9, }) {\n var _b, e_2, _c, _d;\n if (algorithm !== CompressionAlgorithm.ZLIB) {\n throw new Error('Unsupported compression algorithm');\n }\n if (chunkSize <= 0) {\n throw new Error('Invalid chunk size');\n }\n if (level < 0 || level > 9) {\n throw new Error('Invalid compression level');\n }\n const unzlib = new Unzlib();\n const decompressedChunks = [];\n unzlib.ondata = (chunk) => {\n decompressedChunks.push(Buffer.from(chunk));\n };\n try {\n for (var _e = true, _f = __asyncValues(asyncByChunk(compressedFile, chunkSize)), _g; _g = yield __await(_f.next()), _b = _g.done, !_b; _e = true) {\n _d = _g.value;\n _e = false;\n const chunk = _d;\n unzlib.push(chunk, false);\n while (decompressedChunks.length > 0) {\n yield yield __await(decompressedChunks.shift());\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (!_e && !_b && (_c = _f.return)) yield __await(_c.call(_f));\n }\n finally { if (e_2) throw e_2.error; }\n }\n unzlib.push(new Uint8Array(), true);\n while (decompressedChunks.length > 0) {\n yield yield __await(decompressedChunks.shift());\n }\n });\n}\n","/*!\n * MIT License\n * \n * Copyright (c) 2017-2022 Peculiar Ventures, LLC\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 deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * 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 all\n * 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 FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n * \n */\n\nconst ARRAY_BUFFER_NAME = \"[object ArrayBuffer]\";\nclass BufferSourceConverter {\n static isArrayBuffer(data) {\n return Object.prototype.toString.call(data) === ARRAY_BUFFER_NAME;\n }\n static toArrayBuffer(data) {\n if (this.isArrayBuffer(data)) {\n return data;\n }\n if (data.byteLength === data.buffer.byteLength) {\n return data.buffer;\n }\n if (data.byteOffset === 0 && data.byteLength === data.buffer.byteLength) {\n return data.buffer;\n }\n return this.toUint8Array(data.buffer)\n .slice(data.byteOffset, data.byteOffset + data.byteLength)\n .buffer;\n }\n static toUint8Array(data) {\n return this.toView(data, Uint8Array);\n }\n static toView(data, type) {\n if (data.constructor === type) {\n return data;\n }\n if (this.isArrayBuffer(data)) {\n return new type(data);\n }\n if (this.isArrayBufferView(data)) {\n return new type(data.buffer, data.byteOffset, data.byteLength);\n }\n throw new TypeError(\"The provided value is not of type '(ArrayBuffer or ArrayBufferView)'\");\n }\n static isBufferSource(data) {\n return this.isArrayBufferView(data)\n || this.isArrayBuffer(data);\n }\n static isArrayBufferView(data) {\n return ArrayBuffer.isView(data)\n || (data && this.isArrayBuffer(data.buffer));\n }\n static isEqual(a, b) {\n const aView = BufferSourceConverter.toUint8Array(a);\n const bView = BufferSourceConverter.toUint8Array(b);\n if (aView.length !== bView.byteLength) {\n return false;\n }\n for (let i = 0; i < aView.length; i++) {\n if (aView[i] !== bView[i]) {\n return false;\n }\n }\n return true;\n }\n static concat(...args) {\n let buffers;\n if (Array.isArray(args[0]) && !(args[1] instanceof Function)) {\n buffers = args[0];\n }\n else if (Array.isArray(args[0]) && args[1] instanceof Function) {\n buffers = args[0];\n }\n else {\n if (args[args.length - 1] instanceof Function) {\n buffers = args.slice(0, args.length - 1);\n }\n else {\n buffers = args;\n }\n }\n let size = 0;\n for (const buffer of buffers) {\n size += buffer.byteLength;\n }\n const res = new Uint8Array(size);\n let offset = 0;\n for (const buffer of buffers) {\n const view = this.toUint8Array(buffer);\n res.set(view, offset);\n offset += view.length;\n }\n if (args[args.length - 1] instanceof Function) {\n return this.toView(res, args[args.length - 1]);\n }\n return res.buffer;\n }\n}\n\nconst STRING_TYPE = \"string\";\nconst HEX_REGEX = /^[0-9a-f]+$/i;\nconst BASE64_REGEX = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/;\nconst BASE64URL_REGEX = /^[a-zA-Z0-9-_]+$/;\nclass Utf8Converter {\n static fromString(text) {\n const s = unescape(encodeURIComponent(text));\n const uintArray = new Uint8Array(s.length);\n for (let i = 0; i < s.length; i++) {\n uintArray[i] = s.charCodeAt(i);\n }\n return uintArray.buffer;\n }\n static toString(buffer) {\n const buf = BufferSourceConverter.toUint8Array(buffer);\n let encodedString = \"\";\n for (let i = 0; i < buf.length; i++) {\n encodedString += String.fromCharCode(buf[i]);\n }\n const decodedString = decodeURIComponent(escape(encodedString));\n return decodedString;\n }\n}\nclass Utf16Converter {\n static toString(buffer, littleEndian = false) {\n const arrayBuffer = BufferSourceConverter.toArrayBuffer(buffer);\n const dataView = new DataView(arrayBuffer);\n let res = \"\";\n for (let i = 0; i < arrayBuffer.byteLength; i += 2) {\n const code = dataView.getUint16(i, littleEndian);\n res += String.fromCharCode(code);\n }\n return res;\n }\n static fromString(text, littleEndian = false) {\n const res = new ArrayBuffer(text.length * 2);\n const dataView = new DataView(res);\n for (let i = 0; i < text.length; i++) {\n dataView.setUint16(i * 2, text.charCodeAt(i), littleEndian);\n }\n return res;\n }\n}\nclass Convert {\n static isHex(data) {\n return typeof data === STRING_TYPE\n && HEX_REGEX.test(data);\n }\n static isBase64(data) {\n return typeof data === STRING_TYPE\n && BASE64_REGEX.test(data);\n }\n static isBase64Url(data) {\n return typeof data === STRING_TYPE\n && BASE64URL_REGEX.test(data);\n }\n static ToString(buffer, enc = \"utf8\") {\n const buf = BufferSourceConverter.toUint8Array(buffer);\n switch (enc.toLowerCase()) {\n case \"utf8\":\n return this.ToUtf8String(buf);\n case \"binary\":\n return this.ToBinary(buf);\n case \"hex\":\n return this.ToHex(buf);\n case \"base64\":\n return this.ToBase64(buf);\n case \"base64url\":\n return this.ToBase64Url(buf);\n case \"utf16le\":\n return Utf16Converter.toString(buf, true);\n case \"utf16\":\n case \"utf16be\":\n return Utf16Converter.toString(buf);\n default:\n throw new Error(`Unknown type of encoding '${enc}'`);\n }\n }\n static FromString(str, enc = \"utf8\") {\n if (!str) {\n return new ArrayBuffer(0);\n }\n switch (enc.toLowerCase()) {\n case \"utf8\":\n return this.FromUtf8String(str);\n case \"binary\":\n return this.FromBinary(str);\n case \"hex\":\n return this.FromHex(str);\n case \"base64\":\n return this.FromBase64(str);\n case \"base64url\":\n return this.FromBase64Url(str);\n case \"utf16le\":\n return Utf16Converter.fromString(str, true);\n case \"utf16\":\n case \"utf16be\":\n return Utf16Converter.fromString(str);\n default:\n throw new Error(`Unknown type of encoding '${enc}'`);\n }\n }\n static ToBase64(buffer) {\n const buf = BufferSourceConverter.toUint8Array(buffer);\n if (typeof btoa !== \"undefined\") {\n const binary = this.ToString(buf, \"binary\");\n return btoa(binary);\n }\n else {\n return Buffer.from(buf).toString(\"base64\");\n }\n }\n static FromBase64(base64) {\n const formatted = this.formatString(base64);\n if (!formatted) {\n return new ArrayBuffer(0);\n }\n if (!Convert.isBase64(formatted)) {\n throw new TypeError(\"Argument 'base64Text' is not Base64 encoded\");\n }\n if (typeof atob !== \"undefined\") {\n return this.FromBinary(atob(formatted));\n }\n else {\n return new Uint8Array(Buffer.from(formatted, \"base64\")).buffer;\n }\n }\n static FromBase64Url(base64url) {\n const formatted = this.formatString(base64url);\n if (!formatted) {\n return new ArrayBuffer(0);\n }\n if (!Convert.isBase64Url(formatted)) {\n throw new TypeError(\"Argument 'base64url' is not Base64Url encoded\");\n }\n return this.FromBase64(this.Base64Padding(formatted.replace(/\\-/g, \"+\").replace(/\\_/g, \"/\")));\n }\n static ToBase64Url(data) {\n return this.ToBase64(data).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/\\=/g, \"\");\n }\n static FromUtf8String(text, encoding = Convert.DEFAULT_UTF8_ENCODING) {\n switch (encoding) {\n case \"ascii\":\n return this.FromBinary(text);\n case \"utf8\":\n return Utf8Converter.fromString(text);\n case \"utf16\":\n case \"utf16be\":\n return Utf16Converter.fromString(text);\n case \"utf16le\":\n case \"usc2\":\n return Utf16Converter.fromString(text, true);\n default:\n throw new Error(`Unknown type of encoding '${encoding}'`);\n }\n }\n static ToUtf8String(buffer, encoding = Convert.DEFAULT_UTF8_ENCODING) {\n switch (encoding) {\n case \"ascii\":\n return this.ToBinary(buffer);\n case \"utf8\":\n return Utf8Converter.toString(buffer);\n case \"utf16\":\n case \"utf16be\":\n return Utf16Converter.toString(buffer);\n case \"utf16le\":\n case \"usc2\":\n return Utf16Converter.toString(buffer, true);\n default:\n throw new Error(`Unknown type of encoding '${encoding}'`);\n }\n }\n static FromBinary(text) {\n const stringLength = text.length;\n const resultView = new Uint8Array(stringLength);\n for (let i = 0; i < stringLength; i++) {\n resultView[i] = text.charCodeAt(i);\n }\n return resultView.buffer;\n }\n static ToBinary(buffer) {\n const buf = BufferSourceConverter.toUint8Array(buffer);\n let res = \"\";\n for (let i = 0; i < buf.length; i++) {\n res += String.fromCharCode(buf[i]);\n }\n return res;\n }\n static ToHex(buffer) {\n const buf = BufferSourceConverter.toUint8Array(buffer);\n let result = \"\";\n const len = buf.length;\n for (let i = 0; i < len; i++) {\n const byte = buf[i];\n if (byte < 16) {\n result += \"0\";\n }\n result += byte.toString(16);\n }\n return result;\n }\n static FromHex(hexString) {\n let formatted = this.formatString(hexString);\n if (!formatted) {\n return new ArrayBuffer(0);\n }\n if (!Convert.isHex(formatted)) {\n throw new TypeError(\"Argument 'hexString' is not HEX encoded\");\n }\n if (formatted.length % 2) {\n formatted = `0${formatted}`;\n }\n const res = new Uint8Array(formatted.length / 2);\n for (let i = 0; i < formatted.length; i = i + 2) {\n const c = formatted.slice(i, i + 2);\n res[i / 2] = parseInt(c, 16);\n }\n return res.buffer;\n }\n static ToUtf16String(buffer, littleEndian = false) {\n return Utf16Converter.toString(buffer, littleEndian);\n }\n static FromUtf16String(text, littleEndian = false) {\n return Utf16Converter.fromString(text, littleEndian);\n }\n static Base64Padding(base64) {\n const padCount = 4 - (base64.length % 4);\n if (padCount < 4) {\n for (let i = 0; i < padCount; i++) {\n base64 += \"=\";\n }\n }\n return base64;\n }\n static formatString(data) {\n return (data === null || data === void 0 ? void 0 : data.replace(/[\\n\\r\\t ]/g, \"\")) || \"\";\n }\n}\nConvert.DEFAULT_UTF8_ENCODING = \"utf8\";\n\nfunction assign(target, ...sources) {\n const res = arguments[0];\n for (let i = 1; i < arguments.length; i++) {\n const obj = arguments[i];\n for (const prop in obj) {\n res[prop] = obj[prop];\n }\n }\n return res;\n}\nfunction combine(...buf) {\n const totalByteLength = buf.map((item) => item.byteLength).reduce((prev, cur) => prev + cur);\n const res = new Uint8Array(totalByteLength);\n let currentPos = 0;\n buf.map((item) => new Uint8Array(item)).forEach((arr) => {\n for (const item2 of arr) {\n res[currentPos++] = item2;\n }\n });\n return res.buffer;\n}\nfunction isEqual(bytes1, bytes2) {\n if (!(bytes1 && bytes2)) {\n return false;\n }\n if (bytes1.byteLength !== bytes2.byteLength) {\n return false;\n }\n const b1 = new Uint8Array(bytes1);\n const b2 = new Uint8Array(bytes2);\n for (let i = 0; i < bytes1.byteLength; i++) {\n if (b1[i] !== b2[i]) {\n return false;\n }\n }\n return true;\n}\n\nexport { BufferSourceConverter, Convert, assign, combine, isEqual };\n","/*!\n Copyright (c) Peculiar Ventures, LLC\n*/\n\nfunction getUTCDate(date) {\r\n return new Date(date.getTime() + (date.getTimezoneOffset() * 60000));\r\n}\r\nfunction getParametersValue(parameters, name, defaultValue) {\r\n var _a;\r\n if ((parameters instanceof Object) === false) {\r\n return defaultValue;\r\n }\r\n return (_a = parameters[name]) !== null && _a !== void 0 ? _a : defaultValue;\r\n}\r\nfunction bufferToHexCodes(inputBuffer, inputOffset = 0, inputLength = (inputBuffer.byteLength - inputOffset), insertSpace = false) {\r\n let result = \"\";\r\n for (const item of (new Uint8Array(inputBuffer, inputOffset, inputLength))) {\r\n const str = item.toString(16).toUpperCase();\r\n if (str.length === 1) {\r\n result += \"0\";\r\n }\r\n result += str;\r\n if (insertSpace) {\r\n result += \" \";\r\n }\r\n }\r\n return result.trim();\r\n}\r\nfunction checkBufferParams(baseBlock, inputBuffer, inputOffset, inputLength) {\r\n if (!(inputBuffer instanceof ArrayBuffer)) {\r\n baseBlock.error = \"Wrong parameter: inputBuffer must be \\\"ArrayBuffer\\\"\";\r\n return false;\r\n }\r\n if (!inputBuffer.byteLength) {\r\n baseBlock.error = \"Wrong parameter: inputBuffer has zero length\";\r\n return false;\r\n }\r\n if (inputOffset < 0) {\r\n baseBlock.error = \"Wrong parameter: inputOffset less than zero\";\r\n return false;\r\n }\r\n if (inputLength < 0) {\r\n baseBlock.error = \"Wrong parameter: inputLength less than zero\";\r\n return false;\r\n }\r\n if ((inputBuffer.byteLength - inputOffset - inputLength) < 0) {\r\n baseBlock.error = \"End of input reached before message was fully decoded (inconsistent offset and length values)\";\r\n return false;\r\n }\r\n return true;\r\n}\r\nfunction utilFromBase(inputBuffer, inputBase) {\r\n let result = 0;\r\n if (inputBuffer.length === 1) {\r\n return inputBuffer[0];\r\n }\r\n for (let i = (inputBuffer.length - 1); i >= 0; i--) {\r\n result += inputBuffer[(inputBuffer.length - 1) - i] * Math.pow(2, inputBase * i);\r\n }\r\n return result;\r\n}\r\nfunction utilToBase(value, base, reserved = (-1)) {\r\n const internalReserved = reserved;\r\n let internalValue = value;\r\n let result = 0;\r\n let biggest = Math.pow(2, base);\r\n for (let i = 1; i < 8; i++) {\r\n if (value < biggest) {\r\n let retBuf;\r\n if (internalReserved < 0) {\r\n retBuf = new ArrayBuffer(i);\r\n result = i;\r\n }\r\n else {\r\n if (internalReserved < i) {\r\n return (new ArrayBuffer(0));\r\n }\r\n retBuf = new ArrayBuffer(internalReserved);\r\n result = internalReserved;\r\n }\r\n const retView = new Uint8Array(retBuf);\r\n for (let j = (i - 1); j >= 0; j--) {\r\n const basis = Math.pow(2, j * base);\r\n retView[result - j - 1] = Math.floor(internalValue / basis);\r\n internalValue -= (retView[result - j - 1]) * basis;\r\n }\r\n return retBuf;\r\n }\r\n biggest *= Math.pow(2, base);\r\n }\r\n return new ArrayBuffer(0);\r\n}\r\nfunction utilConcatBuf(...buffers) {\r\n let outputLength = 0;\r\n let prevLength = 0;\r\n for (const buffer of buffers) {\r\n outputLength += buffer.byteLength;\r\n }\r\n const retBuf = new ArrayBuffer(outputLength);\r\n const retView = new Uint8Array(retBuf);\r\n for (const buffer of buffers) {\r\n retView.set(new Uint8Array(buffer), prevLength);\r\n prevLength += buffer.byteLength;\r\n }\r\n return retBuf;\r\n}\r\nfunction utilConcatView(...views) {\r\n let outputLength = 0;\r\n let prevLength = 0;\r\n for (const view of views) {\r\n outputLength += view.length;\r\n }\r\n const retBuf = new ArrayBuffer(outputLength);\r\n const retView = new Uint8Array(retBuf);\r\n for (const view of views) {\r\n retView.set(view, prevLength);\r\n prevLength += view.length;\r\n }\r\n return retView;\r\n}\r\nfunction utilDecodeTC() {\r\n const buf = new Uint8Array(this.valueHex);\r\n if (this.valueHex.byteLength >= 2) {\r\n const condition1 = (buf[0] === 0xFF) && (buf[1] & 0x80);\r\n const condition2 = (buf[0] === 0x00) && ((buf[1] & 0x80) === 0x00);\r\n if (condition1 || condition2) {\r\n this.warnings.push(\"Needlessly long format\");\r\n }\r\n }\r\n const bigIntBuffer = new ArrayBuffer(this.valueHex.byteLength);\r\n const bigIntView = new Uint8Array(bigIntBuffer);\r\n for (let i = 0; i < this.valueHex.byteLength; i++) {\r\n bigIntView[i] = 0;\r\n }\r\n bigIntView[0] = (buf[0] & 0x80);\r\n const bigInt = utilFromBase(bigIntView, 8);\r\n const smallIntBuffer = new ArrayBuffer(this.valueHex.byteLength);\r\n const smallIntView = new Uint8Array(smallIntBuffer);\r\n for (let j = 0; j < this.valueHex.byteLength; j++) {\r\n smallIntView[j] = buf[j];\r\n }\r\n smallIntView[0] &= 0x7F;\r\n const smallInt = utilFromBase(smallIntView, 8);\r\n return (smallInt - bigInt);\r\n}\r\nfunction utilEncodeTC(value) {\r\n const modValue = (value < 0) ? (value * (-1)) : value;\r\n let bigInt = 128;\r\n for (let i = 1; i < 8; i++) {\r\n if (modValue <= bigInt) {\r\n if (value < 0) {\r\n const smallInt = bigInt - modValue;\r\n const retBuf = utilToBase(smallInt, 8, i);\r\n const retView = new Uint8Array(retBuf);\r\n retView[0] |= 0x80;\r\n return retBuf;\r\n }\r\n let retBuf = utilToBase(modValue, 8, i);\r\n let retView = new Uint8Array(retBuf);\r\n if (retView[0] & 0x80) {\r\n const tempBuf = retBuf.slice(0);\r\n const tempView = new Uint8Array(tempBuf);\r\n retBuf = new ArrayBuffer(retBuf.byteLength + 1);\r\n retView = new Uint8Array(retBuf);\r\n for (let k = 0; k < tempBuf.byteLength; k++) {\r\n retView[k + 1] = tempView[k];\r\n }\r\n retView[0] = 0x00;\r\n }\r\n return retBuf;\r\n }\r\n bigInt *= Math.pow(2, 8);\r\n }\r\n return (new ArrayBuffer(0));\r\n}\r\nfunction isEqualBuffer(inputBuffer1, inputBuffer2) {\r\n if (inputBuffer1.byteLength !== inputBuffer2.byteLength) {\r\n return false;\r\n }\r\n const view1 = new Uint8Array(inputBuffer1);\r\n const view2 = new Uint8Array(inputBuffer2);\r\n for (let i = 0; i < view1.length; i++) {\r\n if (view1[i] !== view2[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction padNumber(inputNumber, fullLength) {\r\n const str = inputNumber.toString(10);\r\n if (fullLength < str.length) {\r\n return \"\";\r\n }\r\n const dif = fullLength - str.length;\r\n const padding = new Array(dif);\r\n for (let i = 0; i < dif; i++) {\r\n padding[i] = \"0\";\r\n }\r\n const paddingString = padding.join(\"\");\r\n return paddingString.concat(str);\r\n}\r\nconst base64Template = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\r\nconst base64UrlTemplate = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=\";\r\nfunction toBase64(input, useUrlTemplate = false, skipPadding = false, skipLeadingZeros = false) {\r\n let i = 0;\r\n let flag1 = 0;\r\n let flag2 = 0;\r\n let output = \"\";\r\n const template = (useUrlTemplate) ? base64UrlTemplate : base64Template;\r\n if (skipLeadingZeros) {\r\n let nonZeroPosition = 0;\r\n for (let i = 0; i < input.length; i++) {\r\n if (input.charCodeAt(i) !== 0) {\r\n nonZeroPosition = i;\r\n break;\r\n }\r\n }\r\n input = input.slice(nonZeroPosition);\r\n }\r\n while (i < input.length) {\r\n const chr1 = input.charCodeAt(i++);\r\n if (i >= input.length) {\r\n flag1 = 1;\r\n }\r\n const chr2 = input.charCodeAt(i++);\r\n if (i >= input.length) {\r\n flag2 = 1;\r\n }\r\n const chr3 = input.charCodeAt(i++);\r\n const enc1 = chr1 >> 2;\r\n const enc2 = ((chr1 & 0x03) << 4) | (chr2 >> 4);\r\n let enc3 = ((chr2 & 0x0F) << 2) | (chr3 >> 6);\r\n let enc4 = chr3 & 0x3F;\r\n if (flag1 === 1) {\r\n enc3 = enc4 = 64;\r\n }\r\n else {\r\n if (flag2 === 1) {\r\n enc4 = 64;\r\n }\r\n }\r\n if (skipPadding) {\r\n if (enc3 === 64) {\r\n output += `${template.charAt(enc1)}${template.charAt(enc2)}`;\r\n }\r\n else {\r\n if (enc4 === 64) {\r\n output += `${template.charAt(enc1)}${template.charAt(enc2)}${template.charAt(enc3)}`;\r\n }\r\n else {\r\n output += `${template.charAt(enc1)}${template.charAt(enc2)}${template.charAt(enc3)}${template.charAt(enc4)}`;\r\n }\r\n }\r\n }\r\n else {\r\n output += `${template.charAt(enc1)}${template.charAt(enc2)}${template.charAt(enc3)}${template.charAt(enc4)}`;\r\n }\r\n }\r\n return output;\r\n}\r\nfunction fromBase64(input, useUrlTemplate = false, cutTailZeros = false) {\r\n const template = (useUrlTemplate) ? base64UrlTemplate : base64Template;\r\n function indexOf(toSearch) {\r\n for (let i = 0; i < 64; i++) {\r\n if (template.charAt(i) === toSearch)\r\n return i;\r\n }\r\n return 64;\r\n }\r\n function test(incoming) {\r\n return ((incoming === 64) ? 0x00 : incoming);\r\n }\r\n let i = 0;\r\n let output = \"\";\r\n while (i < input.length) {\r\n const enc1 = indexOf(input.charAt(i++));\r\n const enc2 = (i >= input.length) ? 0x00 : indexOf(input.charAt(i++));\r\n const enc3 = (i >= input.length) ? 0x00 : indexOf(input.charAt(i++));\r\n const enc4 = (i >= input.length) ? 0x00 : indexOf(input.charAt(i++));\r\n const chr1 = (test(enc1) << 2) | (test(enc2) >> 4);\r\n const chr2 = ((test(enc2) & 0x0F) << 4) | (test(enc3) >> 2);\r\n const chr3 = ((test(enc3) & 0x03) << 6) | test(enc4);\r\n output += String.fromCharCode(chr1);\r\n if (enc3 !== 64) {\r\n output += String.fromCharCode(chr2);\r\n }\r\n if (enc4 !== 64) {\r\n output += String.fromCharCode(chr3);\r\n }\r\n }\r\n if (cutTailZeros) {\r\n const outputLength = output.length;\r\n let nonZeroStart = (-1);\r\n for (let i = (outputLength - 1); i >= 0; i--) {\r\n if (output.charCodeAt(i) !== 0) {\r\n nonZeroStart = i;\r\n break;\r\n }\r\n }\r\n if (nonZeroStart !== (-1)) {\r\n output = output.slice(0, nonZeroStart + 1);\r\n }\r\n else {\r\n output = \"\";\r\n }\r\n }\r\n return output;\r\n}\r\nfunction arrayBufferToString(buffer) {\r\n let resultString = \"\";\r\n const view = new Uint8Array(buffer);\r\n for (const element of view) {\r\n resultString += String.fromCharCode(element);\r\n }\r\n return resultString;\r\n}\r\nfunction stringToArrayBuffer(str) {\r\n const stringLength = str.length;\r\n const resultBuffer = new ArrayBuffer(stringLength);\r\n const resultView = new Uint8Array(resultBuffer);\r\n for (let i = 0; i < stringLength; i++) {\r\n resultView[i] = str.charCodeAt(i);\r\n }\r\n return resultBuffer;\r\n}\r\nconst log2 = Math.log(2);\r\nfunction nearestPowerOf2(length) {\r\n const base = (Math.log(length) / log2);\r\n const floor = Math.floor(base);\r\n const round = Math.round(base);\r\n return ((floor === round) ? floor : round);\r\n}\r\nfunction clearProps(object, propsArray) {\r\n for (const prop of propsArray) {\r\n delete object[prop];\r\n }\r\n}\n\nexport { arrayBufferToString, bufferToHexCodes, checkBufferParams, clearProps, fromBase64, getParametersValue, getUTCDate, isEqualBuffer, nearestPowerOf2, padNumber, stringToArrayBuffer, toBase64, utilConcatBuf, utilConcatView, utilDecodeTC, utilEncodeTC, utilFromBase, utilToBase };\n","/*!\n * Copyright (c) 2014, GMO GlobalSign\n * Copyright (c) 2015-2022, Peculiar Ventures\n * All rights reserved.\n * \n * Author 2014-2019, Yury Strozhevsky\n * \n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * \n * * Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * \n * * Redistributions in binary form must reproduce the above copyright notice, this\n * list of conditions and the following disclaimer in the documentation and/or\n * other materials provided with the distribution.\n * \n * * Neither the name of the copyright holder nor the names of its\n * contributors may be used to endorse or promote products derived from\n * this software without specific prior written permission.\n * \n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n * \n */\n\nimport * as pvtsutils from 'pvtsutils';\nimport * as pvutils from 'pvutils';\n\nfunction assertBigInt() {\r\n if (typeof BigInt === \"undefined\") {\r\n throw new Error(\"BigInt is not defined. Your environment doesn't implement BigInt.\");\r\n }\r\n}\r\nfunction concat(buffers) {\r\n let outputLength = 0;\r\n let prevLength = 0;\r\n for (let i = 0; i < buffers.length; i++) {\r\n const buffer = buffers[i];\r\n outputLength += buffer.byteLength;\r\n }\r\n const retView = new Uint8Array(outputLength);\r\n for (let i = 0; i < buffers.length; i++) {\r\n const buffer = buffers[i];\r\n retView.set(new Uint8Array(buffer), prevLength);\r\n prevLength += buffer.byteLength;\r\n }\r\n return retView.buffer;\r\n}\r\nfunction checkBufferParams(baseBlock, inputBuffer, inputOffset, inputLength) {\r\n if (!(inputBuffer instanceof Uint8Array)) {\r\n baseBlock.error = \"Wrong parameter: inputBuffer must be 'Uint8Array'\";\r\n return false;\r\n }\r\n if (!inputBuffer.byteLength) {\r\n baseBlock.error = \"Wrong parameter: inputBuffer has zero length\";\r\n return false;\r\n }\r\n if (inputOffset < 0) {\r\n baseBlock.error = \"Wrong parameter: inputOffset less than zero\";\r\n return false;\r\n }\r\n if (inputLength < 0) {\r\n baseBlock.error = \"Wrong parameter: inputLength less than zero\";\r\n return false;\r\n }\r\n if ((inputBuffer.byteLength - inputOffset - inputLength) < 0) {\r\n baseBlock.error = \"End of input reached before message was fully decoded (inconsistent offset and length values)\";\r\n return false;\r\n }\r\n return true;\r\n}\n\nclass ViewWriter {\r\n constructor() {\r\n this.items = [];\r\n }\r\n write(buf) {\r\n this.items.push(buf);\r\n }\r\n final() {\r\n return concat(this.items);\r\n }\r\n}\n\nconst powers2 = [new Uint8Array([1])];\r\nconst digitsString = \"0123456789\";\r\nconst NAME = \"name\";\r\nconst VALUE_HEX_VIEW = \"valueHexView\";\r\nconst IS_HEX_ONLY = \"isHexOnly\";\r\nconst ID_BLOCK = \"idBlock\";\r\nconst TAG_CLASS = \"tagClass\";\r\nconst TAG_NUMBER = \"tagNumber\";\r\nconst IS_CONSTRUCTED = \"isConstructed\";\r\nconst FROM_BER = \"fromBER\";\r\nconst TO_BER = \"toBER\";\r\nconst LOCAL = \"local\";\r\nconst EMPTY_STRING = \"\";\r\nconst EMPTY_BUFFER = new ArrayBuffer(0);\r\nconst EMPTY_VIEW = new Uint8Array(0);\r\nconst END_OF_CONTENT_NAME = \"EndOfContent\";\r\nconst OCTET_STRING_NAME = \"OCTET STRING\";\r\nconst BIT_STRING_NAME = \"BIT STRING\";\n\nfunction HexBlock(BaseClass) {\r\n var _a;\r\n return _a = class Some extends BaseClass {\r\n constructor(...args) {\r\n var _a;\r\n super(...args);\r\n const params = args[0] || {};\r\n this.isHexOnly = (_a = params.isHexOnly) !== null && _a !== void 0 ? _a : false;\r\n this.valueHexView = params.valueHex ? pvtsutils.BufferSourceConverter.toUint8Array(params.valueHex) : EMPTY_VIEW;\r\n }\r\n get valueHex() {\r\n return this.valueHexView.slice().buffer;\r\n }\r\n set valueHex(value) {\r\n this.valueHexView = new Uint8Array(value);\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n const view = inputBuffer instanceof ArrayBuffer ? new Uint8Array(inputBuffer) : inputBuffer;\r\n if (!checkBufferParams(this, view, inputOffset, inputLength)) {\r\n return -1;\r\n }\r\n const endLength = inputOffset + inputLength;\r\n this.valueHexView = view.subarray(inputOffset, endLength);\r\n if (!this.valueHexView.length) {\r\n this.warnings.push(\"Zero buffer length\");\r\n return inputOffset;\r\n }\r\n this.blockLength = inputLength;\r\n return endLength;\r\n }\r\n toBER(sizeOnly = false) {\r\n if (!this.isHexOnly) {\r\n this.error = \"Flag 'isHexOnly' is not set, abort\";\r\n return EMPTY_BUFFER;\r\n }\r\n if (sizeOnly) {\r\n return new ArrayBuffer(this.valueHexView.byteLength);\r\n }\r\n return (this.valueHexView.byteLength === this.valueHexView.buffer.byteLength)\r\n ? this.valueHexView.buffer\r\n : this.valueHexView.slice().buffer;\r\n }\r\n toJSON() {\r\n return {\r\n ...super.toJSON(),\r\n isHexOnly: this.isHexOnly,\r\n valueHex: pvtsutils.Convert.ToHex(this.valueHexView),\r\n };\r\n }\r\n },\r\n _a.NAME = \"hexBlock\",\r\n _a;\r\n}\n\nclass LocalBaseBlock {\r\n constructor({ blockLength = 0, error = EMPTY_STRING, warnings = [], valueBeforeDecode = EMPTY_VIEW, } = {}) {\r\n this.blockLength = blockLength;\r\n this.error = error;\r\n this.warnings = warnings;\r\n this.valueBeforeDecodeView = pvtsutils.BufferSourceConverter.toUint8Array(valueBeforeDecode);\r\n }\r\n static blockName() {\r\n return this.NAME;\r\n }\r\n get valueBeforeDecode() {\r\n return this.valueBeforeDecodeView.slice().buffer;\r\n }\r\n set valueBeforeDecode(value) {\r\n this.valueBeforeDecodeView = new Uint8Array(value);\r\n }\r\n toJSON() {\r\n return {\r\n blockName: this.constructor.NAME,\r\n blockLength: this.blockLength,\r\n error: this.error,\r\n warnings: this.warnings,\r\n valueBeforeDecode: pvtsutils.Convert.ToHex(this.valueBeforeDecodeView),\r\n };\r\n }\r\n}\r\nLocalBaseBlock.NAME = \"baseBlock\";\n\nclass ValueBlock extends LocalBaseBlock {\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n throw TypeError(\"User need to make a specific function in a class which extends 'ValueBlock'\");\r\n }\r\n toBER(sizeOnly, writer) {\r\n throw TypeError(\"User need to make a specific function in a class which extends 'ValueBlock'\");\r\n }\r\n}\r\nValueBlock.NAME = \"valueBlock\";\n\nclass LocalIdentificationBlock extends HexBlock(LocalBaseBlock) {\r\n constructor({ idBlock = {}, } = {}) {\r\n var _a, _b, _c, _d;\r\n super();\r\n if (idBlock) {\r\n this.isHexOnly = (_a = idBlock.isHexOnly) !== null && _a !== void 0 ? _a : false;\r\n this.valueHexView = idBlock.valueHex ? pvtsutils.BufferSourceConverter.toUint8Array(idBlock.valueHex) : EMPTY_VIEW;\r\n this.tagClass = (_b = idBlock.tagClass) !== null && _b !== void 0 ? _b : -1;\r\n this.tagNumber = (_c = idBlock.tagNumber) !== null && _c !== void 0 ? _c : -1;\r\n this.isConstructed = (_d = idBlock.isConstructed) !== null && _d !== void 0 ? _d : false;\r\n }\r\n else {\r\n this.tagClass = -1;\r\n this.tagNumber = -1;\r\n this.isConstructed = false;\r\n }\r\n }\r\n toBER(sizeOnly = false) {\r\n let firstOctet = 0;\r\n switch (this.tagClass) {\r\n case 1:\r\n firstOctet |= 0x00;\r\n break;\r\n case 2:\r\n firstOctet |= 0x40;\r\n break;\r\n case 3:\r\n firstOctet |= 0x80;\r\n break;\r\n case 4:\r\n firstOctet |= 0xC0;\r\n break;\r\n default:\r\n this.error = \"Unknown tag class\";\r\n return EMPTY_BUFFER;\r\n }\r\n if (this.isConstructed)\r\n firstOctet |= 0x20;\r\n if (this.tagNumber < 31 && !this.isHexOnly) {\r\n const retView = new Uint8Array(1);\r\n if (!sizeOnly) {\r\n let number = this.tagNumber;\r\n number &= 0x1F;\r\n firstOctet |= number;\r\n retView[0] = firstOctet;\r\n }\r\n return retView.buffer;\r\n }\r\n if (!this.isHexOnly) {\r\n const encodedBuf = pvutils.utilToBase(this.tagNumber, 7);\r\n const encodedView = new Uint8Array(encodedBuf);\r\n const size = encodedBuf.byteLength;\r\n const retView = new Uint8Array(size + 1);\r\n retView[0] = (firstOctet | 0x1F);\r\n if (!sizeOnly) {\r\n for (let i = 0; i < (size - 1); i++)\r\n retView[i + 1] = encodedView[i] | 0x80;\r\n retView[size] = encodedView[size - 1];\r\n }\r\n return retView.buffer;\r\n }\r\n const retView = new Uint8Array(this.valueHexView.byteLength + 1);\r\n retView[0] = (firstOctet | 0x1F);\r\n if (!sizeOnly) {\r\n const curView = this.valueHexView;\r\n for (let i = 0; i < (curView.length - 1); i++)\r\n retView[i + 1] = curView[i] | 0x80;\r\n retView[this.valueHexView.byteLength] = curView[curView.length - 1];\r\n }\r\n return retView.buffer;\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n const inputView = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\r\n if (!checkBufferParams(this, inputView, inputOffset, inputLength)) {\r\n return -1;\r\n }\r\n const intBuffer = inputView.subarray(inputOffset, inputOffset + inputLength);\r\n if (intBuffer.length === 0) {\r\n this.error = \"Zero buffer length\";\r\n return -1;\r\n }\r\n const tagClassMask = intBuffer[0] & 0xC0;\r\n switch (tagClassMask) {\r\n case 0x00:\r\n this.tagClass = (1);\r\n break;\r\n case 0x40:\r\n this.tagClass = (2);\r\n break;\r\n case 0x80:\r\n this.tagClass = (3);\r\n break;\r\n case 0xC0:\r\n this.tagClass = (4);\r\n break;\r\n default:\r\n this.error = \"Unknown tag class\";\r\n return -1;\r\n }\r\n this.isConstructed = (intBuffer[0] & 0x20) === 0x20;\r\n this.isHexOnly = false;\r\n const tagNumberMask = intBuffer[0] & 0x1F;\r\n if (tagNumberMask !== 0x1F) {\r\n this.tagNumber = (tagNumberMask);\r\n this.blockLength = 1;\r\n }\r\n else {\r\n let count = 1;\r\n let intTagNumberBuffer = this.valueHexView = new Uint8Array(255);\r\n let tagNumberBufferMaxLength = 255;\r\n while (intBuffer[count] & 0x80) {\r\n intTagNumberBuffer[count - 1] = intBuffer[count] & 0x7F;\r\n count++;\r\n if (count >= intBuffer.length) {\r\n this.error = \"End of input reached before message was fully decoded\";\r\n return -1;\r\n }\r\n if (count === tagNumberBufferMaxLength) {\r\n tagNumberBufferMaxLength += 255;\r\n const tempBufferView = new Uint8Array(tagNumberBufferMaxLength);\r\n for (let i = 0; i < intTagNumberBuffer.length; i++)\r\n tempBufferView[i] = intTagNumberBuffer[i];\r\n intTagNumberBuffer = this.valueHexView = new Uint8Array(tagNumberBufferMaxLength);\r\n }\r\n }\r\n this.blockLength = (count + 1);\r\n intTagNumberBuffer[count - 1] = intBuffer[count] & 0x7F;\r\n const tempBufferView = new Uint8Array(count);\r\n for (let i = 0; i < count; i++)\r\n tempBufferView[i] = intTagNumberBuffer[i];\r\n intTagNumberBuffer = this.valueHexView = new Uint8Array(count);\r\n intTagNumberBuffer.set(tempBufferView);\r\n if (this.blockLength <= 9)\r\n this.tagNumber = pvutils.utilFromBase(intTagNumberBuffer, 7);\r\n else {\r\n this.isHexOnly = true;\r\n this.warnings.push(\"Tag too long, represented as hex-coded\");\r\n }\r\n }\r\n if (((this.tagClass === 1)) &&\r\n (this.isConstructed)) {\r\n switch (this.tagNumber) {\r\n case 1:\r\n case 2:\r\n case 5:\r\n case 6:\r\n case 9:\r\n case 13:\r\n case 14:\r\n case 23:\r\n case 24:\r\n case 31:\r\n case 32:\r\n case 33:\r\n case 34:\r\n this.error = \"Constructed encoding used for primitive type\";\r\n return -1;\r\n }\r\n }\r\n return (inputOffset + this.blockLength);\r\n }\r\n toJSON() {\r\n return {\r\n ...super.toJSON(),\r\n tagClass: this.tagClass,\r\n tagNumber: this.tagNumber,\r\n isConstructed: this.isConstructed,\r\n };\r\n }\r\n}\r\nLocalIdentificationBlock.NAME = \"identificationBlock\";\n\nclass LocalLengthBlock extends LocalBaseBlock {\r\n constructor({ lenBlock = {}, } = {}) {\r\n var _a, _b, _c;\r\n super();\r\n this.isIndefiniteForm = (_a = lenBlock.isIndefiniteForm) !== null && _a !== void 0 ? _a : false;\r\n this.longFormUsed = (_b = lenBlock.longFormUsed) !== null && _b !== void 0 ? _b : false;\r\n this.length = (_c = lenBlock.length) !== null && _c !== void 0 ? _c : 0;\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n const view = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\r\n if (!checkBufferParams(this, view, inputOffset, inputLength)) {\r\n return -1;\r\n }\r\n const intBuffer = view.subarray(inputOffset, inputOffset + inputLength);\r\n if (intBuffer.length === 0) {\r\n this.error = \"Zero buffer length\";\r\n return -1;\r\n }\r\n if (intBuffer[0] === 0xFF) {\r\n this.error = \"Length block 0xFF is reserved by standard\";\r\n return -1;\r\n }\r\n this.isIndefiniteForm = intBuffer[0] === 0x80;\r\n if (this.isIndefiniteForm) {\r\n this.blockLength = 1;\r\n return (inputOffset + this.blockLength);\r\n }\r\n this.longFormUsed = !!(intBuffer[0] & 0x80);\r\n if (this.longFormUsed === false) {\r\n this.length = (intBuffer[0]);\r\n this.blockLength = 1;\r\n return (inputOffset + this.blockLength);\r\n }\r\n const count = intBuffer[0] & 0x7F;\r\n if (count > 8) {\r\n this.error = \"Too big integer\";\r\n return -1;\r\n }\r\n if ((count + 1) > intBuffer.length) {\r\n this.error = \"End of input reached before message was fully decoded\";\r\n return -1;\r\n }\r\n const lenOffset = inputOffset + 1;\r\n const lengthBufferView = view.subarray(lenOffset, lenOffset + count);\r\n if (lengthBufferView[count - 1] === 0x00)\r\n this.warnings.push(\"Needlessly long encoded length\");\r\n this.length = pvutils.utilFromBase(lengthBufferView, 8);\r\n if (this.longFormUsed && (this.length <= 127))\r\n this.warnings.push(\"Unnecessary usage of long length form\");\r\n this.blockLength = count + 1;\r\n return (inputOffset + this.blockLength);\r\n }\r\n toBER(sizeOnly = false) {\r\n let retBuf;\r\n let retView;\r\n if (this.length > 127)\r\n this.longFormUsed = true;\r\n if (this.isIndefiniteForm) {\r\n retBuf = new ArrayBuffer(1);\r\n if (sizeOnly === false) {\r\n retView = new Uint8Array(retBuf);\r\n retView[0] = 0x80;\r\n }\r\n return retBuf;\r\n }\r\n if (this.longFormUsed) {\r\n const encodedBuf = pvutils.utilToBase(this.length, 8);\r\n if (encodedBuf.byteLength > 127) {\r\n this.error = \"Too big length\";\r\n return (EMPTY_BUFFER);\r\n }\r\n retBuf = new ArrayBuffer(encodedBuf.byteLength + 1);\r\n if (sizeOnly)\r\n return retBuf;\r\n const encodedView = new Uint8Array(encodedBuf);\r\n retView = new Uint8Array(retBuf);\r\n retView[0] = encodedBuf.byteLength | 0x80;\r\n for (let i = 0; i < encodedBuf.byteLength; i++)\r\n retView[i + 1] = encodedView[i];\r\n return retBuf;\r\n }\r\n retBuf = new ArrayBuffer(1);\r\n if (sizeOnly === false) {\r\n retView = new Uint8Array(retBuf);\r\n retView[0] = this.length;\r\n }\r\n return retBuf;\r\n }\r\n toJSON() {\r\n return {\r\n ...super.toJSON(),\r\n isIndefiniteForm: this.isIndefiniteForm,\r\n longFormUsed: this.longFormUsed,\r\n length: this.length,\r\n };\r\n }\r\n}\r\nLocalLengthBlock.NAME = \"lengthBlock\";\n\nconst typeStore = {};\n\nclass BaseBlock extends LocalBaseBlock {\r\n constructor({ name = EMPTY_STRING, optional = false, primitiveSchema, ...parameters } = {}, valueBlockType) {\r\n super(parameters);\r\n this.name = name;\r\n this.optional = optional;\r\n if (primitiveSchema) {\r\n this.primitiveSchema = primitiveSchema;\r\n }\r\n this.idBlock = new LocalIdentificationBlock(parameters);\r\n this.lenBlock = new LocalLengthBlock(parameters);\r\n this.valueBlock = valueBlockType ? new valueBlockType(parameters) : new ValueBlock(parameters);\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n const resultOffset = this.valueBlock.fromBER(inputBuffer, inputOffset, (this.lenBlock.isIndefiniteForm) ? inputLength : this.lenBlock.length);\r\n if (resultOffset === -1) {\r\n this.error = this.valueBlock.error;\r\n return resultOffset;\r\n }\r\n if (!this.idBlock.error.length)\r\n this.blockLength += this.idBlock.blockLength;\r\n if (!this.lenBlock.error.length)\r\n this.blockLength += this.lenBlock.blockLength;\r\n if (!this.valueBlock.error.length)\r\n this.blockLength += this.valueBlock.blockLength;\r\n return resultOffset;\r\n }\r\n toBER(sizeOnly, writer) {\r\n const _writer = writer || new ViewWriter();\r\n if (!writer) {\r\n prepareIndefiniteForm(this);\r\n }\r\n const idBlockBuf = this.idBlock.toBER(sizeOnly);\r\n _writer.write(idBlockBuf);\r\n if (this.lenBlock.isIndefiniteForm) {\r\n _writer.write(new Uint8Array([0x80]).buffer);\r\n this.valueBlock.toBER(sizeOnly, _writer);\r\n _writer.write(new ArrayBuffer(2));\r\n }\r\n else {\r\n const valueBlockBuf = this.valueBlock.toBER(sizeOnly);\r\n this.lenBlock.length = valueBlockBuf.byteLength;\r\n const lenBlockBuf = this.lenBlock.toBER(sizeOnly);\r\n _writer.write(lenBlockBuf);\r\n _writer.write(valueBlockBuf);\r\n }\r\n if (!writer) {\r\n return _writer.final();\r\n }\r\n return EMPTY_BUFFER;\r\n }\r\n toJSON() {\r\n const object = {\r\n ...super.toJSON(),\r\n idBlock: this.idBlock.toJSON(),\r\n lenBlock: this.lenBlock.toJSON(),\r\n valueBlock: this.valueBlock.toJSON(),\r\n name: this.name,\r\n optional: this.optional,\r\n };\r\n if (this.primitiveSchema)\r\n object.primitiveSchema = this.primitiveSchema.toJSON();\r\n return object;\r\n }\r\n toString(encoding = \"ascii\") {\r\n if (encoding === \"ascii\") {\r\n return this.onAsciiEncoding();\r\n }\r\n return pvtsutils.Convert.ToHex(this.toBER());\r\n }\r\n onAsciiEncoding() {\r\n return `${this.constructor.NAME} : ${pvtsutils.Convert.ToHex(this.valueBlock.valueBeforeDecodeView)}`;\r\n }\r\n isEqual(other) {\r\n if (this === other) {\r\n return true;\r\n }\r\n if (!(other instanceof this.constructor)) {\r\n return false;\r\n }\r\n const thisRaw = this.toBER();\r\n const otherRaw = other.toBER();\r\n return pvutils.isEqualBuffer(thisRaw, otherRaw);\r\n }\r\n}\r\nBaseBlock.NAME = \"BaseBlock\";\r\nfunction prepareIndefiniteForm(baseBlock) {\r\n if (baseBlock instanceof typeStore.Constructed) {\r\n for (const value of baseBlock.valueBlock.value) {\r\n if (prepareIndefiniteForm(value)) {\r\n baseBlock.lenBlock.isIndefiniteForm = true;\r\n }\r\n }\r\n }\r\n return !!baseBlock.lenBlock.isIndefiniteForm;\r\n}\n\nclass BaseStringBlock extends BaseBlock {\r\n constructor({ value = EMPTY_STRING, ...parameters } = {}, stringValueBlockType) {\r\n super(parameters, stringValueBlockType);\r\n if (value) {\r\n this.fromString(value);\r\n }\r\n }\r\n getValue() {\r\n return this.valueBlock.value;\r\n }\r\n setValue(value) {\r\n this.valueBlock.value = value;\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n const resultOffset = this.valueBlock.fromBER(inputBuffer, inputOffset, (this.lenBlock.isIndefiniteForm) ? inputLength : this.lenBlock.length);\r\n if (resultOffset === -1) {\r\n this.error = this.valueBlock.error;\r\n return resultOffset;\r\n }\r\n this.fromBuffer(this.valueBlock.valueHexView);\r\n if (!this.idBlock.error.length)\r\n this.blockLength += this.idBlock.blockLength;\r\n if (!this.lenBlock.error.length)\r\n this.blockLength += this.lenBlock.blockLength;\r\n if (!this.valueBlock.error.length)\r\n this.blockLength += this.valueBlock.blockLength;\r\n return resultOffset;\r\n }\r\n onAsciiEncoding() {\r\n return `${this.constructor.NAME} : '${this.valueBlock.value}'`;\r\n }\r\n}\r\nBaseStringBlock.NAME = \"BaseStringBlock\";\n\nclass LocalPrimitiveValueBlock extends HexBlock(ValueBlock) {\r\n constructor({ isHexOnly = true, ...parameters } = {}) {\r\n super(parameters);\r\n this.isHexOnly = isHexOnly;\r\n }\r\n}\r\nLocalPrimitiveValueBlock.NAME = \"PrimitiveValueBlock\";\n\nvar _a$w;\r\nclass Primitive extends BaseBlock {\r\n constructor(parameters = {}) {\r\n super(parameters, LocalPrimitiveValueBlock);\r\n this.idBlock.isConstructed = false;\r\n }\r\n}\r\n_a$w = Primitive;\r\n(() => {\r\n typeStore.Primitive = _a$w;\r\n})();\r\nPrimitive.NAME = \"PRIMITIVE\";\n\nfunction localChangeType(inputObject, newType) {\r\n if (inputObject instanceof newType) {\r\n return inputObject;\r\n }\r\n const newObject = new newType();\r\n newObject.idBlock = inputObject.idBlock;\r\n newObject.lenBlock = inputObject.lenBlock;\r\n newObject.warnings = inputObject.warnings;\r\n newObject.valueBeforeDecodeView = inputObject.valueBeforeDecodeView;\r\n return newObject;\r\n}\r\nfunction localFromBER(inputBuffer, inputOffset = 0, inputLength = inputBuffer.length) {\r\n const incomingOffset = inputOffset;\r\n let returnObject = new BaseBlock({}, ValueBlock);\r\n const baseBlock = new LocalBaseBlock();\r\n if (!checkBufferParams(baseBlock, inputBuffer, inputOffset, inputLength)) {\r\n returnObject.error = baseBlock.error;\r\n return {\r\n offset: -1,\r\n result: returnObject\r\n };\r\n }\r\n const intBuffer = inputBuffer.subarray(inputOffset, inputOffset + inputLength);\r\n if (!intBuffer.length) {\r\n returnObject.error = \"Zero buffer length\";\r\n return {\r\n offset: -1,\r\n result: returnObject\r\n };\r\n }\r\n let resultOffset = returnObject.idBlock.fromBER(inputBuffer, inputOffset, inputLength);\r\n if (returnObject.idBlock.warnings.length) {\r\n returnObject.warnings.concat(returnObject.idBlock.warnings);\r\n }\r\n if (resultOffset === -1) {\r\n returnObject.error = returnObject.idBlock.error;\r\n return {\r\n offset: -1,\r\n result: returnObject\r\n };\r\n }\r\n inputOffset = resultOffset;\r\n inputLength -= returnObject.idBlock.blockLength;\r\n resultOffset = returnObject.lenBlock.fromBER(inputBuffer, inputOffset, inputLength);\r\n if (returnObject.lenBlock.warnings.length) {\r\n returnObject.warnings.concat(returnObject.lenBlock.warnings);\r\n }\r\n if (resultOffset === -1) {\r\n returnObject.error = returnObject.lenBlock.error;\r\n return {\r\n offset: -1,\r\n result: returnObject\r\n };\r\n }\r\n inputOffset = resultOffset;\r\n inputLength -= returnObject.lenBlock.blockLength;\r\n if (!returnObject.idBlock.isConstructed &&\r\n returnObject.lenBlock.isIndefiniteForm) {\r\n returnObject.error = \"Indefinite length form used for primitive encoding form\";\r\n return {\r\n offset: -1,\r\n result: returnObject\r\n };\r\n }\r\n let newASN1Type = BaseBlock;\r\n switch (returnObject.idBlock.tagClass) {\r\n case 1:\r\n if ((returnObject.idBlock.tagNumber >= 37) &&\r\n (returnObject.idBlock.isHexOnly === false)) {\r\n returnObject.error = \"UNIVERSAL 37 and upper tags are reserved by ASN.1 standard\";\r\n return {\r\n offset: -1,\r\n result: returnObject\r\n };\r\n }\r\n switch (returnObject.idBlock.tagNumber) {\r\n case 0:\r\n if ((returnObject.idBlock.isConstructed) &&\r\n (returnObject.lenBlock.length > 0)) {\r\n returnObject.error = \"Type [UNIVERSAL 0] is reserved\";\r\n return {\r\n offset: -1,\r\n result: returnObject\r\n };\r\n }\r\n newASN1Type = typeStore.EndOfContent;\r\n break;\r\n case 1:\r\n newASN1Type = typeStore.Boolean;\r\n break;\r\n case 2:\r\n newASN1Type = typeStore.Integer;\r\n break;\r\n case 3:\r\n newASN1Type = typeStore.BitString;\r\n break;\r\n case 4:\r\n newASN1Type = typeStore.OctetString;\r\n break;\r\n case 5:\r\n newASN1Type = typeStore.Null;\r\n break;\r\n case 6:\r\n newASN1Type = typeStore.ObjectIdentifier;\r\n break;\r\n case 10:\r\n newASN1Type = typeStore.Enumerated;\r\n break;\r\n case 12:\r\n newASN1Type = typeStore.Utf8String;\r\n break;\r\n case 13:\r\n newASN1Type = typeStore.RelativeObjectIdentifier;\r\n break;\r\n case 14:\r\n newASN1Type = typeStore.TIME;\r\n break;\r\n case 15:\r\n returnObject.error = \"[UNIVERSAL 15] is reserved by ASN.1 standard\";\r\n return {\r\n offset: -1,\r\n result: returnObject\r\n };\r\n case 16:\r\n newASN1Type = typeStore.Sequence;\r\n break;\r\n case 17:\r\n newASN1Type = typeStore.Set;\r\n break;\r\n case 18:\r\n newASN1Type = typeStore.NumericString;\r\n break;\r\n case 19:\r\n newASN1Type = typeStore.PrintableString;\r\n break;\r\n case 20:\r\n newASN1Type = typeStore.TeletexString;\r\n break;\r\n case 21:\r\n newASN1Type = typeStore.VideotexString;\r\n break;\r\n case 22:\r\n newASN1Type = typeStore.IA5String;\r\n break;\r\n case 23:\r\n newASN1Type = typeStore.UTCTime;\r\n break;\r\n case 24:\r\n newASN1Type = typeStore.GeneralizedTime;\r\n break;\r\n case 25:\r\n newASN1Type = typeStore.GraphicString;\r\n break;\r\n case 26:\r\n newASN1Type = typeStore.VisibleString;\r\n break;\r\n case 27:\r\n newASN1Type = typeStore.GeneralString;\r\n break;\r\n case 28:\r\n newASN1Type = typeStore.UniversalString;\r\n break;\r\n case 29:\r\n newASN1Type = typeStore.CharacterString;\r\n break;\r\n case 30:\r\n newASN1Type = typeStore.BmpString;\r\n break;\r\n case 31:\r\n newASN1Type = typeStore.DATE;\r\n break;\r\n case 32:\r\n newASN1Type = typeStore.TimeOfDay;\r\n break;\r\n case 33:\r\n newASN1Type = typeStore.DateTime;\r\n break;\r\n case 34:\r\n newASN1Type = typeStore.Duration;\r\n break;\r\n default: {\r\n const newObject = returnObject.idBlock.isConstructed\r\n ? new typeStore.Constructed()\r\n : new typeStore.Primitive();\r\n newObject.idBlock = returnObject.idBlock;\r\n newObject.lenBlock = returnObject.lenBlock;\r\n newObject.warnings = returnObject.warnings;\r\n returnObject = newObject;\r\n }\r\n }\r\n break;\r\n case 2:\r\n case 3:\r\n case 4:\r\n default: {\r\n newASN1Type = returnObject.idBlock.isConstructed\r\n ? typeStore.Constructed\r\n : typeStore.Primitive;\r\n }\r\n }\r\n returnObject = localChangeType(returnObject, newASN1Type);\r\n resultOffset = returnObject.fromBER(inputBuffer, inputOffset, returnObject.lenBlock.isIndefiniteForm ? inputLength : returnObject.lenBlock.length);\r\n returnObject.valueBeforeDecodeView = inputBuffer.subarray(incomingOffset, incomingOffset + returnObject.blockLength);\r\n return {\r\n offset: resultOffset,\r\n result: returnObject\r\n };\r\n}\r\nfunction fromBER(inputBuffer) {\r\n if (!inputBuffer.byteLength) {\r\n const result = new BaseBlock({}, ValueBlock);\r\n result.error = \"Input buffer has zero length\";\r\n return {\r\n offset: -1,\r\n result\r\n };\r\n }\r\n return localFromBER(pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer).slice(), 0, inputBuffer.byteLength);\r\n}\n\nfunction checkLen(indefiniteLength, length) {\r\n if (indefiniteLength) {\r\n return 1;\r\n }\r\n return length;\r\n}\r\nclass LocalConstructedValueBlock extends ValueBlock {\r\n constructor({ value = [], isIndefiniteForm = false, ...parameters } = {}) {\r\n super(parameters);\r\n this.value = value;\r\n this.isIndefiniteForm = isIndefiniteForm;\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n const view = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\r\n if (!checkBufferParams(this, view, inputOffset, inputLength)) {\r\n return -1;\r\n }\r\n this.valueBeforeDecodeView = view.subarray(inputOffset, inputOffset + inputLength);\r\n if (this.valueBeforeDecodeView.length === 0) {\r\n this.warnings.push(\"Zero buffer length\");\r\n return inputOffset;\r\n }\r\n let currentOffset = inputOffset;\r\n while (checkLen(this.isIndefiniteForm, inputLength) > 0) {\r\n const returnObject = localFromBER(view, currentOffset, inputLength);\r\n if (returnObject.offset === -1) {\r\n this.error = returnObject.result.error;\r\n this.warnings.concat(returnObject.result.warnings);\r\n return -1;\r\n }\r\n currentOffset = returnObject.offset;\r\n this.blockLength += returnObject.result.blockLength;\r\n inputLength -= returnObject.result.blockLength;\r\n this.value.push(returnObject.result);\r\n if (this.isIndefiniteForm && returnObject.result.constructor.NAME === END_OF_CONTENT_NAME) {\r\n break;\r\n }\r\n }\r\n if (this.isIndefiniteForm) {\r\n if (this.value[this.value.length - 1].constructor.NAME === END_OF_CONTENT_NAME) {\r\n this.value.pop();\r\n }\r\n else {\r\n this.warnings.push(\"No EndOfContent block encoded\");\r\n }\r\n }\r\n return currentOffset;\r\n }\r\n toBER(sizeOnly, writer) {\r\n const _writer = writer || new ViewWriter();\r\n for (let i = 0; i < this.value.length; i++) {\r\n this.value[i].toBER(sizeOnly, _writer);\r\n }\r\n if (!writer) {\r\n return _writer.final();\r\n }\r\n return EMPTY_BUFFER;\r\n }\r\n toJSON() {\r\n const object = {\r\n ...super.toJSON(),\r\n isIndefiniteForm: this.isIndefiniteForm,\r\n value: [],\r\n };\r\n for (const value of this.value) {\r\n object.value.push(value.toJSON());\r\n }\r\n return object;\r\n }\r\n}\r\nLocalConstructedValueBlock.NAME = \"ConstructedValueBlock\";\n\nvar _a$v;\r\nclass Constructed extends BaseBlock {\r\n constructor(parameters = {}) {\r\n super(parameters, LocalConstructedValueBlock);\r\n this.idBlock.isConstructed = true;\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n this.valueBlock.isIndefiniteForm = this.lenBlock.isIndefiniteForm;\r\n const resultOffset = this.valueBlock.fromBER(inputBuffer, inputOffset, (this.lenBlock.isIndefiniteForm) ? inputLength : this.lenBlock.length);\r\n if (resultOffset === -1) {\r\n this.error = this.valueBlock.error;\r\n return resultOffset;\r\n }\r\n if (!this.idBlock.error.length)\r\n this.blockLength += this.idBlock.blockLength;\r\n if (!this.lenBlock.error.length)\r\n this.blockLength += this.lenBlock.blockLength;\r\n if (!this.valueBlock.error.length)\r\n this.blockLength += this.valueBlock.blockLength;\r\n return resultOffset;\r\n }\r\n onAsciiEncoding() {\r\n const values = [];\r\n for (const value of this.valueBlock.value) {\r\n values.push(value.toString(\"ascii\").split(\"\\n\").map(o => ` ${o}`).join(\"\\n\"));\r\n }\r\n const blockName = this.idBlock.tagClass === 3\r\n ? `[${this.idBlock.tagNumber}]`\r\n : this.constructor.NAME;\r\n return values.length\r\n ? `${blockName} :\\n${values.join(\"\\n\")}`\r\n : `${blockName} :`;\r\n }\r\n}\r\n_a$v = Constructed;\r\n(() => {\r\n typeStore.Constructed = _a$v;\r\n})();\r\nConstructed.NAME = \"CONSTRUCTED\";\n\nclass LocalEndOfContentValueBlock extends ValueBlock {\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n return inputOffset;\r\n }\r\n toBER(sizeOnly) {\r\n return EMPTY_BUFFER;\r\n }\r\n}\r\nLocalEndOfContentValueBlock.override = \"EndOfContentValueBlock\";\n\nvar _a$u;\r\nclass EndOfContent extends BaseBlock {\r\n constructor(parameters = {}) {\r\n super(parameters, LocalEndOfContentValueBlock);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 0;\r\n }\r\n}\r\n_a$u = EndOfContent;\r\n(() => {\r\n typeStore.EndOfContent = _a$u;\r\n})();\r\nEndOfContent.NAME = END_OF_CONTENT_NAME;\n\nvar _a$t;\r\nclass Null extends BaseBlock {\r\n constructor(parameters = {}) {\r\n super(parameters, ValueBlock);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 5;\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n if (this.lenBlock.length > 0)\r\n this.warnings.push(\"Non-zero length of value block for Null type\");\r\n if (!this.idBlock.error.length)\r\n this.blockLength += this.idBlock.blockLength;\r\n if (!this.lenBlock.error.length)\r\n this.blockLength += this.lenBlock.blockLength;\r\n this.blockLength += inputLength;\r\n if ((inputOffset + inputLength) > inputBuffer.byteLength) {\r\n this.error = \"End of input reached before message was fully decoded (inconsistent offset and length values)\";\r\n return -1;\r\n }\r\n return (inputOffset + inputLength);\r\n }\r\n toBER(sizeOnly, writer) {\r\n const retBuf = new ArrayBuffer(2);\r\n if (!sizeOnly) {\r\n const retView = new Uint8Array(retBuf);\r\n retView[0] = 0x05;\r\n retView[1] = 0x00;\r\n }\r\n if (writer) {\r\n writer.write(retBuf);\r\n }\r\n return retBuf;\r\n }\r\n onAsciiEncoding() {\r\n return `${this.constructor.NAME}`;\r\n }\r\n}\r\n_a$t = Null;\r\n(() => {\r\n typeStore.Null = _a$t;\r\n})();\r\nNull.NAME = \"NULL\";\n\nclass LocalBooleanValueBlock extends HexBlock(ValueBlock) {\r\n constructor({ value, ...parameters } = {}) {\r\n super(parameters);\r\n if (parameters.valueHex) {\r\n this.valueHexView = pvtsutils.BufferSourceConverter.toUint8Array(parameters.valueHex);\r\n }\r\n else {\r\n this.valueHexView = new Uint8Array(1);\r\n }\r\n if (value) {\r\n this.value = value;\r\n }\r\n }\r\n get value() {\r\n for (const octet of this.valueHexView) {\r\n if (octet > 0) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n set value(value) {\r\n this.valueHexView[0] = value ? 0xFF : 0x00;\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n const inputView = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\r\n if (!checkBufferParams(this, inputView, inputOffset, inputLength)) {\r\n return -1;\r\n }\r\n this.valueHexView = inputView.subarray(inputOffset, inputOffset + inputLength);\r\n if (inputLength > 1)\r\n this.warnings.push(\"Boolean value encoded in more then 1 octet\");\r\n this.isHexOnly = true;\r\n pvutils.utilDecodeTC.call(this);\r\n this.blockLength = inputLength;\r\n return (inputOffset + inputLength);\r\n }\r\n toBER() {\r\n return this.valueHexView.slice();\r\n }\r\n toJSON() {\r\n return {\r\n ...super.toJSON(),\r\n value: this.value,\r\n };\r\n }\r\n}\r\nLocalBooleanValueBlock.NAME = \"BooleanValueBlock\";\n\nvar _a$s;\r\nclass Boolean extends BaseBlock {\r\n constructor(parameters = {}) {\r\n super(parameters, LocalBooleanValueBlock);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 1;\r\n }\r\n getValue() {\r\n return this.valueBlock.value;\r\n }\r\n setValue(value) {\r\n this.valueBlock.value = value;\r\n }\r\n onAsciiEncoding() {\r\n return `${this.constructor.NAME} : ${this.getValue}`;\r\n }\r\n}\r\n_a$s = Boolean;\r\n(() => {\r\n typeStore.Boolean = _a$s;\r\n})();\r\nBoolean.NAME = \"BOOLEAN\";\n\nclass LocalOctetStringValueBlock extends HexBlock(LocalConstructedValueBlock) {\r\n constructor({ isConstructed = false, ...parameters } = {}) {\r\n super(parameters);\r\n this.isConstructed = isConstructed;\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n let resultOffset = 0;\r\n if (this.isConstructed) {\r\n this.isHexOnly = false;\r\n resultOffset = LocalConstructedValueBlock.prototype.fromBER.call(this, inputBuffer, inputOffset, inputLength);\r\n if (resultOffset === -1)\r\n return resultOffset;\r\n for (let i = 0; i < this.value.length; i++) {\r\n const currentBlockName = this.value[i].constructor.NAME;\r\n if (currentBlockName === END_OF_CONTENT_NAME) {\r\n if (this.isIndefiniteForm)\r\n break;\r\n else {\r\n this.error = \"EndOfContent is unexpected, OCTET STRING may consists of OCTET STRINGs only\";\r\n return -1;\r\n }\r\n }\r\n if (currentBlockName !== OCTET_STRING_NAME) {\r\n this.error = \"OCTET STRING may consists of OCTET STRINGs only\";\r\n return -1;\r\n }\r\n }\r\n }\r\n else {\r\n this.isHexOnly = true;\r\n resultOffset = super.fromBER(inputBuffer, inputOffset, inputLength);\r\n this.blockLength = inputLength;\r\n }\r\n return resultOffset;\r\n }\r\n toBER(sizeOnly, writer) {\r\n if (this.isConstructed)\r\n return LocalConstructedValueBlock.prototype.toBER.call(this, sizeOnly, writer);\r\n return sizeOnly\r\n ? new ArrayBuffer(this.valueHexView.byteLength)\r\n : this.valueHexView.slice().buffer;\r\n }\r\n toJSON() {\r\n return {\r\n ...super.toJSON(),\r\n isConstructed: this.isConstructed,\r\n };\r\n }\r\n}\r\nLocalOctetStringValueBlock.NAME = \"OctetStringValueBlock\";\n\nvar _a$r;\r\nclass OctetString extends BaseBlock {\r\n constructor({ idBlock = {}, lenBlock = {}, ...parameters } = {}) {\r\n var _b, _c;\r\n (_b = parameters.isConstructed) !== null && _b !== void 0 ? _b : (parameters.isConstructed = !!((_c = parameters.value) === null || _c === void 0 ? void 0 : _c.length));\r\n super({\r\n idBlock: {\r\n isConstructed: parameters.isConstructed,\r\n ...idBlock,\r\n },\r\n lenBlock: {\r\n ...lenBlock,\r\n isIndefiniteForm: !!parameters.isIndefiniteForm,\r\n },\r\n ...parameters,\r\n }, LocalOctetStringValueBlock);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 4;\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n this.valueBlock.isConstructed = this.idBlock.isConstructed;\r\n this.valueBlock.isIndefiniteForm = this.lenBlock.isIndefiniteForm;\r\n if (inputLength === 0) {\r\n if (this.idBlock.error.length === 0)\r\n this.blockLength += this.idBlock.blockLength;\r\n if (this.lenBlock.error.length === 0)\r\n this.blockLength += this.lenBlock.blockLength;\r\n return inputOffset;\r\n }\r\n if (!this.valueBlock.isConstructed) {\r\n const view = inputBuffer instanceof ArrayBuffer ? new Uint8Array(inputBuffer) : inputBuffer;\r\n const buf = view.subarray(inputOffset, inputOffset + inputLength);\r\n try {\r\n if (buf.byteLength) {\r\n const asn = localFromBER(buf, 0, buf.byteLength);\r\n if (asn.offset !== -1 && asn.offset === inputLength) {\r\n this.valueBlock.value = [asn.result];\r\n }\r\n }\r\n }\r\n catch (e) {\r\n }\r\n }\r\n return super.fromBER(inputBuffer, inputOffset, inputLength);\r\n }\r\n onAsciiEncoding() {\r\n if (this.valueBlock.isConstructed || (this.valueBlock.value && this.valueBlock.value.length)) {\r\n return Constructed.prototype.onAsciiEncoding.call(this);\r\n }\r\n return `${this.constructor.NAME} : ${pvtsutils.Convert.ToHex(this.valueBlock.valueHexView)}`;\r\n }\r\n getValue() {\r\n if (!this.idBlock.isConstructed) {\r\n return this.valueBlock.valueHexView.slice().buffer;\r\n }\r\n const array = [];\r\n for (const content of this.valueBlock.value) {\r\n if (content instanceof OctetString) {\r\n array.push(content.valueBlock.valueHexView);\r\n }\r\n }\r\n return pvtsutils.BufferSourceConverter.concat(array);\r\n }\r\n}\r\n_a$r = OctetString;\r\n(() => {\r\n typeStore.OctetString = _a$r;\r\n})();\r\nOctetString.NAME = OCTET_STRING_NAME;\n\nclass LocalBitStringValueBlock extends HexBlock(LocalConstructedValueBlock) {\r\n constructor({ unusedBits = 0, isConstructed = false, ...parameters } = {}) {\r\n super(parameters);\r\n this.unusedBits = unusedBits;\r\n this.isConstructed = isConstructed;\r\n this.blockLength = this.valueHexView.byteLength;\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n if (!inputLength) {\r\n return inputOffset;\r\n }\r\n let resultOffset = -1;\r\n if (this.isConstructed) {\r\n resultOffset = LocalConstructedValueBlock.prototype.fromBER.call(this, inputBuffer, inputOffset, inputLength);\r\n if (resultOffset === -1)\r\n return resultOffset;\r\n for (const value of this.value) {\r\n const currentBlockName = value.constructor.NAME;\r\n if (currentBlockName === END_OF_CONTENT_NAME) {\r\n if (this.isIndefiniteForm)\r\n break;\r\n else {\r\n this.error = \"EndOfContent is unexpected, BIT STRING may consists of BIT STRINGs only\";\r\n return -1;\r\n }\r\n }\r\n if (currentBlockName !== BIT_STRING_NAME) {\r\n this.error = \"BIT STRING may consists of BIT STRINGs only\";\r\n return -1;\r\n }\r\n const valueBlock = value.valueBlock;\r\n if ((this.unusedBits > 0) && (valueBlock.unusedBits > 0)) {\r\n this.error = \"Using of \\\"unused bits\\\" inside constructive BIT STRING allowed for least one only\";\r\n return -1;\r\n }\r\n this.unusedBits = valueBlock.unusedBits;\r\n }\r\n return resultOffset;\r\n }\r\n const inputView = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\r\n if (!checkBufferParams(this, inputView, inputOffset, inputLength)) {\r\n return -1;\r\n }\r\n const intBuffer = inputView.subarray(inputOffset, inputOffset + inputLength);\r\n this.unusedBits = intBuffer[0];\r\n if (this.unusedBits > 7) {\r\n this.error = \"Unused bits for BitString must be in range 0-7\";\r\n return -1;\r\n }\r\n if (!this.unusedBits) {\r\n const buf = intBuffer.subarray(1);\r\n try {\r\n if (buf.byteLength) {\r\n const asn = localFromBER(buf, 0, buf.byteLength);\r\n if (asn.offset !== -1 && asn.offset === (inputLength - 1)) {\r\n this.value = [asn.result];\r\n }\r\n }\r\n }\r\n catch (e) {\r\n }\r\n }\r\n this.valueHexView = intBuffer.subarray(1);\r\n this.blockLength = intBuffer.length;\r\n return (inputOffset + inputLength);\r\n }\r\n toBER(sizeOnly, writer) {\r\n if (this.isConstructed) {\r\n return LocalConstructedValueBlock.prototype.toBER.call(this, sizeOnly, writer);\r\n }\r\n if (sizeOnly) {\r\n return new ArrayBuffer(this.valueHexView.byteLength + 1);\r\n }\r\n if (!this.valueHexView.byteLength) {\r\n return EMPTY_BUFFER;\r\n }\r\n const retView = new Uint8Array(this.valueHexView.length + 1);\r\n retView[0] = this.unusedBits;\r\n retView.set(this.valueHexView, 1);\r\n return retView.buffer;\r\n }\r\n toJSON() {\r\n return {\r\n ...super.toJSON(),\r\n unusedBits: this.unusedBits,\r\n isConstructed: this.isConstructed,\r\n };\r\n }\r\n}\r\nLocalBitStringValueBlock.NAME = \"BitStringValueBlock\";\n\nvar _a$q;\r\nclass BitString extends BaseBlock {\r\n constructor({ idBlock = {}, lenBlock = {}, ...parameters } = {}) {\r\n var _b, _c;\r\n (_b = parameters.isConstructed) !== null && _b !== void 0 ? _b : (parameters.isConstructed = !!((_c = parameters.value) === null || _c === void 0 ? void 0 : _c.length));\r\n super({\r\n idBlock: {\r\n isConstructed: parameters.isConstructed,\r\n ...idBlock,\r\n },\r\n lenBlock: {\r\n ...lenBlock,\r\n isIndefiniteForm: !!parameters.isIndefiniteForm,\r\n },\r\n ...parameters,\r\n }, LocalBitStringValueBlock);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 3;\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n this.valueBlock.isConstructed = this.idBlock.isConstructed;\r\n this.valueBlock.isIndefiniteForm = this.lenBlock.isIndefiniteForm;\r\n return super.fromBER(inputBuffer, inputOffset, inputLength);\r\n }\r\n onAsciiEncoding() {\r\n if (this.valueBlock.isConstructed || (this.valueBlock.value && this.valueBlock.value.length)) {\r\n return Constructed.prototype.onAsciiEncoding.call(this);\r\n }\r\n else {\r\n const bits = [];\r\n const valueHex = this.valueBlock.valueHexView;\r\n for (const byte of valueHex) {\r\n bits.push(byte.toString(2).padStart(8, \"0\"));\r\n }\r\n const bitsStr = bits.join(\"\");\r\n return `${this.constructor.NAME} : ${bitsStr.substring(0, bitsStr.length - this.valueBlock.unusedBits)}`;\r\n }\r\n }\r\n}\r\n_a$q = BitString;\r\n(() => {\r\n typeStore.BitString = _a$q;\r\n})();\r\nBitString.NAME = BIT_STRING_NAME;\n\nvar _a$p;\r\nfunction viewAdd(first, second) {\r\n const c = new Uint8Array([0]);\r\n const firstView = new Uint8Array(first);\r\n const secondView = new Uint8Array(second);\r\n let firstViewCopy = firstView.slice(0);\r\n const firstViewCopyLength = firstViewCopy.length - 1;\r\n const secondViewCopy = secondView.slice(0);\r\n const secondViewCopyLength = secondViewCopy.length - 1;\r\n let value = 0;\r\n const max = (secondViewCopyLength < firstViewCopyLength) ? firstViewCopyLength : secondViewCopyLength;\r\n let counter = 0;\r\n for (let i = max; i >= 0; i--, counter++) {\r\n switch (true) {\r\n case (counter < secondViewCopy.length):\r\n value = firstViewCopy[firstViewCopyLength - counter] + secondViewCopy[secondViewCopyLength - counter] + c[0];\r\n break;\r\n default:\r\n value = firstViewCopy[firstViewCopyLength - counter] + c[0];\r\n }\r\n c[0] = value / 10;\r\n switch (true) {\r\n case (counter >= firstViewCopy.length):\r\n firstViewCopy = pvutils.utilConcatView(new Uint8Array([value % 10]), firstViewCopy);\r\n break;\r\n default:\r\n firstViewCopy[firstViewCopyLength - counter] = value % 10;\r\n }\r\n }\r\n if (c[0] > 0)\r\n firstViewCopy = pvutils.utilConcatView(c, firstViewCopy);\r\n return firstViewCopy;\r\n}\r\nfunction power2(n) {\r\n if (n >= powers2.length) {\r\n for (let p = powers2.length; p <= n; p++) {\r\n const c = new Uint8Array([0]);\r\n let digits = (powers2[p - 1]).slice(0);\r\n for (let i = (digits.length - 1); i >= 0; i--) {\r\n const newValue = new Uint8Array([(digits[i] << 1) + c[0]]);\r\n c[0] = newValue[0] / 10;\r\n digits[i] = newValue[0] % 10;\r\n }\r\n if (c[0] > 0)\r\n digits = pvutils.utilConcatView(c, digits);\r\n powers2.push(digits);\r\n }\r\n }\r\n return powers2[n];\r\n}\r\nfunction viewSub(first, second) {\r\n let b = 0;\r\n const firstView = new Uint8Array(first);\r\n const secondView = new Uint8Array(second);\r\n const firstViewCopy = firstView.slice(0);\r\n const firstViewCopyLength = firstViewCopy.length - 1;\r\n const secondViewCopy = secondView.slice(0);\r\n const secondViewCopyLength = secondViewCopy.length - 1;\r\n let value;\r\n let counter = 0;\r\n for (let i = secondViewCopyLength; i >= 0; i--, counter++) {\r\n value = firstViewCopy[firstViewCopyLength - counter] - secondViewCopy[secondViewCopyLength - counter] - b;\r\n switch (true) {\r\n case (value < 0):\r\n b = 1;\r\n firstViewCopy[firstViewCopyLength - counter] = value + 10;\r\n break;\r\n default:\r\n b = 0;\r\n firstViewCopy[firstViewCopyLength - counter] = value;\r\n }\r\n }\r\n if (b > 0) {\r\n for (let i = (firstViewCopyLength - secondViewCopyLength + 1); i >= 0; i--, counter++) {\r\n value = firstViewCopy[firstViewCopyLength - counter] - b;\r\n if (value < 0) {\r\n b = 1;\r\n firstViewCopy[firstViewCopyLength - counter] = value + 10;\r\n }\r\n else {\r\n b = 0;\r\n firstViewCopy[firstViewCopyLength - counter] = value;\r\n break;\r\n }\r\n }\r\n }\r\n return firstViewCopy.slice();\r\n}\r\nclass LocalIntegerValueBlock extends HexBlock(ValueBlock) {\r\n constructor({ value, ...parameters } = {}) {\r\n super(parameters);\r\n this._valueDec = 0;\r\n if (parameters.valueHex) {\r\n this.setValueHex();\r\n }\r\n if (value !== undefined) {\r\n this.valueDec = value;\r\n }\r\n }\r\n setValueHex() {\r\n if (this.valueHexView.length >= 4) {\r\n this.warnings.push(\"Too big Integer for decoding, hex only\");\r\n this.isHexOnly = true;\r\n this._valueDec = 0;\r\n }\r\n else {\r\n this.isHexOnly = false;\r\n if (this.valueHexView.length > 0) {\r\n this._valueDec = pvutils.utilDecodeTC.call(this);\r\n }\r\n }\r\n }\r\n set valueDec(v) {\r\n this._valueDec = v;\r\n this.isHexOnly = false;\r\n this.valueHexView = new Uint8Array(pvutils.utilEncodeTC(v));\r\n }\r\n get valueDec() {\r\n return this._valueDec;\r\n }\r\n fromDER(inputBuffer, inputOffset, inputLength, expectedLength = 0) {\r\n const offset = this.fromBER(inputBuffer, inputOffset, inputLength);\r\n if (offset === -1)\r\n return offset;\r\n const view = this.valueHexView;\r\n if ((view[0] === 0x00) && ((view[1] & 0x80) !== 0)) {\r\n this.valueHexView = view.subarray(1);\r\n }\r\n else {\r\n if (expectedLength !== 0) {\r\n if (view.length < expectedLength) {\r\n if ((expectedLength - view.length) > 1)\r\n expectedLength = view.length + 1;\r\n this.valueHexView = view.subarray(expectedLength - view.length);\r\n }\r\n }\r\n }\r\n return offset;\r\n }\r\n toDER(sizeOnly = false) {\r\n const view = this.valueHexView;\r\n switch (true) {\r\n case ((view[0] & 0x80) !== 0):\r\n {\r\n const updatedView = new Uint8Array(this.valueHexView.length + 1);\r\n updatedView[0] = 0x00;\r\n updatedView.set(view, 1);\r\n this.valueHexView = updatedView;\r\n }\r\n break;\r\n case ((view[0] === 0x00) && ((view[1] & 0x80) === 0)):\r\n {\r\n this.valueHexView = this.valueHexView.subarray(1);\r\n }\r\n break;\r\n }\r\n return this.toBER(sizeOnly);\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n const resultOffset = super.fromBER(inputBuffer, inputOffset, inputLength);\r\n if (resultOffset === -1) {\r\n return resultOffset;\r\n }\r\n this.setValueHex();\r\n return resultOffset;\r\n }\r\n toBER(sizeOnly) {\r\n return sizeOnly\r\n ? new ArrayBuffer(this.valueHexView.length)\r\n : this.valueHexView.slice().buffer;\r\n }\r\n toJSON() {\r\n return {\r\n ...super.toJSON(),\r\n valueDec: this.valueDec,\r\n };\r\n }\r\n toString() {\r\n const firstBit = (this.valueHexView.length * 8) - 1;\r\n let digits = new Uint8Array((this.valueHexView.length * 8) / 3);\r\n let bitNumber = 0;\r\n let currentByte;\r\n const asn1View = this.valueHexView;\r\n let result = \"\";\r\n let flag = false;\r\n for (let byteNumber = (asn1View.byteLength - 1); byteNumber >= 0; byteNumber--) {\r\n currentByte = asn1View[byteNumber];\r\n for (let i = 0; i < 8; i++) {\r\n if ((currentByte & 1) === 1) {\r\n switch (bitNumber) {\r\n case firstBit:\r\n digits = viewSub(power2(bitNumber), digits);\r\n result = \"-\";\r\n break;\r\n default:\r\n digits = viewAdd(digits, power2(bitNumber));\r\n }\r\n }\r\n bitNumber++;\r\n currentByte >>= 1;\r\n }\r\n }\r\n for (let i = 0; i < digits.length; i++) {\r\n if (digits[i])\r\n flag = true;\r\n if (flag)\r\n result += digitsString.charAt(digits[i]);\r\n }\r\n if (flag === false)\r\n result += digitsString.charAt(0);\r\n return result;\r\n }\r\n}\r\n_a$p = LocalIntegerValueBlock;\r\nLocalIntegerValueBlock.NAME = \"IntegerValueBlock\";\r\n(() => {\r\n Object.defineProperty(_a$p.prototype, \"valueHex\", {\r\n set: function (v) {\r\n this.valueHexView = new Uint8Array(v);\r\n this.setValueHex();\r\n },\r\n get: function () {\r\n return this.valueHexView.slice().buffer;\r\n },\r\n });\r\n})();\n\nvar _a$o;\r\nclass Integer extends BaseBlock {\r\n constructor(parameters = {}) {\r\n super(parameters, LocalIntegerValueBlock);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 2;\r\n }\r\n toBigInt() {\r\n assertBigInt();\r\n return BigInt(this.valueBlock.toString());\r\n }\r\n static fromBigInt(value) {\r\n assertBigInt();\r\n const bigIntValue = BigInt(value);\r\n const writer = new ViewWriter();\r\n const hex = bigIntValue.toString(16).replace(/^-/, \"\");\r\n const view = new Uint8Array(pvtsutils.Convert.FromHex(hex));\r\n if (bigIntValue < 0) {\r\n const first = new Uint8Array(view.length + (view[0] & 0x80 ? 1 : 0));\r\n first[0] |= 0x80;\r\n const firstInt = BigInt(`0x${pvtsutils.Convert.ToHex(first)}`);\r\n const secondInt = firstInt + bigIntValue;\r\n const second = pvtsutils.BufferSourceConverter.toUint8Array(pvtsutils.Convert.FromHex(secondInt.toString(16)));\r\n second[0] |= 0x80;\r\n writer.write(second);\r\n }\r\n else {\r\n if (view[0] & 0x80) {\r\n writer.write(new Uint8Array([0]));\r\n }\r\n writer.write(view);\r\n }\r\n const res = new Integer({\r\n valueHex: writer.final(),\r\n });\r\n return res;\r\n }\r\n convertToDER() {\r\n const integer = new Integer({ valueHex: this.valueBlock.valueHexView });\r\n integer.valueBlock.toDER();\r\n return integer;\r\n }\r\n convertFromDER() {\r\n return new Integer({\r\n valueHex: this.valueBlock.valueHexView[0] === 0\r\n ? this.valueBlock.valueHexView.subarray(1)\r\n : this.valueBlock.valueHexView,\r\n });\r\n }\r\n onAsciiEncoding() {\r\n return `${this.constructor.NAME} : ${this.valueBlock.toString()}`;\r\n }\r\n}\r\n_a$o = Integer;\r\n(() => {\r\n typeStore.Integer = _a$o;\r\n})();\r\nInteger.NAME = \"INTEGER\";\n\nvar _a$n;\r\nclass Enumerated extends Integer {\r\n constructor(parameters = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 10;\r\n }\r\n}\r\n_a$n = Enumerated;\r\n(() => {\r\n typeStore.Enumerated = _a$n;\r\n})();\r\nEnumerated.NAME = \"ENUMERATED\";\n\nclass LocalSidValueBlock extends HexBlock(ValueBlock) {\r\n constructor({ valueDec = -1, isFirstSid = false, ...parameters } = {}) {\r\n super(parameters);\r\n this.valueDec = valueDec;\r\n this.isFirstSid = isFirstSid;\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n if (!inputLength) {\r\n return inputOffset;\r\n }\r\n const inputView = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\r\n if (!checkBufferParams(this, inputView, inputOffset, inputLength)) {\r\n return -1;\r\n }\r\n const intBuffer = inputView.subarray(inputOffset, inputOffset + inputLength);\r\n this.valueHexView = new Uint8Array(inputLength);\r\n for (let i = 0; i < inputLength; i++) {\r\n this.valueHexView[i] = intBuffer[i] & 0x7F;\r\n this.blockLength++;\r\n if ((intBuffer[i] & 0x80) === 0x00)\r\n break;\r\n }\r\n const tempView = new Uint8Array(this.blockLength);\r\n for (let i = 0; i < this.blockLength; i++) {\r\n tempView[i] = this.valueHexView[i];\r\n }\r\n this.valueHexView = tempView;\r\n if ((intBuffer[this.blockLength - 1] & 0x80) !== 0x00) {\r\n this.error = \"End of input reached before message was fully decoded\";\r\n return -1;\r\n }\r\n if (this.valueHexView[0] === 0x00)\r\n this.warnings.push(\"Needlessly long format of SID encoding\");\r\n if (this.blockLength <= 8)\r\n this.valueDec = pvutils.utilFromBase(this.valueHexView, 7);\r\n else {\r\n this.isHexOnly = true;\r\n this.warnings.push(\"Too big SID for decoding, hex only\");\r\n }\r\n return (inputOffset + this.blockLength);\r\n }\r\n set valueBigInt(value) {\r\n assertBigInt();\r\n let bits = BigInt(value).toString(2);\r\n while (bits.length % 7) {\r\n bits = \"0\" + bits;\r\n }\r\n const bytes = new Uint8Array(bits.length / 7);\r\n for (let i = 0; i < bytes.length; i++) {\r\n bytes[i] = parseInt(bits.slice(i * 7, i * 7 + 7), 2) + (i + 1 < bytes.length ? 0x80 : 0);\r\n }\r\n this.fromBER(bytes.buffer, 0, bytes.length);\r\n }\r\n toBER(sizeOnly) {\r\n if (this.isHexOnly) {\r\n if (sizeOnly)\r\n return (new ArrayBuffer(this.valueHexView.byteLength));\r\n const curView = this.valueHexView;\r\n const retView = new Uint8Array(this.blockLength);\r\n for (let i = 0; i < (this.blockLength - 1); i++)\r\n retView[i] = curView[i] | 0x80;\r\n retView[this.blockLength - 1] = curView[this.blockLength - 1];\r\n return retView.buffer;\r\n }\r\n const encodedBuf = pvutils.utilToBase(this.valueDec, 7);\r\n if (encodedBuf.byteLength === 0) {\r\n this.error = \"Error during encoding SID value\";\r\n return EMPTY_BUFFER;\r\n }\r\n const retView = new Uint8Array(encodedBuf.byteLength);\r\n if (!sizeOnly) {\r\n const encodedView = new Uint8Array(encodedBuf);\r\n const len = encodedBuf.byteLength - 1;\r\n for (let i = 0; i < len; i++)\r\n retView[i] = encodedView[i] | 0x80;\r\n retView[len] = encodedView[len];\r\n }\r\n return retView;\r\n }\r\n toString() {\r\n let result = \"\";\r\n if (this.isHexOnly)\r\n result = pvtsutils.Convert.ToHex(this.valueHexView);\r\n else {\r\n if (this.isFirstSid) {\r\n let sidValue = this.valueDec;\r\n if (this.valueDec <= 39)\r\n result = \"0.\";\r\n else {\r\n if (this.valueDec <= 79) {\r\n result = \"1.\";\r\n sidValue -= 40;\r\n }\r\n else {\r\n result = \"2.\";\r\n sidValue -= 80;\r\n }\r\n }\r\n result += sidValue.toString();\r\n }\r\n else\r\n result = this.valueDec.toString();\r\n }\r\n return result;\r\n }\r\n toJSON() {\r\n return {\r\n ...super.toJSON(),\r\n valueDec: this.valueDec,\r\n isFirstSid: this.isFirstSid,\r\n };\r\n }\r\n}\r\nLocalSidValueBlock.NAME = \"sidBlock\";\n\nclass LocalObjectIdentifierValueBlock extends ValueBlock {\r\n constructor({ value = EMPTY_STRING, ...parameters } = {}) {\r\n super(parameters);\r\n this.value = [];\r\n if (value) {\r\n this.fromString(value);\r\n }\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n let resultOffset = inputOffset;\r\n while (inputLength > 0) {\r\n const sidBlock = new LocalSidValueBlock();\r\n resultOffset = sidBlock.fromBER(inputBuffer, resultOffset, inputLength);\r\n if (resultOffset === -1) {\r\n this.blockLength = 0;\r\n this.error = sidBlock.error;\r\n return resultOffset;\r\n }\r\n if (this.value.length === 0)\r\n sidBlock.isFirstSid = true;\r\n this.blockLength += sidBlock.blockLength;\r\n inputLength -= sidBlock.blockLength;\r\n this.value.push(sidBlock);\r\n }\r\n return resultOffset;\r\n }\r\n toBER(sizeOnly) {\r\n const retBuffers = [];\r\n for (let i = 0; i < this.value.length; i++) {\r\n const valueBuf = this.value[i].toBER(sizeOnly);\r\n if (valueBuf.byteLength === 0) {\r\n this.error = this.value[i].error;\r\n return EMPTY_BUFFER;\r\n }\r\n retBuffers.push(valueBuf);\r\n }\r\n return concat(retBuffers);\r\n }\r\n fromString(string) {\r\n this.value = [];\r\n let pos1 = 0;\r\n let pos2 = 0;\r\n let sid = \"\";\r\n let flag = false;\r\n do {\r\n pos2 = string.indexOf(\".\", pos1);\r\n if (pos2 === -1)\r\n sid = string.substring(pos1);\r\n else\r\n sid = string.substring(pos1, pos2);\r\n pos1 = pos2 + 1;\r\n if (flag) {\r\n const sidBlock = this.value[0];\r\n let plus = 0;\r\n switch (sidBlock.valueDec) {\r\n case 0:\r\n break;\r\n case 1:\r\n plus = 40;\r\n break;\r\n case 2:\r\n plus = 80;\r\n break;\r\n default:\r\n this.value = [];\r\n return;\r\n }\r\n const parsedSID = parseInt(sid, 10);\r\n if (isNaN(parsedSID))\r\n return;\r\n sidBlock.valueDec = parsedSID + plus;\r\n flag = false;\r\n }\r\n else {\r\n const sidBlock = new LocalSidValueBlock();\r\n if (sid > Number.MAX_SAFE_INTEGER) {\r\n assertBigInt();\r\n const sidValue = BigInt(sid);\r\n sidBlock.valueBigInt = sidValue;\r\n }\r\n else {\r\n sidBlock.valueDec = parseInt(sid, 10);\r\n if (isNaN(sidBlock.valueDec))\r\n return;\r\n }\r\n if (!this.value.length) {\r\n sidBlock.isFirstSid = true;\r\n flag = true;\r\n }\r\n this.value.push(sidBlock);\r\n }\r\n } while (pos2 !== -1);\r\n }\r\n toString() {\r\n let result = \"\";\r\n let isHexOnly = false;\r\n for (let i = 0; i < this.value.length; i++) {\r\n isHexOnly = this.value[i].isHexOnly;\r\n let sidStr = this.value[i].toString();\r\n if (i !== 0)\r\n result = `${result}.`;\r\n if (isHexOnly) {\r\n sidStr = `{${sidStr}}`;\r\n if (this.value[i].isFirstSid)\r\n result = `2.{${sidStr} - 80}`;\r\n else\r\n result += sidStr;\r\n }\r\n else\r\n result += sidStr;\r\n }\r\n return result;\r\n }\r\n toJSON() {\r\n const object = {\r\n ...super.toJSON(),\r\n value: this.toString(),\r\n sidArray: [],\r\n };\r\n for (let i = 0; i < this.value.length; i++) {\r\n object.sidArray.push(this.value[i].toJSON());\r\n }\r\n return object;\r\n }\r\n}\r\nLocalObjectIdentifierValueBlock.NAME = \"ObjectIdentifierValueBlock\";\n\nvar _a$m;\r\nclass ObjectIdentifier extends BaseBlock {\r\n constructor(parameters = {}) {\r\n super(parameters, LocalObjectIdentifierValueBlock);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 6;\r\n }\r\n getValue() {\r\n return this.valueBlock.toString();\r\n }\r\n setValue(value) {\r\n this.valueBlock.fromString(value);\r\n }\r\n onAsciiEncoding() {\r\n return `${this.constructor.NAME} : ${this.valueBlock.toString() || \"empty\"}`;\r\n }\r\n toJSON() {\r\n return {\r\n ...super.toJSON(),\r\n value: this.getValue(),\r\n };\r\n }\r\n}\r\n_a$m = ObjectIdentifier;\r\n(() => {\r\n typeStore.ObjectIdentifier = _a$m;\r\n})();\r\nObjectIdentifier.NAME = \"OBJECT IDENTIFIER\";\n\nclass LocalRelativeSidValueBlock extends HexBlock(LocalBaseBlock) {\r\n constructor({ valueDec = 0, ...parameters } = {}) {\r\n super(parameters);\r\n this.valueDec = valueDec;\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n if (inputLength === 0)\r\n return inputOffset;\r\n const inputView = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\r\n if (!checkBufferParams(this, inputView, inputOffset, inputLength))\r\n return -1;\r\n const intBuffer = inputView.subarray(inputOffset, inputOffset + inputLength);\r\n this.valueHexView = new Uint8Array(inputLength);\r\n for (let i = 0; i < inputLength; i++) {\r\n this.valueHexView[i] = intBuffer[i] & 0x7F;\r\n this.blockLength++;\r\n if ((intBuffer[i] & 0x80) === 0x00)\r\n break;\r\n }\r\n const tempView = new Uint8Array(this.blockLength);\r\n for (let i = 0; i < this.blockLength; i++)\r\n tempView[i] = this.valueHexView[i];\r\n this.valueHexView = tempView;\r\n if ((intBuffer[this.blockLength - 1] & 0x80) !== 0x00) {\r\n this.error = \"End of input reached before message was fully decoded\";\r\n return -1;\r\n }\r\n if (this.valueHexView[0] === 0x00)\r\n this.warnings.push(\"Needlessly long format of SID encoding\");\r\n if (this.blockLength <= 8)\r\n this.valueDec = pvutils.utilFromBase(this.valueHexView, 7);\r\n else {\r\n this.isHexOnly = true;\r\n this.warnings.push(\"Too big SID for decoding, hex only\");\r\n }\r\n return (inputOffset + this.blockLength);\r\n }\r\n toBER(sizeOnly) {\r\n if (this.isHexOnly) {\r\n if (sizeOnly)\r\n return (new ArrayBuffer(this.valueHexView.byteLength));\r\n const curView = this.valueHexView;\r\n const retView = new Uint8Array(this.blockLength);\r\n for (let i = 0; i < (this.blockLength - 1); i++)\r\n retView[i] = curView[i] | 0x80;\r\n retView[this.blockLength - 1] = curView[this.blockLength - 1];\r\n return retView.buffer;\r\n }\r\n const encodedBuf = pvutils.utilToBase(this.valueDec, 7);\r\n if (encodedBuf.byteLength === 0) {\r\n this.error = \"Error during encoding SID value\";\r\n return EMPTY_BUFFER;\r\n }\r\n const retView = new Uint8Array(encodedBuf.byteLength);\r\n if (!sizeOnly) {\r\n const encodedView = new Uint8Array(encodedBuf);\r\n const len = encodedBuf.byteLength - 1;\r\n for (let i = 0; i < len; i++)\r\n retView[i] = encodedView[i] | 0x80;\r\n retView[len] = encodedView[len];\r\n }\r\n return retView.buffer;\r\n }\r\n toString() {\r\n let result = \"\";\r\n if (this.isHexOnly)\r\n result = pvtsutils.Convert.ToHex(this.valueHexView);\r\n else {\r\n result = this.valueDec.toString();\r\n }\r\n return result;\r\n }\r\n toJSON() {\r\n return {\r\n ...super.toJSON(),\r\n valueDec: this.valueDec,\r\n };\r\n }\r\n}\r\nLocalRelativeSidValueBlock.NAME = \"relativeSidBlock\";\n\nclass LocalRelativeObjectIdentifierValueBlock extends ValueBlock {\r\n constructor({ value = EMPTY_STRING, ...parameters } = {}) {\r\n super(parameters);\r\n this.value = [];\r\n if (value) {\r\n this.fromString(value);\r\n }\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n let resultOffset = inputOffset;\r\n while (inputLength > 0) {\r\n const sidBlock = new LocalRelativeSidValueBlock();\r\n resultOffset = sidBlock.fromBER(inputBuffer, resultOffset, inputLength);\r\n if (resultOffset === -1) {\r\n this.blockLength = 0;\r\n this.error = sidBlock.error;\r\n return resultOffset;\r\n }\r\n this.blockLength += sidBlock.blockLength;\r\n inputLength -= sidBlock.blockLength;\r\n this.value.push(sidBlock);\r\n }\r\n return resultOffset;\r\n }\r\n toBER(sizeOnly, writer) {\r\n const retBuffers = [];\r\n for (let i = 0; i < this.value.length; i++) {\r\n const valueBuf = this.value[i].toBER(sizeOnly);\r\n if (valueBuf.byteLength === 0) {\r\n this.error = this.value[i].error;\r\n return EMPTY_BUFFER;\r\n }\r\n retBuffers.push(valueBuf);\r\n }\r\n return concat(retBuffers);\r\n }\r\n fromString(string) {\r\n this.value = [];\r\n let pos1 = 0;\r\n let pos2 = 0;\r\n let sid = \"\";\r\n do {\r\n pos2 = string.indexOf(\".\", pos1);\r\n if (pos2 === -1)\r\n sid = string.substring(pos1);\r\n else\r\n sid = string.substring(pos1, pos2);\r\n pos1 = pos2 + 1;\r\n const sidBlock = new LocalRelativeSidValueBlock();\r\n sidBlock.valueDec = parseInt(sid, 10);\r\n if (isNaN(sidBlock.valueDec))\r\n return true;\r\n this.value.push(sidBlock);\r\n } while (pos2 !== -1);\r\n return true;\r\n }\r\n toString() {\r\n let result = \"\";\r\n let isHexOnly = false;\r\n for (let i = 0; i < this.value.length; i++) {\r\n isHexOnly = this.value[i].isHexOnly;\r\n let sidStr = this.value[i].toString();\r\n if (i !== 0)\r\n result = `${result}.`;\r\n if (isHexOnly) {\r\n sidStr = `{${sidStr}}`;\r\n result += sidStr;\r\n }\r\n else\r\n result += sidStr;\r\n }\r\n return result;\r\n }\r\n toJSON() {\r\n const object = {\r\n ...super.toJSON(),\r\n value: this.toString(),\r\n sidArray: [],\r\n };\r\n for (let i = 0; i < this.value.length; i++)\r\n object.sidArray.push(this.value[i].toJSON());\r\n return object;\r\n }\r\n}\r\nLocalRelativeObjectIdentifierValueBlock.NAME = \"RelativeObjectIdentifierValueBlock\";\n\nvar _a$l;\r\nclass RelativeObjectIdentifier extends BaseBlock {\r\n constructor(parameters = {}) {\r\n super(parameters, LocalRelativeObjectIdentifierValueBlock);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 13;\r\n }\r\n getValue() {\r\n return this.valueBlock.toString();\r\n }\r\n setValue(value) {\r\n this.valueBlock.fromString(value);\r\n }\r\n onAsciiEncoding() {\r\n return `${this.constructor.NAME} : ${this.valueBlock.toString() || \"empty\"}`;\r\n }\r\n toJSON() {\r\n return {\r\n ...super.toJSON(),\r\n value: this.getValue(),\r\n };\r\n }\r\n}\r\n_a$l = RelativeObjectIdentifier;\r\n(() => {\r\n typeStore.RelativeObjectIdentifier = _a$l;\r\n})();\r\nRelativeObjectIdentifier.NAME = \"RelativeObjectIdentifier\";\n\nvar _a$k;\r\nclass Sequence extends Constructed {\r\n constructor(parameters = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 16;\r\n }\r\n}\r\n_a$k = Sequence;\r\n(() => {\r\n typeStore.Sequence = _a$k;\r\n})();\r\nSequence.NAME = \"SEQUENCE\";\n\nvar _a$j;\r\nclass Set extends Constructed {\r\n constructor(parameters = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 17;\r\n }\r\n}\r\n_a$j = Set;\r\n(() => {\r\n typeStore.Set = _a$j;\r\n})();\r\nSet.NAME = \"SET\";\n\nclass LocalStringValueBlock extends HexBlock(ValueBlock) {\r\n constructor({ ...parameters } = {}) {\r\n super(parameters);\r\n this.isHexOnly = true;\r\n this.value = EMPTY_STRING;\r\n }\r\n toJSON() {\r\n return {\r\n ...super.toJSON(),\r\n value: this.value,\r\n };\r\n }\r\n}\r\nLocalStringValueBlock.NAME = \"StringValueBlock\";\n\nclass LocalSimpleStringValueBlock extends LocalStringValueBlock {\r\n}\r\nLocalSimpleStringValueBlock.NAME = \"SimpleStringValueBlock\";\n\nclass LocalSimpleStringBlock extends BaseStringBlock {\r\n constructor({ ...parameters } = {}) {\r\n super(parameters, LocalSimpleStringValueBlock);\r\n }\r\n fromBuffer(inputBuffer) {\r\n this.valueBlock.value = String.fromCharCode.apply(null, pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer));\r\n }\r\n fromString(inputString) {\r\n const strLen = inputString.length;\r\n const view = this.valueBlock.valueHexView = new Uint8Array(strLen);\r\n for (let i = 0; i < strLen; i++)\r\n view[i] = inputString.charCodeAt(i);\r\n this.valueBlock.value = inputString;\r\n }\r\n}\r\nLocalSimpleStringBlock.NAME = \"SIMPLE STRING\";\n\nclass LocalUtf8StringValueBlock extends LocalSimpleStringBlock {\r\n fromBuffer(inputBuffer) {\r\n this.valueBlock.valueHexView = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\r\n try {\r\n this.valueBlock.value = pvtsutils.Convert.ToUtf8String(inputBuffer);\r\n }\r\n catch (ex) {\r\n this.warnings.push(`Error during \"decodeURIComponent\": ${ex}, using raw string`);\r\n this.valueBlock.value = pvtsutils.Convert.ToBinary(inputBuffer);\r\n }\r\n }\r\n fromString(inputString) {\r\n this.valueBlock.valueHexView = new Uint8Array(pvtsutils.Convert.FromUtf8String(inputString));\r\n this.valueBlock.value = inputString;\r\n }\r\n}\r\nLocalUtf8StringValueBlock.NAME = \"Utf8StringValueBlock\";\n\nvar _a$i;\r\nclass Utf8String extends LocalUtf8StringValueBlock {\r\n constructor(parameters = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 12;\r\n }\r\n}\r\n_a$i = Utf8String;\r\n(() => {\r\n typeStore.Utf8String = _a$i;\r\n})();\r\nUtf8String.NAME = \"UTF8String\";\n\nclass LocalBmpStringValueBlock extends LocalSimpleStringBlock {\r\n fromBuffer(inputBuffer) {\r\n this.valueBlock.value = pvtsutils.Convert.ToUtf16String(inputBuffer);\r\n this.valueBlock.valueHexView = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\r\n }\r\n fromString(inputString) {\r\n this.valueBlock.value = inputString;\r\n this.valueBlock.valueHexView = new Uint8Array(pvtsutils.Convert.FromUtf16String(inputString));\r\n }\r\n}\r\nLocalBmpStringValueBlock.NAME = \"BmpStringValueBlock\";\n\nvar _a$h;\r\nclass BmpString extends LocalBmpStringValueBlock {\r\n constructor({ ...parameters } = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 30;\r\n }\r\n}\r\n_a$h = BmpString;\r\n(() => {\r\n typeStore.BmpString = _a$h;\r\n})();\r\nBmpString.NAME = \"BMPString\";\n\nclass LocalUniversalStringValueBlock extends LocalSimpleStringBlock {\r\n fromBuffer(inputBuffer) {\r\n const copyBuffer = ArrayBuffer.isView(inputBuffer) ? inputBuffer.slice().buffer : inputBuffer.slice(0);\r\n const valueView = new Uint8Array(copyBuffer);\r\n for (let i = 0; i < valueView.length; i += 4) {\r\n valueView[i] = valueView[i + 3];\r\n valueView[i + 1] = valueView[i + 2];\r\n valueView[i + 2] = 0x00;\r\n valueView[i + 3] = 0x00;\r\n }\r\n this.valueBlock.value = String.fromCharCode.apply(null, new Uint32Array(copyBuffer));\r\n }\r\n fromString(inputString) {\r\n const strLength = inputString.length;\r\n const valueHexView = this.valueBlock.valueHexView = new Uint8Array(strLength * 4);\r\n for (let i = 0; i < strLength; i++) {\r\n const codeBuf = pvutils.utilToBase(inputString.charCodeAt(i), 8);\r\n const codeView = new Uint8Array(codeBuf);\r\n if (codeView.length > 4)\r\n continue;\r\n const dif = 4 - codeView.length;\r\n for (let j = (codeView.length - 1); j >= 0; j--)\r\n valueHexView[i * 4 + j + dif] = codeView[j];\r\n }\r\n this.valueBlock.value = inputString;\r\n }\r\n}\r\nLocalUniversalStringValueBlock.NAME = \"UniversalStringValueBlock\";\n\nvar _a$g;\r\nclass UniversalString extends LocalUniversalStringValueBlock {\r\n constructor({ ...parameters } = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 28;\r\n }\r\n}\r\n_a$g = UniversalString;\r\n(() => {\r\n typeStore.UniversalString = _a$g;\r\n})();\r\nUniversalString.NAME = \"UniversalString\";\n\nvar _a$f;\r\nclass NumericString extends LocalSimpleStringBlock {\r\n constructor(parameters = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 18;\r\n }\r\n}\r\n_a$f = NumericString;\r\n(() => {\r\n typeStore.NumericString = _a$f;\r\n})();\r\nNumericString.NAME = \"NumericString\";\n\nvar _a$e;\r\nclass PrintableString extends LocalSimpleStringBlock {\r\n constructor(parameters = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 19;\r\n }\r\n}\r\n_a$e = PrintableString;\r\n(() => {\r\n typeStore.PrintableString = _a$e;\r\n})();\r\nPrintableString.NAME = \"PrintableString\";\n\nvar _a$d;\r\nclass TeletexString extends LocalSimpleStringBlock {\r\n constructor(parameters = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 20;\r\n }\r\n}\r\n_a$d = TeletexString;\r\n(() => {\r\n typeStore.TeletexString = _a$d;\r\n})();\r\nTeletexString.NAME = \"TeletexString\";\n\nvar _a$c;\r\nclass VideotexString extends LocalSimpleStringBlock {\r\n constructor(parameters = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 21;\r\n }\r\n}\r\n_a$c = VideotexString;\r\n(() => {\r\n typeStore.VideotexString = _a$c;\r\n})();\r\nVideotexString.NAME = \"VideotexString\";\n\nvar _a$b;\r\nclass IA5String extends LocalSimpleStringBlock {\r\n constructor(parameters = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 22;\r\n }\r\n}\r\n_a$b = IA5String;\r\n(() => {\r\n typeStore.IA5String = _a$b;\r\n})();\r\nIA5String.NAME = \"IA5String\";\n\nvar _a$a;\r\nclass GraphicString extends LocalSimpleStringBlock {\r\n constructor(parameters = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 25;\r\n }\r\n}\r\n_a$a = GraphicString;\r\n(() => {\r\n typeStore.GraphicString = _a$a;\r\n})();\r\nGraphicString.NAME = \"GraphicString\";\n\nvar _a$9;\r\nclass VisibleString extends LocalSimpleStringBlock {\r\n constructor(parameters = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 26;\r\n }\r\n}\r\n_a$9 = VisibleString;\r\n(() => {\r\n typeStore.VisibleString = _a$9;\r\n})();\r\nVisibleString.NAME = \"VisibleString\";\n\nvar _a$8;\r\nclass GeneralString extends LocalSimpleStringBlock {\r\n constructor(parameters = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 27;\r\n }\r\n}\r\n_a$8 = GeneralString;\r\n(() => {\r\n typeStore.GeneralString = _a$8;\r\n})();\r\nGeneralString.NAME = \"GeneralString\";\n\nvar _a$7;\r\nclass CharacterString extends LocalSimpleStringBlock {\r\n constructor(parameters = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 29;\r\n }\r\n}\r\n_a$7 = CharacterString;\r\n(() => {\r\n typeStore.CharacterString = _a$7;\r\n})();\r\nCharacterString.NAME = \"CharacterString\";\n\nvar _a$6;\r\nclass UTCTime extends VisibleString {\r\n constructor({ value, valueDate, ...parameters } = {}) {\r\n super(parameters);\r\n this.year = 0;\r\n this.month = 0;\r\n this.day = 0;\r\n this.hour = 0;\r\n this.minute = 0;\r\n this.second = 0;\r\n if (value) {\r\n this.fromString(value);\r\n this.valueBlock.valueHexView = new Uint8Array(value.length);\r\n for (let i = 0; i < value.length; i++)\r\n this.valueBlock.valueHexView[i] = value.charCodeAt(i);\r\n }\r\n if (valueDate) {\r\n this.fromDate(valueDate);\r\n this.valueBlock.valueHexView = new Uint8Array(this.toBuffer());\r\n }\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 23;\r\n }\r\n fromBuffer(inputBuffer) {\r\n this.fromString(String.fromCharCode.apply(null, pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer)));\r\n }\r\n toBuffer() {\r\n const str = this.toString();\r\n const buffer = new ArrayBuffer(str.length);\r\n const view = new Uint8Array(buffer);\r\n for (let i = 0; i < str.length; i++)\r\n view[i] = str.charCodeAt(i);\r\n return buffer;\r\n }\r\n fromDate(inputDate) {\r\n this.year = inputDate.getUTCFullYear();\r\n this.month = inputDate.getUTCMonth() + 1;\r\n this.day = inputDate.getUTCDate();\r\n this.hour = inputDate.getUTCHours();\r\n this.minute = inputDate.getUTCMinutes();\r\n this.second = inputDate.getUTCSeconds();\r\n }\r\n toDate() {\r\n return (new Date(Date.UTC(this.year, this.month - 1, this.day, this.hour, this.minute, this.second)));\r\n }\r\n fromString(inputString) {\r\n const parser = /(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})Z/ig;\r\n const parserArray = parser.exec(inputString);\r\n if (parserArray === null) {\r\n this.error = \"Wrong input string for conversion\";\r\n return;\r\n }\r\n const year = parseInt(parserArray[1], 10);\r\n if (year >= 50)\r\n this.year = 1900 + year;\r\n else\r\n this.year = 2000 + year;\r\n this.month = parseInt(parserArray[2], 10);\r\n this.day = parseInt(parserArray[3], 10);\r\n this.hour = parseInt(parserArray[4], 10);\r\n this.minute = parseInt(parserArray[5], 10);\r\n this.second = parseInt(parserArray[6], 10);\r\n }\r\n toString(encoding = \"iso\") {\r\n if (encoding === \"iso\") {\r\n const outputArray = new Array(7);\r\n outputArray[0] = pvutils.padNumber(((this.year < 2000) ? (this.year - 1900) : (this.year - 2000)), 2);\r\n outputArray[1] = pvutils.padNumber(this.month, 2);\r\n outputArray[2] = pvutils.padNumber(this.day, 2);\r\n outputArray[3] = pvutils.padNumber(this.hour, 2);\r\n outputArray[4] = pvutils.padNumber(this.minute, 2);\r\n outputArray[5] = pvutils.padNumber(this.second, 2);\r\n outputArray[6] = \"Z\";\r\n return outputArray.join(\"\");\r\n }\r\n return super.toString(encoding);\r\n }\r\n onAsciiEncoding() {\r\n return `${this.constructor.NAME} : ${this.toDate().toISOString()}`;\r\n }\r\n toJSON() {\r\n return {\r\n ...super.toJSON(),\r\n year: this.year,\r\n month: this.month,\r\n day: this.day,\r\n hour: this.hour,\r\n minute: this.minute,\r\n second: this.second,\r\n };\r\n }\r\n}\r\n_a$6 = UTCTime;\r\n(() => {\r\n typeStore.UTCTime = _a$6;\r\n})();\r\nUTCTime.NAME = \"UTCTime\";\n\nvar _a$5;\r\nclass GeneralizedTime extends UTCTime {\r\n constructor(parameters = {}) {\r\n var _b;\r\n super(parameters);\r\n (_b = this.millisecond) !== null && _b !== void 0 ? _b : (this.millisecond = 0);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 24;\r\n }\r\n fromDate(inputDate) {\r\n super.fromDate(inputDate);\r\n this.millisecond = inputDate.getUTCMilliseconds();\r\n }\r\n toDate() {\r\n return (new Date(Date.UTC(this.year, this.month - 1, this.day, this.hour, this.minute, this.second, this.millisecond)));\r\n }\r\n fromString(inputString) {\r\n let isUTC = false;\r\n let timeString = \"\";\r\n let dateTimeString = \"\";\r\n let fractionPart = 0;\r\n let parser;\r\n let hourDifference = 0;\r\n let minuteDifference = 0;\r\n if (inputString[inputString.length - 1] === \"Z\") {\r\n timeString = inputString.substring(0, inputString.length - 1);\r\n isUTC = true;\r\n }\r\n else {\r\n const number = new Number(inputString[inputString.length - 1]);\r\n if (isNaN(number.valueOf()))\r\n throw new Error(\"Wrong input string for conversion\");\r\n timeString = inputString;\r\n }\r\n if (isUTC) {\r\n if (timeString.indexOf(\"+\") !== -1)\r\n throw new Error(\"Wrong input string for conversion\");\r\n if (timeString.indexOf(\"-\") !== -1)\r\n throw new Error(\"Wrong input string for conversion\");\r\n }\r\n else {\r\n let multiplier = 1;\r\n let differencePosition = timeString.indexOf(\"+\");\r\n let differenceString = \"\";\r\n if (differencePosition === -1) {\r\n differencePosition = timeString.indexOf(\"-\");\r\n multiplier = -1;\r\n }\r\n if (differencePosition !== -1) {\r\n differenceString = timeString.substring(differencePosition + 1);\r\n timeString = timeString.substring(0, differencePosition);\r\n if ((differenceString.length !== 2) && (differenceString.length !== 4))\r\n throw new Error(\"Wrong input string for conversion\");\r\n let number = parseInt(differenceString.substring(0, 2), 10);\r\n if (isNaN(number.valueOf()))\r\n throw new Error(\"Wrong input string for conversion\");\r\n hourDifference = multiplier * number;\r\n if (differenceString.length === 4) {\r\n number = parseInt(differenceString.substring(2, 4), 10);\r\n if (isNaN(number.valueOf()))\r\n throw new Error(\"Wrong input string for conversion\");\r\n minuteDifference = multiplier * number;\r\n }\r\n }\r\n }\r\n let fractionPointPosition = timeString.indexOf(\".\");\r\n if (fractionPointPosition === -1)\r\n fractionPointPosition = timeString.indexOf(\",\");\r\n if (fractionPointPosition !== -1) {\r\n const fractionPartCheck = new Number(`0${timeString.substring(fractionPointPosition)}`);\r\n if (isNaN(fractionPartCheck.valueOf()))\r\n throw new Error(\"Wrong input string for conversion\");\r\n fractionPart = fractionPartCheck.valueOf();\r\n dateTimeString = timeString.substring(0, fractionPointPosition);\r\n }\r\n else\r\n dateTimeString = timeString;\r\n switch (true) {\r\n case (dateTimeString.length === 8):\r\n parser = /(\\d{4})(\\d{2})(\\d{2})/ig;\r\n if (fractionPointPosition !== -1)\r\n throw new Error(\"Wrong input string for conversion\");\r\n break;\r\n case (dateTimeString.length === 10):\r\n parser = /(\\d{4})(\\d{2})(\\d{2})(\\d{2})/ig;\r\n if (fractionPointPosition !== -1) {\r\n let fractionResult = 60 * fractionPart;\r\n this.minute = Math.floor(fractionResult);\r\n fractionResult = 60 * (fractionResult - this.minute);\r\n this.second = Math.floor(fractionResult);\r\n fractionResult = 1000 * (fractionResult - this.second);\r\n this.millisecond = Math.floor(fractionResult);\r\n }\r\n break;\r\n case (dateTimeString.length === 12):\r\n parser = /(\\d{4})(\\d{2})(\\d{2})(\\d{2})(\\d{2})/ig;\r\n if (fractionPointPosition !== -1) {\r\n let fractionResult = 60 * fractionPart;\r\n this.second = Math.floor(fractionResult);\r\n fractionResult = 1000 * (fractionResult - this.second);\r\n this.millisecond = Math.floor(fractionResult);\r\n }\r\n break;\r\n case (dateTimeString.length === 14):\r\n parser = /(\\d{4})(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})/ig;\r\n if (fractionPointPosition !== -1) {\r\n const fractionResult = 1000 * fractionPart;\r\n this.millisecond = Math.floor(fractionResult);\r\n }\r\n break;\r\n default:\r\n throw new Error(\"Wrong input string for conversion\");\r\n }\r\n const parserArray = parser.exec(dateTimeString);\r\n if (parserArray === null)\r\n throw new Error(\"Wrong input string for conversion\");\r\n for (let j = 1; j < parserArray.length; j++) {\r\n switch (j) {\r\n case 1:\r\n this.year = parseInt(parserArray[j], 10);\r\n break;\r\n case 2:\r\n this.month = parseInt(parserArray[j], 10);\r\n break;\r\n case 3:\r\n this.day = parseInt(parserArray[j], 10);\r\n break;\r\n case 4:\r\n this.hour = parseInt(parserArray[j], 10) + hourDifference;\r\n break;\r\n case 5:\r\n this.minute = parseInt(parserArray[j], 10) + minuteDifference;\r\n break;\r\n case 6:\r\n this.second = parseInt(parserArray[j], 10);\r\n break;\r\n default:\r\n throw new Error(\"Wrong input string for conversion\");\r\n }\r\n }\r\n if (isUTC === false) {\r\n const tempDate = new Date(this.year, this.month, this.day, this.hour, this.minute, this.second, this.millisecond);\r\n this.year = tempDate.getUTCFullYear();\r\n this.month = tempDate.getUTCMonth();\r\n this.day = tempDate.getUTCDay();\r\n this.hour = tempDate.getUTCHours();\r\n this.minute = tempDate.getUTCMinutes();\r\n this.second = tempDate.getUTCSeconds();\r\n this.millisecond = tempDate.getUTCMilliseconds();\r\n }\r\n }\r\n toString(encoding = \"iso\") {\r\n if (encoding === \"iso\") {\r\n const outputArray = [];\r\n outputArray.push(pvutils.padNumber(this.year, 4));\r\n outputArray.push(pvutils.padNumber(this.month, 2));\r\n outputArray.push(pvutils.padNumber(this.day, 2));\r\n outputArray.push(pvutils.padNumber(this.hour, 2));\r\n outputArray.push(pvutils.padNumber(this.minute, 2));\r\n outputArray.push(pvutils.padNumber(this.second, 2));\r\n if (this.millisecond !== 0) {\r\n outputArray.push(\".\");\r\n outputArray.push(pvutils.padNumber(this.millisecond, 3));\r\n }\r\n outputArray.push(\"Z\");\r\n return outputArray.join(\"\");\r\n }\r\n return super.toString(encoding);\r\n }\r\n toJSON() {\r\n return {\r\n ...super.toJSON(),\r\n millisecond: this.millisecond,\r\n };\r\n }\r\n}\r\n_a$5 = GeneralizedTime;\r\n(() => {\r\n typeStore.GeneralizedTime = _a$5;\r\n})();\r\nGeneralizedTime.NAME = \"GeneralizedTime\";\n\nvar _a$4;\r\nclass DATE extends Utf8String {\r\n constructor(parameters = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 31;\r\n }\r\n}\r\n_a$4 = DATE;\r\n(() => {\r\n typeStore.DATE = _a$4;\r\n})();\r\nDATE.NAME = \"DATE\";\n\nvar _a$3;\r\nclass TimeOfDay extends Utf8String {\r\n constructor(parameters = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 32;\r\n }\r\n}\r\n_a$3 = TimeOfDay;\r\n(() => {\r\n typeStore.TimeOfDay = _a$3;\r\n})();\r\nTimeOfDay.NAME = \"TimeOfDay\";\n\nvar _a$2;\r\nclass DateTime extends Utf8String {\r\n constructor(parameters = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 33;\r\n }\r\n}\r\n_a$2 = DateTime;\r\n(() => {\r\n typeStore.DateTime = _a$2;\r\n})();\r\nDateTime.NAME = \"DateTime\";\n\nvar _a$1;\r\nclass Duration extends Utf8String {\r\n constructor(parameters = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 34;\r\n }\r\n}\r\n_a$1 = Duration;\r\n(() => {\r\n typeStore.Duration = _a$1;\r\n})();\r\nDuration.NAME = \"Duration\";\n\nvar _a;\r\nclass TIME extends Utf8String {\r\n constructor(parameters = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 14;\r\n }\r\n}\r\n_a = TIME;\r\n(() => {\r\n typeStore.TIME = _a;\r\n})();\r\nTIME.NAME = \"TIME\";\n\nclass Any {\r\n constructor({ name = EMPTY_STRING, optional = false, } = {}) {\r\n this.name = name;\r\n this.optional = optional;\r\n }\r\n}\n\nclass Choice extends Any {\r\n constructor({ value = [], ...parameters } = {}) {\r\n super(parameters);\r\n this.value = value;\r\n }\r\n}\n\nclass Repeated extends Any {\r\n constructor({ value = new Any(), local = false, ...parameters } = {}) {\r\n super(parameters);\r\n this.value = value;\r\n this.local = local;\r\n }\r\n}\n\nclass RawData {\r\n constructor({ data = EMPTY_VIEW } = {}) {\r\n this.dataView = pvtsutils.BufferSourceConverter.toUint8Array(data);\r\n }\r\n get data() {\r\n return this.dataView.slice().buffer;\r\n }\r\n set data(value) {\r\n this.dataView = pvtsutils.BufferSourceConverter.toUint8Array(value);\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n const endLength = inputOffset + inputLength;\r\n this.dataView = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer).subarray(inputOffset, endLength);\r\n return endLength;\r\n }\r\n toBER(sizeOnly) {\r\n return this.dataView.slice().buffer;\r\n }\r\n}\n\nfunction compareSchema(root, inputData, inputSchema) {\r\n if (inputSchema instanceof Choice) {\r\n for (let j = 0; j < inputSchema.value.length; j++) {\r\n const result = compareSchema(root, inputData, inputSchema.value[j]);\r\n if (result.verified) {\r\n return {\r\n verified: true,\r\n result: root\r\n };\r\n }\r\n }\r\n {\r\n const _result = {\r\n verified: false,\r\n result: {\r\n error: \"Wrong values for Choice type\"\r\n },\r\n };\r\n if (inputSchema.hasOwnProperty(NAME))\r\n _result.name = inputSchema.name;\r\n return _result;\r\n }\r\n }\r\n if (inputSchema instanceof Any) {\r\n if (inputSchema.hasOwnProperty(NAME))\r\n root[inputSchema.name] = inputData;\r\n return {\r\n verified: true,\r\n result: root\r\n };\r\n }\r\n if ((root instanceof Object) === false) {\r\n return {\r\n verified: false,\r\n result: { error: \"Wrong root object\" }\r\n };\r\n }\r\n if ((inputData instanceof Object) === false) {\r\n return {\r\n verified: false,\r\n result: { error: \"Wrong ASN.1 data\" }\r\n };\r\n }\r\n if ((inputSchema instanceof Object) === false) {\r\n return {\r\n verified: false,\r\n result: { error: \"Wrong ASN.1 schema\" }\r\n };\r\n }\r\n if ((ID_BLOCK in inputSchema) === false) {\r\n return {\r\n verified: false,\r\n result: { error: \"Wrong ASN.1 schema\" }\r\n };\r\n }\r\n if ((FROM_BER in inputSchema.idBlock) === false) {\r\n return {\r\n verified: false,\r\n result: { error: \"Wrong ASN.1 schema\" }\r\n };\r\n }\r\n if ((TO_BER in inputSchema.idBlock) === false) {\r\n return {\r\n verified: false,\r\n result: { error: \"Wrong ASN.1 schema\" }\r\n };\r\n }\r\n const encodedId = inputSchema.idBlock.toBER(false);\r\n if (encodedId.byteLength === 0) {\r\n return {\r\n verified: false,\r\n result: { error: \"Error encoding idBlock for ASN.1 schema\" }\r\n };\r\n }\r\n const decodedOffset = inputSchema.idBlock.fromBER(encodedId, 0, encodedId.byteLength);\r\n if (decodedOffset === -1) {\r\n return {\r\n verified: false,\r\n result: { error: \"Error decoding idBlock for ASN.1 schema\" }\r\n };\r\n }\r\n if (inputSchema.idBlock.hasOwnProperty(TAG_CLASS) === false) {\r\n return {\r\n verified: false,\r\n result: { error: \"Wrong ASN.1 schema\" }\r\n };\r\n }\r\n if (inputSchema.idBlock.tagClass !== inputData.idBlock.tagClass) {\r\n return {\r\n verified: false,\r\n result: root\r\n };\r\n }\r\n if (inputSchema.idBlock.hasOwnProperty(TAG_NUMBER) === false) {\r\n return {\r\n verified: false,\r\n result: { error: \"Wrong ASN.1 schema\" }\r\n };\r\n }\r\n if (inputSchema.idBlock.tagNumber !== inputData.idBlock.tagNumber) {\r\n return {\r\n verified: false,\r\n result: root\r\n };\r\n }\r\n if (inputSchema.idBlock.hasOwnProperty(IS_CONSTRUCTED) === false) {\r\n return {\r\n verified: false,\r\n result: { error: \"Wrong ASN.1 schema\" }\r\n };\r\n }\r\n if (inputSchema.idBlock.isConstructed !== inputData.idBlock.isConstructed) {\r\n return {\r\n verified: false,\r\n result: root\r\n };\r\n }\r\n if (!(IS_HEX_ONLY in inputSchema.idBlock)) {\r\n return {\r\n verified: false,\r\n result: { error: \"Wrong ASN.1 schema\" }\r\n };\r\n }\r\n if (inputSchema.idBlock.isHexOnly !== inputData.idBlock.isHexOnly) {\r\n return {\r\n verified: false,\r\n result: root\r\n };\r\n }\r\n if (inputSchema.idBlock.isHexOnly) {\r\n if ((VALUE_HEX_VIEW in inputSchema.idBlock) === false) {\r\n return {\r\n verified: false,\r\n result: { error: \"Wrong ASN.1 schema\" }\r\n };\r\n }\r\n const schemaView = inputSchema.idBlock.valueHexView;\r\n const asn1View = inputData.idBlock.valueHexView;\r\n if (schemaView.length !== asn1View.length) {\r\n return {\r\n verified: false,\r\n result: root\r\n };\r\n }\r\n for (let i = 0; i < schemaView.length; i++) {\r\n if (schemaView[i] !== asn1View[1]) {\r\n return {\r\n verified: false,\r\n result: root\r\n };\r\n }\r\n }\r\n }\r\n if (inputSchema.name) {\r\n inputSchema.name = inputSchema.name.replace(/^\\s+|\\s+$/g, EMPTY_STRING);\r\n if (inputSchema.name)\r\n root[inputSchema.name] = inputData;\r\n }\r\n if (inputSchema instanceof typeStore.Constructed) {\r\n let admission = 0;\r\n let result = {\r\n verified: false,\r\n result: {\r\n error: \"Unknown error\",\r\n }\r\n };\r\n let maxLength = inputSchema.valueBlock.value.length;\r\n if (maxLength > 0) {\r\n if (inputSchema.valueBlock.value[0] instanceof Repeated) {\r\n maxLength = inputData.valueBlock.value.length;\r\n }\r\n }\r\n if (maxLength === 0) {\r\n return {\r\n verified: true,\r\n result: root\r\n };\r\n }\r\n if ((inputData.valueBlock.value.length === 0) &&\r\n (inputSchema.valueBlock.value.length !== 0)) {\r\n let _optional = true;\r\n for (let i = 0; i < inputSchema.valueBlock.value.length; i++)\r\n _optional = _optional && (inputSchema.valueBlock.value[i].optional || false);\r\n if (_optional) {\r\n return {\r\n verified: true,\r\n result: root\r\n };\r\n }\r\n if (inputSchema.name) {\r\n inputSchema.name = inputSchema.name.replace(/^\\s+|\\s+$/g, EMPTY_STRING);\r\n if (inputSchema.name)\r\n delete root[inputSchema.name];\r\n }\r\n root.error = \"Inconsistent object length\";\r\n return {\r\n verified: false,\r\n result: root\r\n };\r\n }\r\n for (let i = 0; i < maxLength; i++) {\r\n if ((i - admission) >= inputData.valueBlock.value.length) {\r\n if (inputSchema.valueBlock.value[i].optional === false) {\r\n const _result = {\r\n verified: false,\r\n result: root\r\n };\r\n root.error = \"Inconsistent length between ASN.1 data and schema\";\r\n if (inputSchema.name) {\r\n inputSchema.name = inputSchema.name.replace(/^\\s+|\\s+$/g, EMPTY_STRING);\r\n if (inputSchema.name) {\r\n delete root[inputSchema.name];\r\n _result.name = inputSchema.name;\r\n }\r\n }\r\n return _result;\r\n }\r\n }\r\n else {\r\n if (inputSchema.valueBlock.value[0] instanceof Repeated) {\r\n result = compareSchema(root, inputData.valueBlock.value[i], inputSchema.valueBlock.value[0].value);\r\n if (result.verified === false) {\r\n if (inputSchema.valueBlock.value[0].optional)\r\n admission++;\r\n else {\r\n if (inputSchema.name) {\r\n inputSchema.name = inputSchema.name.replace(/^\\s+|\\s+$/g, EMPTY_STRING);\r\n if (inputSchema.name)\r\n delete root[inputSchema.name];\r\n }\r\n return result;\r\n }\r\n }\r\n if ((NAME in inputSchema.valueBlock.value[0]) && (inputSchema.valueBlock.value[0].name.length > 0)) {\r\n let arrayRoot = {};\r\n if ((LOCAL in inputSchema.valueBlock.value[0]) && (inputSchema.valueBlock.value[0].local))\r\n arrayRoot = inputData;\r\n else\r\n arrayRoot = root;\r\n if (typeof arrayRoot[inputSchema.valueBlock.value[0].name] === \"undefined\")\r\n arrayRoot[inputSchema.valueBlock.value[0].name] = [];\r\n arrayRoot[inputSchema.valueBlock.value[0].name].push(inputData.valueBlock.value[i]);\r\n }\r\n }\r\n else {\r\n result = compareSchema(root, inputData.valueBlock.value[i - admission], inputSchema.valueBlock.value[i]);\r\n if (result.verified === false) {\r\n if (inputSchema.valueBlock.value[i].optional)\r\n admission++;\r\n else {\r\n if (inputSchema.name) {\r\n inputSchema.name = inputSchema.name.replace(/^\\s+|\\s+$/g, EMPTY_STRING);\r\n if (inputSchema.name)\r\n delete root[inputSchema.name];\r\n }\r\n return result;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (result.verified === false) {\r\n const _result = {\r\n verified: false,\r\n result: root\r\n };\r\n if (inputSchema.name) {\r\n inputSchema.name = inputSchema.name.replace(/^\\s+|\\s+$/g, EMPTY_STRING);\r\n if (inputSchema.name) {\r\n delete root[inputSchema.name];\r\n _result.name = inputSchema.name;\r\n }\r\n }\r\n return _result;\r\n }\r\n return {\r\n verified: true,\r\n result: root\r\n };\r\n }\r\n if (inputSchema.primitiveSchema &&\r\n (VALUE_HEX_VIEW in inputData.valueBlock)) {\r\n const asn1 = localFromBER(inputData.valueBlock.valueHexView);\r\n if (asn1.offset === -1) {\r\n const _result = {\r\n verified: false,\r\n result: asn1.result\r\n };\r\n if (inputSchema.name) {\r\n inputSchema.name = inputSchema.name.replace(/^\\s+|\\s+$/g, EMPTY_STRING);\r\n if (inputSchema.name) {\r\n delete root[inputSchema.name];\r\n _result.name = inputSchema.name;\r\n }\r\n }\r\n return _result;\r\n }\r\n return compareSchema(root, asn1.result, inputSchema.primitiveSchema);\r\n }\r\n return {\r\n verified: true,\r\n result: root\r\n };\r\n}\r\nfunction verifySchema(inputBuffer, inputSchema) {\r\n if ((inputSchema instanceof Object) === false) {\r\n return {\r\n verified: false,\r\n result: { error: \"Wrong ASN.1 schema type\" }\r\n };\r\n }\r\n const asn1 = localFromBER(pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer));\r\n if (asn1.offset === -1) {\r\n return {\r\n verified: false,\r\n result: asn1.result\r\n };\r\n }\r\n return compareSchema(asn1.result, asn1.result, inputSchema);\r\n}\n\nexport { Any, BaseBlock, BaseStringBlock, BitString, BmpString, Boolean, CharacterString, Choice, Constructed, DATE, DateTime, Duration, EndOfContent, Enumerated, GeneralString, GeneralizedTime, GraphicString, HexBlock, IA5String, Integer, Null, NumericString, ObjectIdentifier, OctetString, Primitive, PrintableString, RawData, RelativeObjectIdentifier, Repeated, Sequence, Set, TIME, TeletexString, TimeOfDay, UTCTime, UniversalString, Utf8String, ValueBlock, VideotexString, ViewWriter, VisibleString, compareSchema, fromBER, verifySchema };\n","export var AsnTypeTypes;\n(function (AsnTypeTypes) {\n AsnTypeTypes[AsnTypeTypes[\"Sequence\"] = 0] = \"Sequence\";\n AsnTypeTypes[AsnTypeTypes[\"Set\"] = 1] = \"Set\";\n AsnTypeTypes[AsnTypeTypes[\"Choice\"] = 2] = \"Choice\";\n})(AsnTypeTypes || (AsnTypeTypes = {}));\nexport var AsnPropTypes;\n(function (AsnPropTypes) {\n AsnPropTypes[AsnPropTypes[\"Any\"] = 1] = \"Any\";\n AsnPropTypes[AsnPropTypes[\"Boolean\"] = 2] = \"Boolean\";\n AsnPropTypes[AsnPropTypes[\"OctetString\"] = 3] = \"OctetString\";\n AsnPropTypes[AsnPropTypes[\"BitString\"] = 4] = \"BitString\";\n AsnPropTypes[AsnPropTypes[\"Integer\"] = 5] = \"Integer\";\n AsnPropTypes[AsnPropTypes[\"Enumerated\"] = 6] = \"Enumerated\";\n AsnPropTypes[AsnPropTypes[\"ObjectIdentifier\"] = 7] = \"ObjectIdentifier\";\n AsnPropTypes[AsnPropTypes[\"Utf8String\"] = 8] = \"Utf8String\";\n AsnPropTypes[AsnPropTypes[\"BmpString\"] = 9] = \"BmpString\";\n AsnPropTypes[AsnPropTypes[\"UniversalString\"] = 10] = \"UniversalString\";\n AsnPropTypes[AsnPropTypes[\"NumericString\"] = 11] = \"NumericString\";\n AsnPropTypes[AsnPropTypes[\"PrintableString\"] = 12] = \"PrintableString\";\n AsnPropTypes[AsnPropTypes[\"TeletexString\"] = 13] = \"TeletexString\";\n AsnPropTypes[AsnPropTypes[\"VideotexString\"] = 14] = \"VideotexString\";\n AsnPropTypes[AsnPropTypes[\"IA5String\"] = 15] = \"IA5String\";\n AsnPropTypes[AsnPropTypes[\"GraphicString\"] = 16] = \"GraphicString\";\n AsnPropTypes[AsnPropTypes[\"VisibleString\"] = 17] = \"VisibleString\";\n AsnPropTypes[AsnPropTypes[\"GeneralString\"] = 18] = \"GeneralString\";\n AsnPropTypes[AsnPropTypes[\"CharacterString\"] = 19] = \"CharacterString\";\n AsnPropTypes[AsnPropTypes[\"UTCTime\"] = 20] = \"UTCTime\";\n AsnPropTypes[AsnPropTypes[\"GeneralizedTime\"] = 21] = \"GeneralizedTime\";\n AsnPropTypes[AsnPropTypes[\"DATE\"] = 22] = \"DATE\";\n AsnPropTypes[AsnPropTypes[\"TimeOfDay\"] = 23] = \"TimeOfDay\";\n AsnPropTypes[AsnPropTypes[\"DateTime\"] = 24] = \"DateTime\";\n AsnPropTypes[AsnPropTypes[\"Duration\"] = 25] = \"Duration\";\n AsnPropTypes[AsnPropTypes[\"TIME\"] = 26] = \"TIME\";\n AsnPropTypes[AsnPropTypes[\"Null\"] = 27] = \"Null\";\n})(AsnPropTypes || (AsnPropTypes = {}));\n","import * as asn1js from \"asn1js\";\nimport { AsnPropTypes } from \"./enums\";\nimport { OctetString } from \"./types/index\";\nexport const AsnAnyConverter = {\n fromASN: (value) => value instanceof asn1js.Null ? null : value.valueBeforeDecodeView,\n toASN: (value) => {\n if (value === null) {\n return new asn1js.Null();\n }\n const schema = asn1js.fromBER(value);\n if (schema.result.error) {\n throw new Error(schema.result.error);\n }\n return schema.result;\n },\n};\nexport const AsnIntegerConverter = {\n fromASN: (value) => value.valueBlock.valueHexView.byteLength >= 4\n ? value.valueBlock.toString()\n : value.valueBlock.valueDec,\n toASN: (value) => new asn1js.Integer({ value: +value }),\n};\nexport const AsnEnumeratedConverter = {\n fromASN: (value) => value.valueBlock.valueDec,\n toASN: (value) => new asn1js.Enumerated({ value }),\n};\nexport const AsnIntegerArrayBufferConverter = {\n fromASN: (value) => value.valueBlock.valueHexView,\n toASN: (value) => new asn1js.Integer({ valueHex: value }),\n};\nexport const AsnIntegerBigIntConverter = {\n fromASN: (value) => value.toBigInt(),\n toASN: (value) => asn1js.Integer.fromBigInt(value),\n};\nexport const AsnBitStringConverter = {\n fromASN: (value) => value.valueBlock.valueHexView,\n toASN: (value) => new asn1js.BitString({ valueHex: value }),\n};\nexport const AsnObjectIdentifierConverter = {\n fromASN: (value) => value.valueBlock.toString(),\n toASN: (value) => new asn1js.ObjectIdentifier({ value }),\n};\nexport const AsnBooleanConverter = {\n fromASN: (value) => value.valueBlock.value,\n toASN: (value) => new asn1js.Boolean({ value }),\n};\nexport const AsnOctetStringConverter = {\n fromASN: (value) => value.valueBlock.valueHexView,\n toASN: (value) => new asn1js.OctetString({ valueHex: value }),\n};\nexport const AsnConstructedOctetStringConverter = {\n fromASN: (value) => new OctetString(value.getValue()),\n toASN: (value) => value.toASN(),\n};\nfunction createStringConverter(Asn1Type) {\n return {\n fromASN: (value) => value.valueBlock.value,\n toASN: (value) => new Asn1Type({ value }),\n };\n}\nexport const AsnUtf8StringConverter = createStringConverter(asn1js.Utf8String);\nexport const AsnBmpStringConverter = createStringConverter(asn1js.BmpString);\nexport const AsnUniversalStringConverter = createStringConverter(asn1js.UniversalString);\nexport const AsnNumericStringConverter = createStringConverter(asn1js.NumericString);\nexport const AsnPrintableStringConverter = createStringConverter(asn1js.PrintableString);\nexport const AsnTeletexStringConverter = createStringConverter(asn1js.TeletexString);\nexport const AsnVideotexStringConverter = createStringConverter(asn1js.VideotexString);\nexport const AsnIA5StringConverter = createStringConverter(asn1js.IA5String);\nexport const AsnGraphicStringConverter = createStringConverter(asn1js.GraphicString);\nexport const AsnVisibleStringConverter = createStringConverter(asn1js.VisibleString);\nexport const AsnGeneralStringConverter = createStringConverter(asn1js.GeneralString);\nexport const AsnCharacterStringConverter = createStringConverter(asn1js.CharacterString);\nexport const AsnUTCTimeConverter = {\n fromASN: (value) => value.toDate(),\n toASN: (value) => new asn1js.UTCTime({ valueDate: value }),\n};\nexport const AsnGeneralizedTimeConverter = {\n fromASN: (value) => value.toDate(),\n toASN: (value) => new asn1js.GeneralizedTime({ valueDate: value }),\n};\nexport const AsnNullConverter = {\n fromASN: () => null,\n toASN: () => {\n return new asn1js.Null();\n },\n};\nexport function defaultConverter(type) {\n switch (type) {\n case AsnPropTypes.Any:\n return AsnAnyConverter;\n case AsnPropTypes.BitString:\n return AsnBitStringConverter;\n case AsnPropTypes.BmpString:\n return AsnBmpStringConverter;\n case AsnPropTypes.Boolean:\n return AsnBooleanConverter;\n case AsnPropTypes.CharacterString:\n return AsnCharacterStringConverter;\n case AsnPropTypes.Enumerated:\n return AsnEnumeratedConverter;\n case AsnPropTypes.GeneralString:\n return AsnGeneralStringConverter;\n case AsnPropTypes.GeneralizedTime:\n return AsnGeneralizedTimeConverter;\n case AsnPropTypes.GraphicString:\n return AsnGraphicStringConverter;\n case AsnPropTypes.IA5String:\n return AsnIA5StringConverter;\n case AsnPropTypes.Integer:\n return AsnIntegerConverter;\n case AsnPropTypes.Null:\n return AsnNullConverter;\n case AsnPropTypes.NumericString:\n return AsnNumericStringConverter;\n case AsnPropTypes.ObjectIdentifier:\n return AsnObjectIdentifierConverter;\n case AsnPropTypes.OctetString:\n return AsnOctetStringConverter;\n case AsnPropTypes.PrintableString:\n return AsnPrintableStringConverter;\n case AsnPropTypes.TeletexString:\n return AsnTeletexStringConverter;\n case AsnPropTypes.UTCTime:\n return AsnUTCTimeConverter;\n case AsnPropTypes.UniversalString:\n return AsnUniversalStringConverter;\n case AsnPropTypes.Utf8String:\n return AsnUtf8StringConverter;\n case AsnPropTypes.VideotexString:\n return AsnVideotexStringConverter;\n case AsnPropTypes.VisibleString:\n return AsnVisibleStringConverter;\n default:\n return null;\n }\n}\n","export function isConvertible(target) {\n if (typeof target === \"function\" && target.prototype) {\n if (target.prototype.toASN && target.prototype.fromASN) {\n return true;\n }\n else {\n return isConvertible(target.prototype);\n }\n }\n else {\n return !!(target && typeof target === \"object\" && \"toASN\" in target && \"fromASN\" in target);\n }\n}\nexport function isTypeOfArray(target) {\n var _a;\n if (target) {\n const proto = Object.getPrototypeOf(target);\n if (((_a = proto === null || proto === void 0 ? void 0 : proto.prototype) === null || _a === void 0 ? void 0 : _a.constructor) === Array) {\n return true;\n }\n return isTypeOfArray(proto);\n }\n return false;\n}\nexport function isArrayEqual(bytes1, bytes2) {\n if (!(bytes1 && bytes2)) {\n return false;\n }\n if (bytes1.byteLength !== bytes2.byteLength) {\n return false;\n }\n const b1 = new Uint8Array(bytes1);\n const b2 = new Uint8Array(bytes2);\n for (let i = 0; i < bytes1.byteLength; i++) {\n if (b1[i] !== b2[i]) {\n return false;\n }\n }\n return true;\n}\n","import * as asn1js from \"asn1js\";\nimport { AsnPropTypes, AsnTypeTypes } from \"./enums\";\nimport { isConvertible } from \"./helper\";\nexport class AsnSchemaStorage {\n constructor() {\n this.items = new WeakMap();\n }\n has(target) {\n return this.items.has(target);\n }\n get(target, checkSchema = false) {\n const schema = this.items.get(target);\n if (!schema) {\n throw new Error(`Cannot get schema for '${target.prototype.constructor.name}' target`);\n }\n if (checkSchema && !schema.schema) {\n throw new Error(`Schema '${target.prototype.constructor.name}' doesn't contain ASN.1 schema. Call 'AsnSchemaStorage.cache'.`);\n }\n return schema;\n }\n cache(target) {\n const schema = this.get(target);\n if (!schema.schema) {\n schema.schema = this.create(target, true);\n }\n }\n createDefault(target) {\n const schema = {\n type: AsnTypeTypes.Sequence,\n items: {},\n };\n const parentSchema = this.findParentSchema(target);\n if (parentSchema) {\n Object.assign(schema, parentSchema);\n schema.items = Object.assign({}, schema.items, parentSchema.items);\n }\n return schema;\n }\n create(target, useNames) {\n const schema = this.items.get(target) || this.createDefault(target);\n const asn1Value = [];\n for (const key in schema.items) {\n const item = schema.items[key];\n const name = useNames ? key : \"\";\n let asn1Item;\n if (typeof (item.type) === \"number\") {\n const Asn1TypeName = AsnPropTypes[item.type];\n const Asn1Type = asn1js[Asn1TypeName];\n if (!Asn1Type) {\n throw new Error(`Cannot get ASN1 class by name '${Asn1TypeName}'`);\n }\n asn1Item = new Asn1Type({ name });\n }\n else if (isConvertible(item.type)) {\n const instance = new item.type();\n asn1Item = instance.toSchema(name);\n }\n else if (item.optional) {\n const itemSchema = this.get(item.type);\n if (itemSchema.type === AsnTypeTypes.Choice) {\n asn1Item = new asn1js.Any({ name });\n }\n else {\n asn1Item = this.create(item.type, false);\n asn1Item.name = name;\n }\n }\n else {\n asn1Item = new asn1js.Any({ name });\n }\n const optional = !!item.optional || item.defaultValue !== undefined;\n if (item.repeated) {\n asn1Item.name = \"\";\n const Container = item.repeated === \"set\"\n ? asn1js.Set\n : asn1js.Sequence;\n asn1Item = new Container({\n name: \"\",\n value: [\n new asn1js.Repeated({\n name,\n value: asn1Item,\n }),\n ],\n });\n }\n if (item.context !== null && item.context !== undefined) {\n if (item.implicit) {\n if (typeof item.type === \"number\" || isConvertible(item.type)) {\n const Container = item.repeated\n ? asn1js.Constructed\n : asn1js.Primitive;\n asn1Value.push(new Container({\n name,\n optional,\n idBlock: {\n tagClass: 3,\n tagNumber: item.context,\n },\n }));\n }\n else {\n this.cache(item.type);\n const isRepeated = !!item.repeated;\n let value = !isRepeated\n ? this.get(item.type, true).schema\n : asn1Item;\n value = \"valueBlock\" in value ? value.valueBlock.value : value.value;\n asn1Value.push(new asn1js.Constructed({\n name: !isRepeated ? name : \"\",\n optional,\n idBlock: {\n tagClass: 3,\n tagNumber: item.context,\n },\n value: value,\n }));\n }\n }\n else {\n asn1Value.push(new asn1js.Constructed({\n optional,\n idBlock: {\n tagClass: 3,\n tagNumber: item.context,\n },\n value: [asn1Item],\n }));\n }\n }\n else {\n asn1Item.optional = optional;\n asn1Value.push(asn1Item);\n }\n }\n switch (schema.type) {\n case AsnTypeTypes.Sequence:\n return new asn1js.Sequence({ value: asn1Value, name: \"\" });\n case AsnTypeTypes.Set:\n return new asn1js.Set({ value: asn1Value, name: \"\" });\n case AsnTypeTypes.Choice:\n return new asn1js.Choice({ value: asn1Value, name: \"\" });\n default:\n throw new Error(`Unsupported ASN1 type in use`);\n }\n }\n set(target, schema) {\n this.items.set(target, schema);\n return this;\n }\n findParentSchema(target) {\n const parent = Object.getPrototypeOf(target);\n if (parent) {\n const schema = this.items.get(parent);\n return schema || this.findParentSchema(parent);\n }\n return null;\n }\n}\n","import { AsnSchemaStorage } from \"./schema\";\nexport const schemaStorage = new AsnSchemaStorage();\n","import * as converters from \"./converters\";\nimport { AsnTypeTypes } from \"./enums\";\nimport { schemaStorage } from \"./storage\";\nexport const AsnType = (options) => (target) => {\n let schema;\n if (!schemaStorage.has(target)) {\n schema = schemaStorage.createDefault(target);\n schemaStorage.set(target, schema);\n }\n else {\n schema = schemaStorage.get(target);\n }\n Object.assign(schema, options);\n};\nexport const AsnChoiceType = () => AsnType({ type: AsnTypeTypes.Choice });\nexport const AsnSetType = (options) => AsnType({ type: AsnTypeTypes.Set, ...options });\nexport const AsnSequenceType = (options) => AsnType({ type: AsnTypeTypes.Sequence, ...options });\nexport const AsnProp = (options) => (target, propertyKey) => {\n let schema;\n if (!schemaStorage.has(target.constructor)) {\n schema = schemaStorage.createDefault(target.constructor);\n schemaStorage.set(target.constructor, schema);\n }\n else {\n schema = schemaStorage.get(target.constructor);\n }\n const copyOptions = Object.assign({}, options);\n if (typeof copyOptions.type === \"number\" && !copyOptions.converter) {\n const defaultConverter = converters.defaultConverter(options.type);\n if (!defaultConverter) {\n throw new Error(`Cannot get default converter for property '${propertyKey}' of ${target.constructor.name}`);\n }\n copyOptions.converter = defaultConverter;\n }\n schema.items[propertyKey] = copyOptions;\n};\n","export class AsnSchemaValidationError extends Error {\n constructor() {\n super(...arguments);\n this.schemas = [];\n }\n}\n","import * as asn1js from \"asn1js\";\nimport { AsnPropTypes, AsnTypeTypes } from \"./enums\";\nimport * as converters from \"./converters\";\nimport { AsnSchemaValidationError } from \"./errors\";\nimport { isConvertible, isTypeOfArray } from \"./helper\";\nimport { schemaStorage } from \"./storage\";\nexport class AsnParser {\n static parse(data, target) {\n const asn1Parsed = asn1js.fromBER(data);\n if (asn1Parsed.result.error) {\n throw new Error(asn1Parsed.result.error);\n }\n const res = this.fromASN(asn1Parsed.result, target);\n return res;\n }\n static fromASN(asn1Schema, target) {\n var _a;\n try {\n if (isConvertible(target)) {\n const value = new target();\n return value.fromASN(asn1Schema);\n }\n const schema = schemaStorage.get(target);\n schemaStorage.cache(target);\n let targetSchema = schema.schema;\n if (asn1Schema.constructor === asn1js.Constructed && schema.type !== AsnTypeTypes.Choice) {\n targetSchema = new asn1js.Constructed({\n idBlock: {\n tagClass: 3,\n tagNumber: asn1Schema.idBlock.tagNumber,\n },\n value: schema.schema.valueBlock.value,\n });\n for (const key in schema.items) {\n delete asn1Schema[key];\n }\n }\n const asn1ComparedSchema = asn1js.compareSchema({}, asn1Schema, targetSchema);\n if (!asn1ComparedSchema.verified) {\n throw new AsnSchemaValidationError(`Data does not match to ${target.name} ASN1 schema. ${asn1ComparedSchema.result.error}`);\n }\n const res = new target();\n if (isTypeOfArray(target)) {\n if (!(\"value\" in asn1Schema.valueBlock && Array.isArray(asn1Schema.valueBlock.value))) {\n throw new Error(`Cannot get items from the ASN.1 parsed value. ASN.1 object is not constructed.`);\n }\n const itemType = schema.itemType;\n if (typeof itemType === \"number\") {\n const converter = converters.defaultConverter(itemType);\n if (!converter) {\n throw new Error(`Cannot get default converter for array item of ${target.name} ASN1 schema`);\n }\n return target.from(asn1Schema.valueBlock.value, (element) => converter.fromASN(element));\n }\n else {\n return target.from(asn1Schema.valueBlock.value, (element) => this.fromASN(element, itemType));\n }\n }\n for (const key in schema.items) {\n const asn1SchemaValue = asn1ComparedSchema.result[key];\n if (!asn1SchemaValue) {\n continue;\n }\n const schemaItem = schema.items[key];\n const schemaItemType = schemaItem.type;\n if (typeof schemaItemType === \"number\" || isConvertible(schemaItemType)) {\n const converter = (_a = schemaItem.converter) !== null && _a !== void 0 ? _a : (isConvertible(schemaItemType)\n ? new schemaItemType()\n : null);\n if (!converter) {\n throw new Error(\"Converter is empty\");\n }\n if (schemaItem.repeated) {\n if (schemaItem.implicit) {\n const Container = schemaItem.repeated === \"sequence\"\n ? asn1js.Sequence\n : asn1js.Set;\n const newItem = new Container();\n newItem.valueBlock = asn1SchemaValue.valueBlock;\n const newItemAsn = asn1js.fromBER(newItem.toBER(false));\n if (newItemAsn.offset === -1) {\n throw new Error(`Cannot parse the child item. ${newItemAsn.result.error}`);\n }\n if (!(\"value\" in newItemAsn.result.valueBlock && Array.isArray(newItemAsn.result.valueBlock.value))) {\n throw new Error(\"Cannot get items from the ASN.1 parsed value. ASN.1 object is not constructed.\");\n }\n const value = newItemAsn.result.valueBlock.value;\n res[key] = Array.from(value, (element) => converter.fromASN(element));\n }\n else {\n res[key] = Array.from(asn1SchemaValue, (element) => converter.fromASN(element));\n }\n }\n else {\n let value = asn1SchemaValue;\n if (schemaItem.implicit) {\n let newItem;\n if (isConvertible(schemaItemType)) {\n newItem = new schemaItemType().toSchema(\"\");\n }\n else {\n const Asn1TypeName = AsnPropTypes[schemaItemType];\n const Asn1Type = asn1js[Asn1TypeName];\n if (!Asn1Type) {\n throw new Error(`Cannot get '${Asn1TypeName}' class from asn1js module`);\n }\n newItem = new Asn1Type();\n }\n newItem.valueBlock = value.valueBlock;\n value = asn1js.fromBER(newItem.toBER(false)).result;\n }\n res[key] = converter.fromASN(value);\n }\n }\n else {\n if (schemaItem.repeated) {\n if (!Array.isArray(asn1SchemaValue)) {\n throw new Error(\"Cannot get list of items from the ASN.1 parsed value. ASN.1 value should be iterable.\");\n }\n res[key] = Array.from(asn1SchemaValue, (element) => this.fromASN(element, schemaItemType));\n }\n else {\n res[key] = this.fromASN(asn1SchemaValue, schemaItemType);\n }\n }\n }\n return res;\n }\n catch (error) {\n if (error instanceof AsnSchemaValidationError) {\n error.schemas.push(target.name);\n }\n throw error;\n }\n }\n}\n","import * as asn1js from \"asn1js\";\nimport * as converters from \"./converters\";\nimport { AsnPropTypes, AsnTypeTypes } from \"./enums\";\nimport { isConvertible, isArrayEqual } from \"./helper\";\nimport { schemaStorage } from \"./storage\";\nexport class AsnSerializer {\n static serialize(obj) {\n if (obj instanceof asn1js.BaseBlock) {\n return obj.toBER(false);\n }\n return this.toASN(obj).toBER(false);\n }\n static toASN(obj) {\n if (obj && typeof obj === \"object\" && isConvertible(obj)) {\n return obj.toASN();\n }\n if (!(obj && typeof obj === \"object\")) {\n throw new TypeError(\"Parameter 1 should be type of Object.\");\n }\n const target = obj.constructor;\n const schema = schemaStorage.get(target);\n schemaStorage.cache(target);\n let asn1Value = [];\n if (schema.itemType) {\n if (!Array.isArray(obj)) {\n throw new TypeError(\"Parameter 1 should be type of Array.\");\n }\n if (typeof schema.itemType === \"number\") {\n const converter = converters.defaultConverter(schema.itemType);\n if (!converter) {\n throw new Error(`Cannot get default converter for array item of ${target.name} ASN1 schema`);\n }\n asn1Value = obj.map((o) => converter.toASN(o));\n }\n else {\n asn1Value = obj.map((o) => this.toAsnItem({ type: schema.itemType }, \"[]\", target, o));\n }\n }\n else {\n for (const key in schema.items) {\n const schemaItem = schema.items[key];\n const objProp = obj[key];\n if (objProp === undefined\n || schemaItem.defaultValue === objProp\n || (typeof schemaItem.defaultValue === \"object\" && typeof objProp === \"object\"\n && isArrayEqual(this.serialize(schemaItem.defaultValue), this.serialize(objProp)))) {\n continue;\n }\n const asn1Item = AsnSerializer.toAsnItem(schemaItem, key, target, objProp);\n if (typeof schemaItem.context === \"number\") {\n if (schemaItem.implicit) {\n if (!schemaItem.repeated\n && (typeof schemaItem.type === \"number\" || isConvertible(schemaItem.type))) {\n const value = {};\n value.valueHex = asn1Item instanceof asn1js.Null ? asn1Item.valueBeforeDecodeView : asn1Item.valueBlock.toBER();\n asn1Value.push(new asn1js.Primitive({\n optional: schemaItem.optional,\n idBlock: {\n tagClass: 3,\n tagNumber: schemaItem.context,\n },\n ...value,\n }));\n }\n else {\n asn1Value.push(new asn1js.Constructed({\n optional: schemaItem.optional,\n idBlock: {\n tagClass: 3,\n tagNumber: schemaItem.context,\n },\n value: asn1Item.valueBlock.value,\n }));\n }\n }\n else {\n asn1Value.push(new asn1js.Constructed({\n optional: schemaItem.optional,\n idBlock: {\n tagClass: 3,\n tagNumber: schemaItem.context,\n },\n value: [asn1Item],\n }));\n }\n }\n else if (schemaItem.repeated) {\n asn1Value = asn1Value.concat(asn1Item);\n }\n else {\n asn1Value.push(asn1Item);\n }\n }\n }\n let asnSchema;\n switch (schema.type) {\n case AsnTypeTypes.Sequence:\n asnSchema = new asn1js.Sequence({ value: asn1Value });\n break;\n case AsnTypeTypes.Set:\n asnSchema = new asn1js.Set({ value: asn1Value });\n break;\n case AsnTypeTypes.Choice:\n if (!asn1Value[0]) {\n throw new Error(`Schema '${target.name}' has wrong data. Choice cannot be empty.`);\n }\n asnSchema = asn1Value[0];\n break;\n }\n return asnSchema;\n }\n static toAsnItem(schemaItem, key, target, objProp) {\n let asn1Item;\n if (typeof (schemaItem.type) === \"number\") {\n const converter = schemaItem.converter;\n if (!converter) {\n throw new Error(`Property '${key}' doesn't have converter for type ${AsnPropTypes[schemaItem.type]} in schema '${target.name}'`);\n }\n if (schemaItem.repeated) {\n if (!Array.isArray(objProp)) {\n throw new TypeError(\"Parameter 'objProp' should be type of Array.\");\n }\n const items = Array.from(objProp, (element) => converter.toASN(element));\n const Container = schemaItem.repeated === \"sequence\"\n ? asn1js.Sequence\n : asn1js.Set;\n asn1Item = new Container({\n value: items,\n });\n }\n else {\n asn1Item = converter.toASN(objProp);\n }\n }\n else {\n if (schemaItem.repeated) {\n if (!Array.isArray(objProp)) {\n throw new TypeError(\"Parameter 'objProp' should be type of Array.\");\n }\n const items = Array.from(objProp, (element) => this.toASN(element));\n const Container = schemaItem.repeated === \"sequence\"\n ? asn1js.Sequence\n : asn1js.Set;\n asn1Item = new Container({\n value: items,\n });\n }\n else {\n asn1Item = this.toASN(objProp);\n }\n }\n return asn1Item;\n }\n}\n","import * as asn1js from \"asn1js\";\nimport { BufferSourceConverter } from \"pvtsutils\";\nimport { AsnParser } from \"./parser\";\nimport { AsnSerializer } from \"./serializer\";\nexport class AsnConvert {\n static serialize(obj) {\n return AsnSerializer.serialize(obj);\n }\n static parse(data, target) {\n return AsnParser.parse(data, target);\n }\n static toString(data) {\n const buf = BufferSourceConverter.isBufferSource(data)\n ? BufferSourceConverter.toArrayBuffer(data)\n : AsnConvert.serialize(data);\n const asn = asn1js.fromBER(buf);\n if (asn.offset === -1) {\n throw new Error(`Cannot decode ASN.1 data. ${asn.result.error}`);\n }\n return asn.result.toString();\n }\n}\n","/**\n * Copyright (c) 2020, Peculiar Ventures, All rights reserved.\n */\n\nclass JsonError extends Error {\r\n constructor(message, innerError) {\r\n super(innerError\r\n ? `${message}. See the inner exception for more details.`\r\n : message);\r\n this.message = message;\r\n this.innerError = innerError;\r\n }\r\n}\n\nclass TransformError extends JsonError {\r\n constructor(schema, message, innerError) {\r\n super(message, innerError);\r\n this.schema = schema;\r\n }\r\n}\n\nclass ParserError extends TransformError {\r\n constructor(schema, message, innerError) {\r\n super(schema, `JSON doesn't match to '${schema.target.name}' schema. ${message}`, innerError);\r\n }\r\n}\n\nclass ValidationError extends JsonError {\r\n}\n\nclass SerializerError extends JsonError {\r\n constructor(schemaName, message, innerError) {\r\n super(`Cannot serialize by '${schemaName}' schema. ${message}`, innerError);\r\n this.schemaName = schemaName;\r\n }\r\n}\n\nclass KeyError extends ParserError {\r\n constructor(schema, keys, errors = {}) {\r\n super(schema, \"Some keys doesn't match to schema\");\r\n this.keys = keys;\r\n this.errors = errors;\r\n }\r\n}\n\nvar JsonPropTypes;\r\n(function (JsonPropTypes) {\r\n JsonPropTypes[JsonPropTypes[\"Any\"] = 0] = \"Any\";\r\n JsonPropTypes[JsonPropTypes[\"Boolean\"] = 1] = \"Boolean\";\r\n JsonPropTypes[JsonPropTypes[\"Number\"] = 2] = \"Number\";\r\n JsonPropTypes[JsonPropTypes[\"String\"] = 3] = \"String\";\r\n})(JsonPropTypes || (JsonPropTypes = {}));\n\nfunction checkType(value, type) {\r\n switch (type) {\r\n case JsonPropTypes.Boolean:\r\n return typeof value === \"boolean\";\r\n case JsonPropTypes.Number:\r\n return typeof value === \"number\";\r\n case JsonPropTypes.String:\r\n return typeof value === \"string\";\r\n }\r\n return true;\r\n}\r\nfunction throwIfTypeIsWrong(value, type) {\r\n if (!checkType(value, type)) {\r\n throw new TypeError(`Value must be ${JsonPropTypes[type]}`);\r\n }\r\n}\r\nfunction isConvertible(target) {\r\n if (target && target.prototype) {\r\n if (target.prototype.toJSON && target.prototype.fromJSON) {\r\n return true;\r\n }\r\n else {\r\n return isConvertible(target.prototype);\r\n }\r\n }\r\n else {\r\n return !!(target && target.toJSON && target.fromJSON);\r\n }\r\n}\n\nclass JsonSchemaStorage {\r\n constructor() {\r\n this.items = new Map();\r\n }\r\n has(target) {\r\n return this.items.has(target) || !!this.findParentSchema(target);\r\n }\r\n get(target) {\r\n const schema = this.items.get(target) || this.findParentSchema(target);\r\n if (!schema) {\r\n throw new Error(\"Cannot get schema for current target\");\r\n }\r\n return schema;\r\n }\r\n create(target) {\r\n const schema = { names: {} };\r\n const parentSchema = this.findParentSchema(target);\r\n if (parentSchema) {\r\n Object.assign(schema, parentSchema);\r\n schema.names = {};\r\n for (const name in parentSchema.names) {\r\n schema.names[name] = Object.assign({}, parentSchema.names[name]);\r\n }\r\n }\r\n schema.target = target;\r\n return schema;\r\n }\r\n set(target, schema) {\r\n this.items.set(target, schema);\r\n return this;\r\n }\r\n findParentSchema(target) {\r\n const parent = target.__proto__;\r\n if (parent) {\r\n const schema = this.items.get(parent);\r\n return schema || this.findParentSchema(parent);\r\n }\r\n return null;\r\n }\r\n}\n\nconst DEFAULT_SCHEMA = \"default\";\r\nconst schemaStorage = new JsonSchemaStorage();\n\nclass PatternValidation {\r\n constructor(pattern) {\r\n this.pattern = new RegExp(pattern);\r\n }\r\n validate(value) {\r\n const pattern = new RegExp(this.pattern.source, this.pattern.flags);\r\n if (typeof value !== \"string\") {\r\n throw new ValidationError(\"Incoming value must be string\");\r\n }\r\n if (!pattern.exec(value)) {\r\n throw new ValidationError(`Value doesn't match to pattern '${pattern.toString()}'`);\r\n }\r\n }\r\n}\n\nclass InclusiveValidation {\r\n constructor(min = Number.MIN_VALUE, max = Number.MAX_VALUE) {\r\n this.min = min;\r\n this.max = max;\r\n }\r\n validate(value) {\r\n throwIfTypeIsWrong(value, JsonPropTypes.Number);\r\n if (!(this.min <= value && value <= this.max)) {\r\n const min = this.min === Number.MIN_VALUE ? \"MIN\" : this.min;\r\n const max = this.max === Number.MAX_VALUE ? \"MAX\" : this.max;\r\n throw new ValidationError(`Value doesn't match to diapason [${min},${max}]`);\r\n }\r\n }\r\n}\n\nclass ExclusiveValidation {\r\n constructor(min = Number.MIN_VALUE, max = Number.MAX_VALUE) {\r\n this.min = min;\r\n this.max = max;\r\n }\r\n validate(value) {\r\n throwIfTypeIsWrong(value, JsonPropTypes.Number);\r\n if (!(this.min < value && value < this.max)) {\r\n const min = this.min === Number.MIN_VALUE ? \"MIN\" : this.min;\r\n const max = this.max === Number.MAX_VALUE ? \"MAX\" : this.max;\r\n throw new ValidationError(`Value doesn't match to diapason (${min},${max})`);\r\n }\r\n }\r\n}\n\nclass LengthValidation {\r\n constructor(length, minLength, maxLength) {\r\n this.length = length;\r\n this.minLength = minLength;\r\n this.maxLength = maxLength;\r\n }\r\n validate(value) {\r\n if (this.length !== undefined) {\r\n if (value.length !== this.length) {\r\n throw new ValidationError(`Value length must be exactly ${this.length}.`);\r\n }\r\n return;\r\n }\r\n if (this.minLength !== undefined) {\r\n if (value.length < this.minLength) {\r\n throw new ValidationError(`Value length must be more than ${this.minLength}.`);\r\n }\r\n }\r\n if (this.maxLength !== undefined) {\r\n if (value.length > this.maxLength) {\r\n throw new ValidationError(`Value length must be less than ${this.maxLength}.`);\r\n }\r\n }\r\n }\r\n}\n\nclass EnumerationValidation {\r\n constructor(enumeration) {\r\n this.enumeration = enumeration;\r\n }\r\n validate(value) {\r\n throwIfTypeIsWrong(value, JsonPropTypes.String);\r\n if (!this.enumeration.includes(value)) {\r\n throw new ValidationError(`Value must be one of ${this.enumeration.map((v) => `'${v}'`).join(\", \")}`);\r\n }\r\n }\r\n}\n\nclass JsonTransform {\r\n static checkValues(data, schemaItem) {\r\n const values = Array.isArray(data) ? data : [data];\r\n for (const value of values) {\r\n for (const validation of schemaItem.validations) {\r\n if (validation instanceof LengthValidation && schemaItem.repeated) {\r\n validation.validate(data);\r\n }\r\n else {\r\n validation.validate(value);\r\n }\r\n }\r\n }\r\n }\r\n static checkTypes(value, schemaItem) {\r\n if (schemaItem.repeated && !Array.isArray(value)) {\r\n throw new TypeError(\"Value must be Array\");\r\n }\r\n if (typeof schemaItem.type === \"number\") {\r\n const values = Array.isArray(value) ? value : [value];\r\n for (const v of values) {\r\n throwIfTypeIsWrong(v, schemaItem.type);\r\n }\r\n }\r\n }\r\n static getSchemaByName(schema, name = DEFAULT_SCHEMA) {\r\n return { ...schema.names[DEFAULT_SCHEMA], ...schema.names[name] };\r\n }\r\n}\n\nclass JsonSerializer extends JsonTransform {\r\n static serialize(obj, options, replacer, space) {\r\n const json = this.toJSON(obj, options);\r\n return JSON.stringify(json, replacer, space);\r\n }\r\n static toJSON(obj, options = {}) {\r\n let res;\r\n let targetSchema = options.targetSchema;\r\n const schemaName = options.schemaName || DEFAULT_SCHEMA;\r\n if (isConvertible(obj)) {\r\n return obj.toJSON();\r\n }\r\n if (Array.isArray(obj)) {\r\n res = [];\r\n for (const item of obj) {\r\n res.push(this.toJSON(item, options));\r\n }\r\n }\r\n else if (typeof obj === \"object\") {\r\n if (targetSchema && !schemaStorage.has(targetSchema)) {\r\n throw new JsonError(\"Cannot get schema for `targetSchema` param\");\r\n }\r\n targetSchema = (targetSchema || obj.constructor);\r\n if (schemaStorage.has(targetSchema)) {\r\n const schema = schemaStorage.get(targetSchema);\r\n res = {};\r\n const namedSchema = this.getSchemaByName(schema, schemaName);\r\n for (const key in namedSchema) {\r\n try {\r\n const item = namedSchema[key];\r\n const objItem = obj[key];\r\n let value;\r\n if ((item.optional && objItem === undefined)\r\n || (item.defaultValue !== undefined && objItem === item.defaultValue)) {\r\n continue;\r\n }\r\n if (!item.optional && objItem === undefined) {\r\n throw new SerializerError(targetSchema.name, `Property '${key}' is required.`);\r\n }\r\n if (typeof item.type === \"number\") {\r\n if (item.converter) {\r\n if (item.repeated) {\r\n value = objItem.map((el) => item.converter.toJSON(el, obj));\r\n }\r\n else {\r\n value = item.converter.toJSON(objItem, obj);\r\n }\r\n }\r\n else {\r\n value = objItem;\r\n }\r\n }\r\n else {\r\n if (item.repeated) {\r\n value = objItem.map((el) => this.toJSON(el, { schemaName }));\r\n }\r\n else {\r\n value = this.toJSON(objItem, { schemaName });\r\n }\r\n }\r\n this.checkTypes(value, item);\r\n this.checkValues(value, item);\r\n res[item.name || key] = value;\r\n }\r\n catch (e) {\r\n if (e instanceof SerializerError) {\r\n throw e;\r\n }\r\n else {\r\n throw new SerializerError(schema.target.name, `Property '${key}' is wrong. ${e.message}`, e);\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n res = {};\r\n for (const key in obj) {\r\n res[key] = this.toJSON(obj[key], { schemaName });\r\n }\r\n }\r\n }\r\n else {\r\n res = obj;\r\n }\r\n return res;\r\n }\r\n}\n\nclass JsonParser extends JsonTransform {\r\n static parse(data, options) {\r\n const obj = JSON.parse(data);\r\n return this.fromJSON(obj, options);\r\n }\r\n static fromJSON(target, options) {\r\n const targetSchema = options.targetSchema;\r\n const schemaName = options.schemaName || DEFAULT_SCHEMA;\r\n const obj = new targetSchema();\r\n if (isConvertible(obj)) {\r\n return obj.fromJSON(target);\r\n }\r\n const schema = schemaStorage.get(targetSchema);\r\n const namedSchema = this.getSchemaByName(schema, schemaName);\r\n const keyErrors = {};\r\n if (options.strictProperty && !Array.isArray(target)) {\r\n JsonParser.checkStrictProperty(target, namedSchema, schema);\r\n }\r\n for (const key in namedSchema) {\r\n try {\r\n const item = namedSchema[key];\r\n const name = item.name || key;\r\n const value = target[name];\r\n if (value === undefined && (item.optional || item.defaultValue !== undefined)) {\r\n continue;\r\n }\r\n if (!item.optional && value === undefined) {\r\n throw new ParserError(schema, `Property '${name}' is required.`);\r\n }\r\n this.checkTypes(value, item);\r\n this.checkValues(value, item);\r\n if (typeof (item.type) === \"number\") {\r\n if (item.converter) {\r\n if (item.repeated) {\r\n obj[key] = value.map((el) => item.converter.fromJSON(el, obj));\r\n }\r\n else {\r\n obj[key] = item.converter.fromJSON(value, obj);\r\n }\r\n }\r\n else {\r\n obj[key] = value;\r\n }\r\n }\r\n else {\r\n const newOptions = {\r\n ...options,\r\n targetSchema: item.type,\r\n schemaName,\r\n };\r\n if (item.repeated) {\r\n obj[key] = value.map((el) => this.fromJSON(el, newOptions));\r\n }\r\n else {\r\n obj[key] = this.fromJSON(value, newOptions);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n if (!(e instanceof ParserError)) {\r\n e = new ParserError(schema, `Property '${key}' is wrong. ${e.message}`, e);\r\n }\r\n if (options.strictAllKeys) {\r\n keyErrors[key] = e;\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n }\r\n const keys = Object.keys(keyErrors);\r\n if (keys.length) {\r\n throw new KeyError(schema, keys, keyErrors);\r\n }\r\n return obj;\r\n }\r\n static checkStrictProperty(target, namedSchema, schema) {\r\n const jsonProps = Object.keys(target);\r\n const schemaProps = Object.keys(namedSchema);\r\n const keys = [];\r\n for (const key of jsonProps) {\r\n if (schemaProps.indexOf(key) === -1) {\r\n keys.push(key);\r\n }\r\n }\r\n if (keys.length) {\r\n throw new KeyError(schema, keys);\r\n }\r\n }\r\n}\n\nfunction getValidations(item) {\r\n const validations = [];\r\n if (item.pattern) {\r\n validations.push(new PatternValidation(item.pattern));\r\n }\r\n if (item.type === JsonPropTypes.Number || item.type === JsonPropTypes.Any) {\r\n if (item.minInclusive !== undefined || item.maxInclusive !== undefined) {\r\n validations.push(new InclusiveValidation(item.minInclusive, item.maxInclusive));\r\n }\r\n if (item.minExclusive !== undefined || item.maxExclusive !== undefined) {\r\n validations.push(new ExclusiveValidation(item.minExclusive, item.maxExclusive));\r\n }\r\n if (item.enumeration !== undefined) {\r\n validations.push(new EnumerationValidation(item.enumeration));\r\n }\r\n }\r\n if (item.type === JsonPropTypes.String || item.repeated || item.type === JsonPropTypes.Any) {\r\n if (item.length !== undefined || item.minLength !== undefined || item.maxLength !== undefined) {\r\n validations.push(new LengthValidation(item.length, item.minLength, item.maxLength));\r\n }\r\n }\r\n return validations;\r\n}\r\nconst JsonProp = (options = {}) => (target, propertyKey) => {\r\n const errorMessage = `Cannot set type for ${propertyKey} property of ${target.constructor.name} schema`;\r\n let schema;\r\n if (!schemaStorage.has(target.constructor)) {\r\n schema = schemaStorage.create(target.constructor);\r\n schemaStorage.set(target.constructor, schema);\r\n }\r\n else {\r\n schema = schemaStorage.get(target.constructor);\r\n if (schema.target !== target.constructor) {\r\n schema = schemaStorage.create(target.constructor);\r\n schemaStorage.set(target.constructor, schema);\r\n }\r\n }\r\n const defaultSchema = {\r\n type: JsonPropTypes.Any,\r\n validations: [],\r\n };\r\n const copyOptions = Object.assign(defaultSchema, options);\r\n copyOptions.validations = getValidations(copyOptions);\r\n if (typeof copyOptions.type !== \"number\") {\r\n if (!schemaStorage.has(copyOptions.type) && !isConvertible(copyOptions.type)) {\r\n throw new Error(`${errorMessage}. Assigning type doesn't have schema.`);\r\n }\r\n }\r\n let schemaNames;\r\n if (Array.isArray(options.schema)) {\r\n schemaNames = options.schema;\r\n }\r\n else {\r\n schemaNames = [options.schema || DEFAULT_SCHEMA];\r\n }\r\n for (const schemaName of schemaNames) {\r\n if (!schema.names[schemaName]) {\r\n schema.names[schemaName] = {};\r\n }\r\n const namedSchema = schema.names[schemaName];\r\n namedSchema[propertyKey] = copyOptions;\r\n }\r\n};\n\nexport { JsonError, JsonParser, JsonProp, JsonPropTypes, JsonSerializer, KeyError, ParserError, SerializerError, TransformError, ValidationError };\n","/*!\n Copyright (c) Peculiar Ventures, LLC\n*/\n\nimport { Convert, BufferSourceConverter, combine } from 'pvtsutils';\nexport { BufferSourceConverter } from 'pvtsutils';\nimport { AsnProp, AsnPropTypes, AsnType, AsnTypeTypes, AsnIntegerConverter, AsnSerializer, AsnConvert } from '@peculiar/asn1-schema';\nimport { __decorate } from 'tslib';\nimport { JsonProp, JsonPropTypes } from '@peculiar/json-schema';\nimport * as asn1 from 'asn1js';\n\nclass CryptoError extends Error {\n}\n\nclass AlgorithmError extends CryptoError {\n}\n\nclass UnsupportedOperationError extends CryptoError {\n constructor(methodName) {\n super(`Unsupported operation: ${methodName ? `${methodName}` : \"\"}`);\n }\n}\n\nclass OperationError extends CryptoError {\n}\n\nclass RequiredPropertyError extends CryptoError {\n constructor(propName) {\n super(`${propName}: Missing required property`);\n }\n}\n\nclass PemConverter {\n static toArrayBuffer(pem) {\n const base64 = pem\n .replace(/-{5}(BEGIN|END) .*-{5}/g, \"\")\n .replace(\"\\r\", \"\")\n .replace(\"\\n\", \"\");\n return Convert.FromBase64(base64);\n }\n static toUint8Array(pem) {\n const bytes = this.toArrayBuffer(pem);\n return new Uint8Array(bytes);\n }\n static fromBufferSource(buffer, tag) {\n const base64 = Convert.ToBase64(buffer);\n let sliced;\n let offset = 0;\n const rows = [];\n while (offset < base64.length) {\n sliced = base64.slice(offset, offset + 64);\n if (sliced.length) {\n rows.push(sliced);\n }\n else {\n break;\n }\n offset += 64;\n }\n const upperCaseTag = tag.toUpperCase();\n return `-----BEGIN ${upperCaseTag}-----\\n${rows.join(\"\\n\")}\\n-----END ${upperCaseTag}-----`;\n }\n static isPEM(data) {\n return /-----BEGIN .+-----[A-Za-z0-9+/+=\\s\\n]+-----END .+-----/i.test(data);\n }\n static getTagName(pem) {\n if (!this.isPEM(pem)) {\n throw new Error(\"Bad parameter. Incoming data is not right PEM\");\n }\n const res = /-----BEGIN (.+)-----/.exec(pem);\n if (!res) {\n throw new Error(\"Cannot get tag from PEM\");\n }\n return res[1];\n }\n static hasTagName(pem, tagName) {\n const tag = this.getTagName(pem);\n return tagName.toLowerCase() === tag.toLowerCase();\n }\n static isCertificate(pem) {\n return this.hasTagName(pem, \"certificate\");\n }\n static isCertificateRequest(pem) {\n return this.hasTagName(pem, \"certificate request\");\n }\n static isCRL(pem) {\n return this.hasTagName(pem, \"x509 crl\");\n }\n static isPublicKey(pem) {\n return this.hasTagName(pem, \"public key\");\n }\n}\n\nfunction isJWK(data) {\n return typeof data === \"object\" && \"kty\" in data;\n}\n\nclass ProviderCrypto {\n async digest(...args) {\n this.checkDigest.apply(this, args);\n return this.onDigest.apply(this, args);\n }\n checkDigest(algorithm, _data) {\n this.checkAlgorithmName(algorithm);\n }\n async onDigest(_algorithm, _data) {\n throw new UnsupportedOperationError(\"digest\");\n }\n async generateKey(...args) {\n this.checkGenerateKey.apply(this, args);\n return this.onGenerateKey.apply(this, args);\n }\n checkGenerateKey(algorithm, _extractable, keyUsages, ..._args) {\n this.checkAlgorithmName(algorithm);\n this.checkGenerateKeyParams(algorithm);\n if (!(keyUsages && keyUsages.length)) {\n throw new TypeError(`Usages cannot be empty when creating a key.`);\n }\n let allowedUsages;\n if (Array.isArray(this.usages)) {\n allowedUsages = this.usages;\n }\n else {\n allowedUsages = this.usages.privateKey.concat(this.usages.publicKey);\n }\n this.checkKeyUsages(keyUsages, allowedUsages);\n }\n checkGenerateKeyParams(_algorithm) {\n }\n async onGenerateKey(_algorithm, _extractable, _keyUsages, ..._args) {\n throw new UnsupportedOperationError(\"generateKey\");\n }\n async sign(...args) {\n this.checkSign.apply(this, args);\n return this.onSign.apply(this, args);\n }\n checkSign(algorithm, key, _data, ..._args) {\n this.checkAlgorithmName(algorithm);\n this.checkAlgorithmParams(algorithm);\n this.checkCryptoKey(key, \"sign\");\n }\n async onSign(_algorithm, _key, _data, ..._args) {\n throw new UnsupportedOperationError(\"sign\");\n }\n async verify(...args) {\n this.checkVerify.apply(this, args);\n return this.onVerify.apply(this, args);\n }\n checkVerify(algorithm, key, _signature, _data, ..._args) {\n this.checkAlgorithmName(algorithm);\n this.checkAlgorithmParams(algorithm);\n this.checkCryptoKey(key, \"verify\");\n }\n async onVerify(_algorithm, _key, _signature, _data, ..._args) {\n throw new UnsupportedOperationError(\"verify\");\n }\n async encrypt(...args) {\n this.checkEncrypt.apply(this, args);\n return this.onEncrypt.apply(this, args);\n }\n checkEncrypt(algorithm, key, _data, options = {}, ..._args) {\n this.checkAlgorithmName(algorithm);\n this.checkAlgorithmParams(algorithm);\n this.checkCryptoKey(key, options.keyUsage ? \"encrypt\" : void 0);\n }\n async onEncrypt(_algorithm, _key, _data, ..._args) {\n throw new UnsupportedOperationError(\"encrypt\");\n }\n async decrypt(...args) {\n this.checkDecrypt.apply(this, args);\n return this.onDecrypt.apply(this, args);\n }\n checkDecrypt(algorithm, key, _data, options = {}, ..._args) {\n this.checkAlgorithmName(algorithm);\n this.checkAlgorithmParams(algorithm);\n this.checkCryptoKey(key, options.keyUsage ? \"decrypt\" : void 0);\n }\n async onDecrypt(_algorithm, _key, _data, ..._args) {\n throw new UnsupportedOperationError(\"decrypt\");\n }\n async deriveBits(...args) {\n this.checkDeriveBits.apply(this, args);\n return this.onDeriveBits.apply(this, args);\n }\n checkDeriveBits(algorithm, baseKey, length, options = {}, ..._args) {\n this.checkAlgorithmName(algorithm);\n this.checkAlgorithmParams(algorithm);\n this.checkCryptoKey(baseKey, options.keyUsage ? \"deriveBits\" : void 0);\n if (length % 8 !== 0) {\n throw new OperationError(\"length: Is not multiple of 8\");\n }\n }\n async onDeriveBits(_algorithm, _baseKey, _length, ..._args) {\n throw new UnsupportedOperationError(\"deriveBits\");\n }\n async exportKey(...args) {\n this.checkExportKey.apply(this, args);\n return this.onExportKey.apply(this, args);\n }\n checkExportKey(format, key, ..._args) {\n this.checkKeyFormat(format);\n this.checkCryptoKey(key);\n if (!key.extractable) {\n throw new CryptoError(\"key: Is not extractable\");\n }\n }\n async onExportKey(_format, _key, ..._args) {\n throw new UnsupportedOperationError(\"exportKey\");\n }\n async importKey(...args) {\n this.checkImportKey.apply(this, args);\n return this.onImportKey.apply(this, args);\n }\n checkImportKey(format, keyData, algorithm, _extractable, keyUsages, ..._args) {\n this.checkKeyFormat(format);\n this.checkKeyData(format, keyData);\n this.checkAlgorithmName(algorithm);\n this.checkImportParams(algorithm);\n if (Array.isArray(this.usages)) {\n this.checkKeyUsages(keyUsages, this.usages);\n }\n }\n async onImportKey(_format, _keyData, _algorithm, _extractable, _keyUsages, ..._args) {\n throw new UnsupportedOperationError(\"importKey\");\n }\n checkAlgorithmName(algorithm) {\n if (algorithm.name.toLowerCase() !== this.name.toLowerCase()) {\n throw new AlgorithmError(\"Unrecognized name\");\n }\n }\n checkAlgorithmParams(_algorithm) {\n }\n checkDerivedKeyParams(_algorithm) {\n }\n checkKeyUsages(usages, allowed) {\n for (const usage of usages) {\n if (allowed.indexOf(usage) === -1) {\n throw new TypeError(\"Cannot create a key using the specified key usages\");\n }\n }\n }\n checkCryptoKey(key, keyUsage) {\n this.checkAlgorithmName(key.algorithm);\n if (keyUsage && key.usages.indexOf(keyUsage) === -1) {\n throw new CryptoError(`key does not match that of operation`);\n }\n }\n checkRequiredProperty(data, propName) {\n if (!(propName in data)) {\n throw new RequiredPropertyError(propName);\n }\n }\n checkHashAlgorithm(algorithm, hashAlgorithms) {\n for (const item of hashAlgorithms) {\n if (item.toLowerCase() === algorithm.name.toLowerCase()) {\n return;\n }\n }\n throw new OperationError(`hash: Must be one of ${hashAlgorithms.join(\", \")}`);\n }\n checkImportParams(_algorithm) {\n }\n checkKeyFormat(format) {\n switch (format) {\n case \"raw\":\n case \"pkcs8\":\n case \"spki\":\n case \"jwk\":\n break;\n default:\n throw new TypeError(\"format: Is invalid value. Must be 'jwk', 'raw', 'spki', or 'pkcs8'\");\n }\n }\n checkKeyData(format, keyData) {\n if (!keyData) {\n throw new TypeError(\"keyData: Cannot be empty on empty on key importing\");\n }\n if (format === \"jwk\") {\n if (!isJWK(keyData)) {\n throw new TypeError(\"keyData: Is not JsonWebToken\");\n }\n }\n else if (!BufferSourceConverter.isBufferSource(keyData)) {\n throw new TypeError(\"keyData: Is not ArrayBufferView or ArrayBuffer\");\n }\n }\n prepareData(data) {\n return BufferSourceConverter.toArrayBuffer(data);\n }\n}\n\nclass AesProvider extends ProviderCrypto {\n checkGenerateKeyParams(algorithm) {\n this.checkRequiredProperty(algorithm, \"length\");\n if (typeof algorithm.length !== \"number\") {\n throw new TypeError(\"length: Is not of type Number\");\n }\n switch (algorithm.length) {\n case 128:\n case 192:\n case 256:\n break;\n default:\n throw new TypeError(\"length: Must be 128, 192, or 256\");\n }\n }\n checkDerivedKeyParams(algorithm) {\n this.checkGenerateKeyParams(algorithm);\n }\n}\n\nclass AesCbcProvider extends AesProvider {\n constructor() {\n super(...arguments);\n this.name = \"AES-CBC\";\n this.usages = [\"encrypt\", \"decrypt\", \"wrapKey\", \"unwrapKey\"];\n }\n checkAlgorithmParams(algorithm) {\n this.checkRequiredProperty(algorithm, \"iv\");\n if (!(algorithm.iv instanceof ArrayBuffer || ArrayBuffer.isView(algorithm.iv))) {\n throw new TypeError(\"iv: Is not of type '(ArrayBuffer or ArrayBufferView)'\");\n }\n if (algorithm.iv.byteLength !== 16) {\n throw new TypeError(\"iv: Must have length 16 bytes\");\n }\n }\n}\n\nclass AesCmacProvider extends AesProvider {\n constructor() {\n super(...arguments);\n this.name = \"AES-CMAC\";\n this.usages = [\"sign\", \"verify\"];\n }\n checkAlgorithmParams(algorithm) {\n this.checkRequiredProperty(algorithm, \"length\");\n if (typeof algorithm.length !== \"number\") {\n throw new TypeError(\"length: Is not a Number\");\n }\n if (algorithm.length < 1) {\n throw new OperationError(\"length: Must be more than 0\");\n }\n }\n}\n\nclass AesCtrProvider extends AesProvider {\n constructor() {\n super(...arguments);\n this.name = \"AES-CTR\";\n this.usages = [\"encrypt\", \"decrypt\", \"wrapKey\", \"unwrapKey\"];\n }\n checkAlgorithmParams(algorithm) {\n this.checkRequiredProperty(algorithm, \"counter\");\n if (!(algorithm.counter instanceof ArrayBuffer || ArrayBuffer.isView(algorithm.counter))) {\n throw new TypeError(\"counter: Is not of type '(ArrayBuffer or ArrayBufferView)'\");\n }\n if (algorithm.counter.byteLength !== 16) {\n throw new TypeError(\"iv: Must have length 16 bytes\");\n }\n this.checkRequiredProperty(algorithm, \"length\");\n if (typeof algorithm.length !== \"number\") {\n throw new TypeError(\"length: Is not a Number\");\n }\n if (algorithm.length < 1) {\n throw new OperationError(\"length: Must be more than 0\");\n }\n }\n}\n\nclass AesEcbProvider extends AesProvider {\n constructor() {\n super(...arguments);\n this.name = \"AES-ECB\";\n this.usages = [\"encrypt\", \"decrypt\", \"wrapKey\", \"unwrapKey\"];\n }\n}\n\nclass AesGcmProvider extends AesProvider {\n constructor() {\n super(...arguments);\n this.name = \"AES-GCM\";\n this.usages = [\"encrypt\", \"decrypt\", \"wrapKey\", \"unwrapKey\"];\n }\n checkAlgorithmParams(algorithm) {\n var _a;\n this.checkRequiredProperty(algorithm, \"iv\");\n if (!(algorithm.iv instanceof ArrayBuffer || ArrayBuffer.isView(algorithm.iv))) {\n throw new TypeError(\"iv: Is not of type '(ArrayBuffer or ArrayBufferView)'\");\n }\n if (algorithm.iv.byteLength < 1) {\n throw new OperationError(\"iv: Must have length more than 0 and less than 2^64 - 1\");\n }\n (_a = algorithm.tagLength) !== null && _a !== void 0 ? _a : (algorithm.tagLength = 128);\n switch (algorithm.tagLength) {\n case 32:\n case 64:\n case 96:\n case 104:\n case 112:\n case 120:\n case 128:\n break;\n default:\n throw new OperationError(\"tagLength: Must be one of 32, 64, 96, 104, 112, 120 or 128\");\n }\n }\n}\n\nclass AesKwProvider extends AesProvider {\n constructor() {\n super(...arguments);\n this.name = \"AES-KW\";\n this.usages = [\"wrapKey\", \"unwrapKey\"];\n }\n}\n\nclass DesProvider extends ProviderCrypto {\n constructor() {\n super(...arguments);\n this.usages = [\"encrypt\", \"decrypt\", \"wrapKey\", \"unwrapKey\"];\n }\n checkAlgorithmParams(algorithm) {\n if (this.ivSize) {\n this.checkRequiredProperty(algorithm, \"iv\");\n if (!(algorithm.iv instanceof ArrayBuffer || ArrayBuffer.isView(algorithm.iv))) {\n throw new TypeError(\"iv: Is not of type '(ArrayBuffer or ArrayBufferView)'\");\n }\n if (algorithm.iv.byteLength !== this.ivSize) {\n throw new TypeError(`iv: Must have length ${this.ivSize} bytes`);\n }\n }\n }\n checkGenerateKeyParams(algorithm) {\n this.checkRequiredProperty(algorithm, \"length\");\n if (typeof algorithm.length !== \"number\") {\n throw new TypeError(\"length: Is not of type Number\");\n }\n if (algorithm.length !== this.keySizeBits) {\n throw new OperationError(`algorithm.length: Must be ${this.keySizeBits}`);\n }\n }\n checkDerivedKeyParams(algorithm) {\n this.checkGenerateKeyParams(algorithm);\n }\n}\n\nclass RsaProvider extends ProviderCrypto {\n constructor() {\n super(...arguments);\n this.hashAlgorithms = [\"SHA-1\", \"SHA-256\", \"SHA-384\", \"SHA-512\"];\n }\n checkGenerateKeyParams(algorithm) {\n this.checkRequiredProperty(algorithm, \"hash\");\n this.checkHashAlgorithm(algorithm.hash, this.hashAlgorithms);\n this.checkRequiredProperty(algorithm, \"publicExponent\");\n if (!(algorithm.publicExponent && algorithm.publicExponent instanceof Uint8Array)) {\n throw new TypeError(\"publicExponent: Missing or not a Uint8Array\");\n }\n const publicExponent = Convert.ToBase64(algorithm.publicExponent);\n if (!(publicExponent === \"Aw==\" || publicExponent === \"AQAB\")) {\n throw new TypeError(\"publicExponent: Must be [3] or [1,0,1]\");\n }\n this.checkRequiredProperty(algorithm, \"modulusLength\");\n if (algorithm.modulusLength % 8\n || algorithm.modulusLength < 256\n || algorithm.modulusLength > 16384) {\n throw new TypeError(\"The modulus length must be a multiple of 8 bits and >= 256 and <= 16384\");\n }\n }\n checkImportParams(algorithm) {\n this.checkRequiredProperty(algorithm, \"hash\");\n this.checkHashAlgorithm(algorithm.hash, this.hashAlgorithms);\n }\n}\n\nclass RsaSsaProvider extends RsaProvider {\n constructor() {\n super(...arguments);\n this.name = \"RSASSA-PKCS1-v1_5\";\n this.usages = {\n privateKey: [\"sign\"],\n publicKey: [\"verify\"],\n };\n }\n}\n\nclass RsaPssProvider extends RsaProvider {\n constructor() {\n super(...arguments);\n this.name = \"RSA-PSS\";\n this.usages = {\n privateKey: [\"sign\"],\n publicKey: [\"verify\"],\n };\n }\n checkAlgorithmParams(algorithm) {\n this.checkRequiredProperty(algorithm, \"saltLength\");\n if (typeof algorithm.saltLength !== \"number\") {\n throw new TypeError(\"saltLength: Is not a Number\");\n }\n if (algorithm.saltLength < 0) {\n throw new RangeError(\"saltLength: Must be positive number\");\n }\n }\n}\n\nclass RsaOaepProvider extends RsaProvider {\n constructor() {\n super(...arguments);\n this.name = \"RSA-OAEP\";\n this.usages = {\n privateKey: [\"decrypt\", \"unwrapKey\"],\n publicKey: [\"encrypt\", \"wrapKey\"],\n };\n }\n checkAlgorithmParams(algorithm) {\n if (algorithm.label\n && !(algorithm.label instanceof ArrayBuffer || ArrayBuffer.isView(algorithm.label))) {\n throw new TypeError(\"label: Is not of type '(ArrayBuffer or ArrayBufferView)'\");\n }\n }\n}\n\nclass EllipticProvider extends ProviderCrypto {\n checkGenerateKeyParams(algorithm) {\n this.checkRequiredProperty(algorithm, \"namedCurve\");\n this.checkNamedCurve(algorithm.namedCurve);\n }\n checkNamedCurve(namedCurve) {\n for (const item of this.namedCurves) {\n if (item.toLowerCase() === namedCurve.toLowerCase()) {\n return;\n }\n }\n throw new OperationError(`namedCurve: Must be one of ${this.namedCurves.join(\", \")}`);\n }\n}\n\nclass EcdsaProvider extends EllipticProvider {\n constructor() {\n super(...arguments);\n this.name = \"ECDSA\";\n this.hashAlgorithms = [\"SHA-1\", \"SHA-256\", \"SHA-384\", \"SHA-512\"];\n this.usages = {\n privateKey: [\"sign\"],\n publicKey: [\"verify\"],\n };\n this.namedCurves = [\"P-256\", \"P-384\", \"P-521\", \"K-256\"];\n }\n checkAlgorithmParams(algorithm) {\n this.checkRequiredProperty(algorithm, \"hash\");\n this.checkHashAlgorithm(algorithm.hash, this.hashAlgorithms);\n }\n}\n\nconst KEY_TYPES = [\"secret\", \"private\", \"public\"];\nclass CryptoKey {\n static create(algorithm, type, extractable, usages) {\n const key = new this();\n key.algorithm = algorithm;\n key.type = type;\n key.extractable = extractable;\n key.usages = usages;\n return key;\n }\n static isKeyType(data) {\n return KEY_TYPES.indexOf(data) !== -1;\n }\n get [Symbol.toStringTag]() {\n return \"CryptoKey\";\n }\n}\n\nclass EcdhProvider extends EllipticProvider {\n constructor() {\n super(...arguments);\n this.name = \"ECDH\";\n this.usages = {\n privateKey: [\"deriveBits\", \"deriveKey\"],\n publicKey: [],\n };\n this.namedCurves = [\"P-256\", \"P-384\", \"P-521\", \"K-256\"];\n }\n checkAlgorithmParams(algorithm) {\n this.checkRequiredProperty(algorithm, \"public\");\n if (!(algorithm.public instanceof CryptoKey)) {\n throw new TypeError(\"public: Is not a CryptoKey\");\n }\n if (algorithm.public.type !== \"public\") {\n throw new OperationError(\"public: Is not a public key\");\n }\n if (algorithm.public.algorithm.name !== this.name) {\n throw new OperationError(`public: Is not ${this.name} key`);\n }\n }\n}\n\nclass EcdhEsProvider extends EcdhProvider {\n constructor() {\n super(...arguments);\n this.name = \"ECDH-ES\";\n this.namedCurves = [\"X25519\", \"X448\"];\n }\n}\n\nclass EdDsaProvider extends EllipticProvider {\n constructor() {\n super(...arguments);\n this.name = \"EdDSA\";\n this.usages = {\n privateKey: [\"sign\"],\n publicKey: [\"verify\"],\n };\n this.namedCurves = [\"Ed25519\", \"Ed448\"];\n }\n}\n\nlet ObjectIdentifier = class ObjectIdentifier {\n constructor(value) {\n if (value) {\n this.value = value;\n }\n }\n};\n__decorate([\n AsnProp({ type: AsnPropTypes.ObjectIdentifier })\n], ObjectIdentifier.prototype, \"value\", void 0);\nObjectIdentifier = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], ObjectIdentifier);\n\nclass AlgorithmIdentifier {\n constructor(params) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({\n type: AsnPropTypes.ObjectIdentifier,\n })\n], AlgorithmIdentifier.prototype, \"algorithm\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Any,\n optional: true,\n })\n], AlgorithmIdentifier.prototype, \"parameters\", void 0);\n\nclass PrivateKeyInfo {\n constructor() {\n this.version = 0;\n this.privateKeyAlgorithm = new AlgorithmIdentifier();\n this.privateKey = new ArrayBuffer(0);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer })\n], PrivateKeyInfo.prototype, \"version\", void 0);\n__decorate([\n AsnProp({ type: AlgorithmIdentifier })\n], PrivateKeyInfo.prototype, \"privateKeyAlgorithm\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.OctetString })\n], PrivateKeyInfo.prototype, \"privateKey\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Any, optional: true })\n], PrivateKeyInfo.prototype, \"attributes\", void 0);\n\nclass PublicKeyInfo {\n constructor() {\n this.publicKeyAlgorithm = new AlgorithmIdentifier();\n this.publicKey = new ArrayBuffer(0);\n }\n}\n__decorate([\n AsnProp({ type: AlgorithmIdentifier })\n], PublicKeyInfo.prototype, \"publicKeyAlgorithm\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.BitString })\n], PublicKeyInfo.prototype, \"publicKey\", void 0);\n\nconst JsonBase64UrlArrayBufferConverter = {\n fromJSON: (value) => Convert.FromBase64Url(value),\n toJSON: (value) => Convert.ToBase64Url(new Uint8Array(value)),\n};\n\nconst AsnIntegerArrayBufferConverter = {\n fromASN: (value) => {\n const valueHex = value.valueBlock.valueHex;\n return !(new Uint8Array(valueHex)[0])\n ? value.valueBlock.valueHex.slice(1)\n : value.valueBlock.valueHex;\n },\n toASN: (value) => {\n const valueHex = new Uint8Array(value)[0] > 127\n ? combine(new Uint8Array([0]).buffer, value)\n : value;\n return new asn1.Integer({ valueHex });\n },\n};\n\nvar index$3 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n AsnIntegerArrayBufferConverter: AsnIntegerArrayBufferConverter,\n JsonBase64UrlArrayBufferConverter: JsonBase64UrlArrayBufferConverter\n});\n\nclass RsaPrivateKey {\n constructor() {\n this.version = 0;\n this.modulus = new ArrayBuffer(0);\n this.publicExponent = new ArrayBuffer(0);\n this.privateExponent = new ArrayBuffer(0);\n this.prime1 = new ArrayBuffer(0);\n this.prime2 = new ArrayBuffer(0);\n this.exponent1 = new ArrayBuffer(0);\n this.exponent2 = new ArrayBuffer(0);\n this.coefficient = new ArrayBuffer(0);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer, converter: AsnIntegerConverter })\n], RsaPrivateKey.prototype, \"version\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter }),\n JsonProp({ name: \"n\", converter: JsonBase64UrlArrayBufferConverter })\n], RsaPrivateKey.prototype, \"modulus\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter }),\n JsonProp({ name: \"e\", converter: JsonBase64UrlArrayBufferConverter })\n], RsaPrivateKey.prototype, \"publicExponent\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter }),\n JsonProp({ name: \"d\", converter: JsonBase64UrlArrayBufferConverter })\n], RsaPrivateKey.prototype, \"privateExponent\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter }),\n JsonProp({ name: \"p\", converter: JsonBase64UrlArrayBufferConverter })\n], RsaPrivateKey.prototype, \"prime1\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter }),\n JsonProp({ name: \"q\", converter: JsonBase64UrlArrayBufferConverter })\n], RsaPrivateKey.prototype, \"prime2\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter }),\n JsonProp({ name: \"dp\", converter: JsonBase64UrlArrayBufferConverter })\n], RsaPrivateKey.prototype, \"exponent1\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter }),\n JsonProp({ name: \"dq\", converter: JsonBase64UrlArrayBufferConverter })\n], RsaPrivateKey.prototype, \"exponent2\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter }),\n JsonProp({ name: \"qi\", converter: JsonBase64UrlArrayBufferConverter })\n], RsaPrivateKey.prototype, \"coefficient\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Any, optional: true })\n], RsaPrivateKey.prototype, \"otherPrimeInfos\", void 0);\n\nclass RsaPublicKey {\n constructor() {\n this.modulus = new ArrayBuffer(0);\n this.publicExponent = new ArrayBuffer(0);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter }),\n JsonProp({ name: \"n\", converter: JsonBase64UrlArrayBufferConverter })\n], RsaPublicKey.prototype, \"modulus\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter }),\n JsonProp({ name: \"e\", converter: JsonBase64UrlArrayBufferConverter })\n], RsaPublicKey.prototype, \"publicExponent\", void 0);\n\nlet EcPublicKey = class EcPublicKey {\n constructor(value) {\n this.value = new ArrayBuffer(0);\n if (value) {\n this.value = value;\n }\n }\n toJSON() {\n let bytes = new Uint8Array(this.value);\n if (bytes[0] !== 0x04) {\n throw new CryptoError(\"Wrong ECPoint. Current version supports only Uncompressed (0x04) point\");\n }\n bytes = new Uint8Array(this.value.slice(1));\n const size = bytes.length / 2;\n const offset = 0;\n const json = {\n x: Convert.ToBase64Url(bytes.buffer.slice(offset, offset + size)),\n y: Convert.ToBase64Url(bytes.buffer.slice(offset + size, offset + size + size)),\n };\n return json;\n }\n fromJSON(json) {\n if (!(\"x\" in json)) {\n throw new Error(\"x: Missing required property\");\n }\n if (!(\"y\" in json)) {\n throw new Error(\"y: Missing required property\");\n }\n const x = Convert.FromBase64Url(json.x);\n const y = Convert.FromBase64Url(json.y);\n const value = combine(new Uint8Array([0x04]).buffer, x, y);\n this.value = new Uint8Array(value).buffer;\n return this;\n }\n};\n__decorate([\n AsnProp({ type: AsnPropTypes.OctetString })\n], EcPublicKey.prototype, \"value\", void 0);\nEcPublicKey = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], EcPublicKey);\n\nclass EcPrivateKey {\n constructor() {\n this.version = 1;\n this.privateKey = new ArrayBuffer(0);\n }\n fromJSON(json) {\n if (!(\"d\" in json)) {\n throw new Error(\"d: Missing required property\");\n }\n this.privateKey = Convert.FromBase64Url(json.d);\n if (\"x\" in json) {\n const publicKey = new EcPublicKey();\n publicKey.fromJSON(json);\n const asn = AsnSerializer.toASN(publicKey);\n if (\"valueHex\" in asn.valueBlock) {\n this.publicKey = asn.valueBlock.valueHex;\n }\n }\n return this;\n }\n toJSON() {\n const jwk = {};\n jwk.d = Convert.ToBase64Url(this.privateKey);\n if (this.publicKey) {\n Object.assign(jwk, new EcPublicKey(this.publicKey).toJSON());\n }\n return jwk;\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer, converter: AsnIntegerConverter })\n], EcPrivateKey.prototype, \"version\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.OctetString })\n], EcPrivateKey.prototype, \"privateKey\", void 0);\n__decorate([\n AsnProp({ context: 0, type: AsnPropTypes.Any, optional: true })\n], EcPrivateKey.prototype, \"parameters\", void 0);\n__decorate([\n AsnProp({ context: 1, type: AsnPropTypes.BitString, optional: true })\n], EcPrivateKey.prototype, \"publicKey\", void 0);\n\nconst AsnIntegerWithoutPaddingConverter = {\n fromASN: (value) => {\n const bytes = new Uint8Array(value.valueBlock.valueHex);\n return (bytes[0] === 0)\n ? bytes.buffer.slice(1)\n : bytes.buffer;\n },\n toASN: (value) => {\n const bytes = new Uint8Array(value);\n if (bytes[0] > 127) {\n const newValue = new Uint8Array(bytes.length + 1);\n newValue.set(bytes, 1);\n return new asn1.Integer({ valueHex: newValue.buffer });\n }\n return new asn1.Integer({ valueHex: value });\n },\n};\n\nvar index$2 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n AsnIntegerWithoutPaddingConverter: AsnIntegerWithoutPaddingConverter\n});\n\nclass EcUtils {\n static decodePoint(data, pointSize) {\n const view = BufferSourceConverter.toUint8Array(data);\n if ((view.length === 0) || (view[0] !== 4)) {\n throw new Error(\"Only uncompressed point format supported\");\n }\n const n = (view.length - 1) / 2;\n if (n !== (Math.ceil(pointSize / 8))) {\n throw new Error(\"Point does not match field size\");\n }\n const xb = view.slice(1, n + 1);\n const yb = view.slice(n + 1, n + 1 + n);\n return { x: xb, y: yb };\n }\n static encodePoint(point, pointSize) {\n const size = Math.ceil(pointSize / 8);\n if (point.x.byteLength !== size || point.y.byteLength !== size) {\n throw new Error(\"X,Y coordinates don't match point size criteria\");\n }\n const x = BufferSourceConverter.toUint8Array(point.x);\n const y = BufferSourceConverter.toUint8Array(point.y);\n const res = new Uint8Array(size * 2 + 1);\n res[0] = 4;\n res.set(x, 1);\n res.set(y, size + 1);\n return res;\n }\n static getSize(pointSize) {\n return Math.ceil(pointSize / 8);\n }\n static encodeSignature(signature, pointSize) {\n const size = this.getSize(pointSize);\n const r = BufferSourceConverter.toUint8Array(signature.r);\n const s = BufferSourceConverter.toUint8Array(signature.s);\n const res = new Uint8Array(size * 2);\n res.set(this.padStart(r, size));\n res.set(this.padStart(s, size), size);\n return res;\n }\n static decodeSignature(data, pointSize) {\n const size = this.getSize(pointSize);\n const view = BufferSourceConverter.toUint8Array(data);\n if (view.length !== (size * 2)) {\n throw new Error(\"Incorrect size of the signature\");\n }\n const r = view.slice(0, size);\n const s = view.slice(size);\n return {\n r: this.trimStart(r),\n s: this.trimStart(s),\n };\n }\n static trimStart(data) {\n let i = 0;\n while ((i < data.length - 1) && (data[i] === 0)) {\n i++;\n }\n if (i === 0) {\n return data;\n }\n return data.slice(i, data.length);\n }\n static padStart(data, size) {\n if (size === data.length) {\n return data;\n }\n const res = new Uint8Array(size);\n res.set(data, size - data.length);\n return res;\n }\n}\n\nclass EcDsaSignature {\n constructor() {\n this.r = new ArrayBuffer(0);\n this.s = new ArrayBuffer(0);\n }\n static fromWebCryptoSignature(value) {\n const pointSize = value.byteLength / 2;\n const point = EcUtils.decodeSignature(value, pointSize * 8);\n const ecSignature = new EcDsaSignature();\n ecSignature.r = BufferSourceConverter.toArrayBuffer(point.r);\n ecSignature.s = BufferSourceConverter.toArrayBuffer(point.s);\n return ecSignature;\n }\n toWebCryptoSignature(pointSize) {\n pointSize !== null && pointSize !== void 0 ? pointSize : (pointSize = Math.max(this.r.byteLength, this.s.byteLength) * 8);\n const signature = EcUtils.encodeSignature(this, pointSize);\n return signature.buffer;\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer, converter: AsnIntegerWithoutPaddingConverter })\n], EcDsaSignature.prototype, \"r\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer, converter: AsnIntegerWithoutPaddingConverter })\n], EcDsaSignature.prototype, \"s\", void 0);\n\nclass OneAsymmetricKey extends PrivateKeyInfo {\n}\n__decorate([\n AsnProp({ context: 1, implicit: true, type: AsnPropTypes.BitString, optional: true })\n], OneAsymmetricKey.prototype, \"publicKey\", void 0);\n\nlet EdPrivateKey = class EdPrivateKey {\n constructor() {\n this.value = new ArrayBuffer(0);\n }\n fromJSON(json) {\n if (!json.d) {\n throw new Error(\"d: Missing required property\");\n }\n this.value = Convert.FromBase64Url(json.d);\n return this;\n }\n toJSON() {\n const jwk = {\n d: Convert.ToBase64Url(this.value),\n };\n return jwk;\n }\n};\n__decorate([\n AsnProp({ type: AsnPropTypes.OctetString })\n], EdPrivateKey.prototype, \"value\", void 0);\nEdPrivateKey = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], EdPrivateKey);\n\nlet EdPublicKey = class EdPublicKey {\n constructor(value) {\n this.value = new ArrayBuffer(0);\n if (value) {\n this.value = value;\n }\n }\n toJSON() {\n const json = {\n x: Convert.ToBase64Url(this.value),\n };\n return json;\n }\n fromJSON(json) {\n if (!(\"x\" in json)) {\n throw new Error(\"x: Missing required property\");\n }\n this.value = Convert.FromBase64Url(json.x);\n return this;\n }\n};\n__decorate([\n AsnProp({ type: AsnPropTypes.BitString })\n], EdPublicKey.prototype, \"value\", void 0);\nEdPublicKey = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], EdPublicKey);\n\nlet CurvePrivateKey = class CurvePrivateKey {\n};\n__decorate([\n AsnProp({ type: AsnPropTypes.OctetString }),\n JsonProp({ type: JsonPropTypes.String, converter: JsonBase64UrlArrayBufferConverter })\n], CurvePrivateKey.prototype, \"d\", void 0);\nCurvePrivateKey = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], CurvePrivateKey);\n\nconst idSecp256r1 = \"1.2.840.10045.3.1.7\";\nconst idEllipticCurve = \"1.3.132.0\";\nconst idSecp384r1 = `${idEllipticCurve}.34`;\nconst idSecp521r1 = `${idEllipticCurve}.35`;\nconst idSecp256k1 = `${idEllipticCurve}.10`;\nconst idVersionOne = \"1.3.36.3.3.2.8.1.1\";\nconst idBrainpoolP160r1 = `${idVersionOne}.1`;\nconst idBrainpoolP160t1 = `${idVersionOne}.2`;\nconst idBrainpoolP192r1 = `${idVersionOne}.3`;\nconst idBrainpoolP192t1 = `${idVersionOne}.4`;\nconst idBrainpoolP224r1 = `${idVersionOne}.5`;\nconst idBrainpoolP224t1 = `${idVersionOne}.6`;\nconst idBrainpoolP256r1 = `${idVersionOne}.7`;\nconst idBrainpoolP256t1 = `${idVersionOne}.8`;\nconst idBrainpoolP320r1 = `${idVersionOne}.9`;\nconst idBrainpoolP320t1 = `${idVersionOne}.10`;\nconst idBrainpoolP384r1 = `${idVersionOne}.11`;\nconst idBrainpoolP384t1 = `${idVersionOne}.12`;\nconst idBrainpoolP512r1 = `${idVersionOne}.13`;\nconst idBrainpoolP512t1 = `${idVersionOne}.14`;\nconst idX25519 = \"1.3.101.110\";\nconst idX448 = \"1.3.101.111\";\nconst idEd25519 = \"1.3.101.112\";\nconst idEd448 = \"1.3.101.113\";\n\nvar index$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n AlgorithmIdentifier: AlgorithmIdentifier,\n get CurvePrivateKey () { return CurvePrivateKey; },\n EcDsaSignature: EcDsaSignature,\n EcPrivateKey: EcPrivateKey,\n get EcPublicKey () { return EcPublicKey; },\n get EdPrivateKey () { return EdPrivateKey; },\n get EdPublicKey () { return EdPublicKey; },\n get ObjectIdentifier () { return ObjectIdentifier; },\n OneAsymmetricKey: OneAsymmetricKey,\n PrivateKeyInfo: PrivateKeyInfo,\n PublicKeyInfo: PublicKeyInfo,\n RsaPrivateKey: RsaPrivateKey,\n RsaPublicKey: RsaPublicKey,\n converters: index$2,\n idBrainpoolP160r1: idBrainpoolP160r1,\n idBrainpoolP160t1: idBrainpoolP160t1,\n idBrainpoolP192r1: idBrainpoolP192r1,\n idBrainpoolP192t1: idBrainpoolP192t1,\n idBrainpoolP224r1: idBrainpoolP224r1,\n idBrainpoolP224t1: idBrainpoolP224t1,\n idBrainpoolP256r1: idBrainpoolP256r1,\n idBrainpoolP256t1: idBrainpoolP256t1,\n idBrainpoolP320r1: idBrainpoolP320r1,\n idBrainpoolP320t1: idBrainpoolP320t1,\n idBrainpoolP384r1: idBrainpoolP384r1,\n idBrainpoolP384t1: idBrainpoolP384t1,\n idBrainpoolP512r1: idBrainpoolP512r1,\n idBrainpoolP512t1: idBrainpoolP512t1,\n idEd25519: idEd25519,\n idEd448: idEd448,\n idEllipticCurve: idEllipticCurve,\n idSecp256k1: idSecp256k1,\n idSecp256r1: idSecp256r1,\n idSecp384r1: idSecp384r1,\n idSecp521r1: idSecp521r1,\n idVersionOne: idVersionOne,\n idX25519: idX25519,\n idX448: idX448\n});\n\nclass EcCurves {\n constructor() { }\n static register(item) {\n const oid = new ObjectIdentifier();\n oid.value = item.id;\n const raw = AsnConvert.serialize(oid);\n this.items.push({\n ...item,\n raw,\n });\n this.names.push(item.name);\n }\n static find(nameOrId) {\n nameOrId = nameOrId.toUpperCase();\n for (const item of this.items) {\n if (item.name.toUpperCase() === nameOrId || item.id.toUpperCase() === nameOrId) {\n return item;\n }\n }\n return null;\n }\n static get(nameOrId) {\n const res = this.find(nameOrId);\n if (!res) {\n throw new Error(`Unsupported EC named curve '${nameOrId}'`);\n }\n return res;\n }\n}\nEcCurves.items = [];\nEcCurves.names = [];\nEcCurves.register({ name: \"P-256\", id: idSecp256r1, size: 256 });\nEcCurves.register({ name: \"P-384\", id: idSecp384r1, size: 384 });\nEcCurves.register({ name: \"P-521\", id: idSecp521r1, size: 521 });\nEcCurves.register({ name: \"K-256\", id: idSecp256k1, size: 256 });\nEcCurves.register({ name: \"brainpoolP160r1\", id: idBrainpoolP160r1, size: 160 });\nEcCurves.register({ name: \"brainpoolP160t1\", id: idBrainpoolP160t1, size: 160 });\nEcCurves.register({ name: \"brainpoolP192r1\", id: idBrainpoolP192r1, size: 192 });\nEcCurves.register({ name: \"brainpoolP192t1\", id: idBrainpoolP192t1, size: 192 });\nEcCurves.register({ name: \"brainpoolP224r1\", id: idBrainpoolP224r1, size: 224 });\nEcCurves.register({ name: \"brainpoolP224t1\", id: idBrainpoolP224t1, size: 224 });\nEcCurves.register({ name: \"brainpoolP256r1\", id: idBrainpoolP256r1, size: 256 });\nEcCurves.register({ name: \"brainpoolP256t1\", id: idBrainpoolP256t1, size: 256 });\nEcCurves.register({ name: \"brainpoolP320r1\", id: idBrainpoolP320r1, size: 320 });\nEcCurves.register({ name: \"brainpoolP320t1\", id: idBrainpoolP320t1, size: 320 });\nEcCurves.register({ name: \"brainpoolP384r1\", id: idBrainpoolP384r1, size: 384 });\nEcCurves.register({ name: \"brainpoolP384t1\", id: idBrainpoolP384t1, size: 384 });\nEcCurves.register({ name: \"brainpoolP512r1\", id: idBrainpoolP512r1, size: 512 });\nEcCurves.register({ name: \"brainpoolP512t1\", id: idBrainpoolP512t1, size: 512 });\n\nclass X25519Provider extends ProviderCrypto {\n constructor() {\n super(...arguments);\n this.name = \"X25519\";\n this.usages = {\n privateKey: [\"deriveKey\", \"deriveBits\"],\n publicKey: [],\n };\n }\n checkAlgorithmParams(algorithm) {\n this.checkRequiredProperty(algorithm, \"public\");\n }\n}\n\nclass Ed25519Provider extends ProviderCrypto {\n constructor() {\n super(...arguments);\n this.name = \"Ed25519\";\n this.usages = {\n privateKey: [\"sign\"],\n publicKey: [\"verify\"],\n };\n }\n}\n\nclass HmacProvider extends ProviderCrypto {\n constructor() {\n super(...arguments);\n this.name = \"HMAC\";\n this.hashAlgorithms = [\"SHA-1\", \"SHA-256\", \"SHA-384\", \"SHA-512\"];\n this.usages = [\"sign\", \"verify\"];\n }\n getDefaultLength(algName) {\n switch (algName.toUpperCase()) {\n case \"SHA-1\":\n case \"SHA-256\":\n case \"SHA-384\":\n case \"SHA-512\":\n return 512;\n default:\n throw new Error(`Unknown algorithm name '${algName}'`);\n }\n }\n checkGenerateKeyParams(algorithm) {\n this.checkRequiredProperty(algorithm, \"hash\");\n this.checkHashAlgorithm(algorithm.hash, this.hashAlgorithms);\n if (\"length\" in algorithm) {\n if (typeof algorithm.length !== \"number\") {\n throw new TypeError(\"length: Is not a Number\");\n }\n if (algorithm.length < 1) {\n throw new RangeError(\"length: Number is out of range\");\n }\n }\n }\n checkImportParams(algorithm) {\n this.checkRequiredProperty(algorithm, \"hash\");\n this.checkHashAlgorithm(algorithm.hash, this.hashAlgorithms);\n }\n}\n\nclass Pbkdf2Provider extends ProviderCrypto {\n constructor() {\n super(...arguments);\n this.name = \"PBKDF2\";\n this.hashAlgorithms = [\"SHA-1\", \"SHA-256\", \"SHA-384\", \"SHA-512\"];\n this.usages = [\"deriveBits\", \"deriveKey\"];\n }\n checkAlgorithmParams(algorithm) {\n this.checkRequiredProperty(algorithm, \"hash\");\n this.checkHashAlgorithm(algorithm.hash, this.hashAlgorithms);\n this.checkRequiredProperty(algorithm, \"salt\");\n if (!(algorithm.salt instanceof ArrayBuffer || ArrayBuffer.isView(algorithm.salt))) {\n throw new TypeError(\"salt: Is not of type '(ArrayBuffer or ArrayBufferView)'\");\n }\n this.checkRequiredProperty(algorithm, \"iterations\");\n if (typeof algorithm.iterations !== \"number\") {\n throw new TypeError(\"iterations: Is not a Number\");\n }\n if (algorithm.iterations < 1) {\n throw new TypeError(\"iterations: Is less than 1\");\n }\n }\n checkImportKey(format, keyData, algorithm, extractable, keyUsages, ...args) {\n super.checkImportKey(format, keyData, algorithm, extractable, keyUsages, ...args);\n if (extractable) {\n throw new SyntaxError(\"extractable: Must be 'false'\");\n }\n }\n}\n\nclass HkdfProvider extends ProviderCrypto {\n constructor() {\n super(...arguments);\n this.name = \"HKDF\";\n this.hashAlgorithms = [\"SHA-1\", \"SHA-256\", \"SHA-384\", \"SHA-512\"];\n this.usages = [\"deriveKey\", \"deriveBits\"];\n }\n checkAlgorithmParams(algorithm) {\n this.checkRequiredProperty(algorithm, \"hash\");\n this.checkHashAlgorithm(algorithm.hash, this.hashAlgorithms);\n this.checkRequiredProperty(algorithm, \"salt\");\n if (!BufferSourceConverter.isBufferSource(algorithm.salt)) {\n throw new TypeError(\"salt: Is not of type '(ArrayBuffer or ArrayBufferView)'\");\n }\n this.checkRequiredProperty(algorithm, \"info\");\n if (!BufferSourceConverter.isBufferSource(algorithm.info)) {\n throw new TypeError(\"salt: Is not of type '(ArrayBuffer or ArrayBufferView)'\");\n }\n }\n checkImportKey(format, keyData, algorithm, extractable, keyUsages, ...args) {\n super.checkImportKey(format, keyData, algorithm, extractable, keyUsages, ...args);\n if (extractable) {\n throw new SyntaxError(\"extractable: Must be 'false'\");\n }\n }\n}\n\nclass ShakeProvider extends ProviderCrypto {\n constructor() {\n super(...arguments);\n this.usages = [];\n this.defaultLength = 0;\n }\n digest(...args) {\n args[0] = { length: this.defaultLength, ...args[0] };\n return super.digest.apply(this, args);\n }\n checkDigest(algorithm, data) {\n super.checkDigest(algorithm, data);\n const length = algorithm.length || 0;\n if (typeof length !== \"number\") {\n throw new TypeError(\"length: Is not a Number\");\n }\n if (length < 0) {\n throw new TypeError(\"length: Is negative\");\n }\n }\n}\n\nclass Shake128Provider extends ShakeProvider {\n constructor() {\n super(...arguments);\n this.name = \"shake128\";\n this.defaultLength = 16;\n }\n}\n\nclass Shake256Provider extends ShakeProvider {\n constructor() {\n super(...arguments);\n this.name = \"shake256\";\n this.defaultLength = 32;\n }\n}\n\nclass Crypto {\n get [Symbol.toStringTag]() {\n return \"Crypto\";\n }\n randomUUID() {\n const b = this.getRandomValues(new Uint8Array(16));\n b[6] = (b[6] & 0x0f) | 0x40;\n b[8] = (b[8] & 0x3f) | 0x80;\n const uuid = Convert.ToHex(b).toLowerCase();\n return `${uuid.substring(0, 8)}-${uuid.substring(8, 12)}-${uuid.substring(12, 16)}-${uuid.substring(16, 20)}-${uuid.substring(20)}`;\n }\n}\n\nclass ProviderStorage {\n constructor() {\n this.items = {};\n }\n get(algorithmName) {\n return this.items[algorithmName.toLowerCase()] || null;\n }\n set(provider) {\n this.items[provider.name.toLowerCase()] = provider;\n }\n removeAt(algorithmName) {\n const provider = this.get(algorithmName.toLowerCase());\n if (provider) {\n delete this.items[algorithmName];\n }\n return provider;\n }\n has(name) {\n return !!this.get(name);\n }\n get length() {\n return Object.keys(this.items).length;\n }\n get algorithms() {\n const algorithms = [];\n for (const key in this.items) {\n const provider = this.items[key];\n algorithms.push(provider.name);\n }\n return algorithms.sort();\n }\n}\n\nconst keyFormatMap = {\n \"jwk\": [\"private\", \"public\", \"secret\"],\n \"pkcs8\": [\"private\"],\n \"spki\": [\"public\"],\n \"raw\": [\"secret\", \"public\"]\n};\nconst sourceBufferKeyFormats = [\"pkcs8\", \"spki\", \"raw\"];\nclass SubtleCrypto {\n constructor() {\n this.providers = new ProviderStorage();\n }\n static isHashedAlgorithm(data) {\n return data\n && typeof data === \"object\"\n && \"name\" in data\n && \"hash\" in data\n ? true\n : false;\n }\n get [Symbol.toStringTag]() {\n return \"SubtleCrypto\";\n }\n async digest(...args) {\n this.checkRequiredArguments(args, 2, \"digest\");\n const [algorithm, data, ...params] = args;\n const preparedAlgorithm = this.prepareAlgorithm(algorithm);\n const preparedData = BufferSourceConverter.toArrayBuffer(data);\n const provider = this.getProvider(preparedAlgorithm.name);\n const result = await provider.digest(preparedAlgorithm, preparedData, ...params);\n return result;\n }\n async generateKey(...args) {\n this.checkRequiredArguments(args, 3, \"generateKey\");\n const [algorithm, extractable, keyUsages, ...params] = args;\n const preparedAlgorithm = this.prepareAlgorithm(algorithm);\n const provider = this.getProvider(preparedAlgorithm.name);\n const result = await provider.generateKey({ ...preparedAlgorithm, name: provider.name }, extractable, keyUsages, ...params);\n return result;\n }\n async sign(...args) {\n this.checkRequiredArguments(args, 3, \"sign\");\n const [algorithm, key, data, ...params] = args;\n this.checkCryptoKey(key);\n const preparedAlgorithm = this.prepareAlgorithm(algorithm);\n const preparedData = BufferSourceConverter.toArrayBuffer(data);\n const provider = this.getProvider(preparedAlgorithm.name);\n const result = await provider.sign({ ...preparedAlgorithm, name: provider.name }, key, preparedData, ...params);\n return result;\n }\n async verify(...args) {\n this.checkRequiredArguments(args, 4, \"verify\");\n const [algorithm, key, signature, data, ...params] = args;\n this.checkCryptoKey(key);\n const preparedAlgorithm = this.prepareAlgorithm(algorithm);\n const preparedData = BufferSourceConverter.toArrayBuffer(data);\n const preparedSignature = BufferSourceConverter.toArrayBuffer(signature);\n const provider = this.getProvider(preparedAlgorithm.name);\n const result = await provider.verify({ ...preparedAlgorithm, name: provider.name }, key, preparedSignature, preparedData, ...params);\n return result;\n }\n async encrypt(...args) {\n this.checkRequiredArguments(args, 3, \"encrypt\");\n const [algorithm, key, data, ...params] = args;\n this.checkCryptoKey(key);\n const preparedAlgorithm = this.prepareAlgorithm(algorithm);\n const preparedData = BufferSourceConverter.toArrayBuffer(data);\n const provider = this.getProvider(preparedAlgorithm.name);\n const result = await provider.encrypt({ ...preparedAlgorithm, name: provider.name }, key, preparedData, { keyUsage: true }, ...params);\n return result;\n }\n async decrypt(...args) {\n this.checkRequiredArguments(args, 3, \"decrypt\");\n const [algorithm, key, data, ...params] = args;\n this.checkCryptoKey(key);\n const preparedAlgorithm = this.prepareAlgorithm(algorithm);\n const preparedData = BufferSourceConverter.toArrayBuffer(data);\n const provider = this.getProvider(preparedAlgorithm.name);\n const result = await provider.decrypt({ ...preparedAlgorithm, name: provider.name }, key, preparedData, { keyUsage: true }, ...params);\n return result;\n }\n async deriveBits(...args) {\n this.checkRequiredArguments(args, 3, \"deriveBits\");\n const [algorithm, baseKey, length, ...params] = args;\n this.checkCryptoKey(baseKey);\n const preparedAlgorithm = this.prepareAlgorithm(algorithm);\n const provider = this.getProvider(preparedAlgorithm.name);\n const result = await provider.deriveBits({ ...preparedAlgorithm, name: provider.name }, baseKey, length, { keyUsage: true }, ...params);\n return result;\n }\n async deriveKey(...args) {\n this.checkRequiredArguments(args, 5, \"deriveKey\");\n const [algorithm, baseKey, derivedKeyType, extractable, keyUsages, ...params] = args;\n const preparedDerivedKeyType = this.prepareAlgorithm(derivedKeyType);\n const importProvider = this.getProvider(preparedDerivedKeyType.name);\n importProvider.checkDerivedKeyParams(preparedDerivedKeyType);\n const preparedAlgorithm = this.prepareAlgorithm(algorithm);\n const provider = this.getProvider(preparedAlgorithm.name);\n provider.checkCryptoKey(baseKey, \"deriveKey\");\n const derivedBits = await provider.deriveBits({ ...preparedAlgorithm, name: provider.name }, baseKey, derivedKeyType.length || 512, { keyUsage: false }, ...params);\n return this.importKey(\"raw\", derivedBits, derivedKeyType, extractable, keyUsages, ...params);\n }\n async exportKey(...args) {\n this.checkRequiredArguments(args, 2, \"exportKey\");\n const [format, key, ...params] = args;\n this.checkCryptoKey(key);\n if (!keyFormatMap[format]) {\n throw new TypeError(\"Invalid keyFormat argument\");\n }\n if (!keyFormatMap[format].includes(key.type)) {\n throw new DOMException(\"The key is not of the expected type\");\n }\n const provider = this.getProvider(key.algorithm.name);\n const result = await provider.exportKey(format, key, ...params);\n return result;\n }\n async importKey(...args) {\n this.checkRequiredArguments(args, 5, \"importKey\");\n const [format, keyData, algorithm, extractable, keyUsages, ...params] = args;\n const preparedAlgorithm = this.prepareAlgorithm(algorithm);\n const provider = this.getProvider(preparedAlgorithm.name);\n if (format === \"jwk\") {\n if (typeof keyData !== \"object\" || !keyData.kty) {\n throw new TypeError(\"Key data must be an object for JWK import\");\n }\n }\n else if (sourceBufferKeyFormats.includes(format)) {\n if (!BufferSourceConverter.isBufferSource(keyData)) {\n throw new TypeError(\"Key data must be a BufferSource for non-JWK formats\");\n }\n }\n else {\n throw new TypeError(\"The provided value is not of type '(ArrayBuffer or ArrayBufferView or JsonWebKey)'\");\n }\n return provider.importKey(format, keyData, { ...preparedAlgorithm, name: provider.name }, extractable, keyUsages, ...params);\n }\n async wrapKey(format, key, wrappingKey, wrapAlgorithm, ...args) {\n let keyData = await this.exportKey(format, key, ...args);\n if (format === \"jwk\") {\n const json = JSON.stringify(keyData);\n keyData = Convert.FromUtf8String(json);\n }\n const preparedAlgorithm = this.prepareAlgorithm(wrapAlgorithm);\n const preparedData = BufferSourceConverter.toArrayBuffer(keyData);\n const provider = this.getProvider(preparedAlgorithm.name);\n return provider.encrypt({ ...preparedAlgorithm, name: provider.name }, wrappingKey, preparedData, { keyUsage: false }, ...args);\n }\n async unwrapKey(format, wrappedKey, unwrappingKey, unwrapAlgorithm, unwrappedKeyAlgorithm, extractable, keyUsages, ...args) {\n const preparedAlgorithm = this.prepareAlgorithm(unwrapAlgorithm);\n const preparedData = BufferSourceConverter.toArrayBuffer(wrappedKey);\n const provider = this.getProvider(preparedAlgorithm.name);\n let keyData = await provider.decrypt({ ...preparedAlgorithm, name: provider.name }, unwrappingKey, preparedData, { keyUsage: false }, ...args);\n if (format === \"jwk\") {\n try {\n keyData = JSON.parse(Convert.ToUtf8String(keyData));\n }\n catch (e) {\n const error = new TypeError(\"wrappedKey: Is not a JSON\");\n error.internal = e;\n throw error;\n }\n }\n return this.importKey(format, keyData, unwrappedKeyAlgorithm, extractable, keyUsages, ...args);\n }\n checkRequiredArguments(args, size, methodName) {\n if (args.length < size) {\n throw new TypeError(`Failed to execute '${methodName}' on 'SubtleCrypto': ${size} arguments required, but only ${args.length} present`);\n }\n }\n prepareAlgorithm(algorithm) {\n if (typeof algorithm === \"string\") {\n return {\n name: algorithm,\n };\n }\n if (SubtleCrypto.isHashedAlgorithm(algorithm)) {\n const preparedAlgorithm = { ...algorithm };\n preparedAlgorithm.hash = this.prepareAlgorithm(algorithm.hash);\n return preparedAlgorithm;\n }\n return { ...algorithm };\n }\n getProvider(name) {\n const provider = this.providers.get(name);\n if (!provider) {\n throw new AlgorithmError(\"Unrecognized name\");\n }\n return provider;\n }\n checkCryptoKey(key) {\n if (!(key instanceof CryptoKey)) {\n throw new TypeError(`Key is not of type 'CryptoKey'`);\n }\n }\n}\n\nvar index = /*#__PURE__*/Object.freeze({\n __proto__: null,\n converters: index$3\n});\n\nconst REQUIRED_FIELDS = [\"crv\", \"e\", \"k\", \"kty\", \"n\", \"x\", \"y\"];\nclass JwkUtils {\n static async thumbprint(hash, jwk, crypto) {\n const data = this.format(jwk, true);\n return crypto.subtle.digest(hash, Convert.FromBinary(JSON.stringify(data)));\n }\n static format(jwk, remove = false) {\n let res = Object.entries(jwk);\n if (remove) {\n res = res.filter(o => REQUIRED_FIELDS.includes(o[0]));\n }\n res = res.sort(([keyA], [keyB]) => keyA > keyB ? 1 : keyA < keyB ? -1 : 0);\n return Object.fromEntries(res);\n }\n}\n\nexport { AesCbcProvider, AesCmacProvider, AesCtrProvider, AesEcbProvider, AesGcmProvider, AesKwProvider, AesProvider, AlgorithmError, Crypto, CryptoError, CryptoKey, DesProvider, EcCurves, EcUtils, EcdhEsProvider, EcdhProvider, EcdsaProvider, Ed25519Provider, EdDsaProvider, EllipticProvider, HkdfProvider, HmacProvider, JwkUtils, OperationError, Pbkdf2Provider, PemConverter, ProviderCrypto, ProviderStorage, RequiredPropertyError, RsaOaepProvider, RsaProvider, RsaPssProvider, RsaSsaProvider, Shake128Provider, Shake256Provider, ShakeProvider, SubtleCrypto, UnsupportedOperationError, X25519Provider, index$1 as asn1, isJWK, index as json };\n","/*!\n Copyright (c) Peculiar Ventures, LLC\n*/\n\nimport * as core from 'webcrypto-core';\nimport { BufferSourceConverter as BufferSourceConverter$1 } from 'webcrypto-core';\nexport { CryptoKey } from 'webcrypto-core';\nimport { Buffer as Buffer$1 } from 'buffer';\nimport crypto from 'crypto';\nimport * as process from 'process';\nimport { __decorate } from 'tslib';\nimport { JsonProp, JsonPropTypes, JsonSerializer, JsonParser } from '@peculiar/json-schema';\nimport { Convert, BufferSourceConverter } from 'pvtsutils';\nimport { AsnParser, AsnSerializer, AsnConvert } from '@peculiar/asn1-schema';\n\nconst JsonBase64UrlConverter = {\n fromJSON: (value) => Buffer$1.from(Convert.FromBase64Url(value)),\n toJSON: (value) => Convert.ToBase64Url(value),\n};\n\nclass CryptoKey extends core.CryptoKey {\n constructor() {\n super(...arguments);\n this.data = Buffer$1.alloc(0);\n this.algorithm = { name: \"\" };\n this.extractable = false;\n this.type = \"secret\";\n this.usages = [];\n this.kty = \"oct\";\n this.alg = \"\";\n }\n}\n__decorate([\n JsonProp({ name: \"ext\", type: JsonPropTypes.Boolean, optional: true })\n], CryptoKey.prototype, \"extractable\", void 0);\n__decorate([\n JsonProp({ name: \"key_ops\", type: JsonPropTypes.String, repeated: true, optional: true })\n], CryptoKey.prototype, \"usages\", void 0);\n__decorate([\n JsonProp({ type: JsonPropTypes.String })\n], CryptoKey.prototype, \"kty\", void 0);\n__decorate([\n JsonProp({ type: JsonPropTypes.String, optional: true })\n], CryptoKey.prototype, \"alg\", void 0);\n\nclass SymmetricKey extends CryptoKey {\n constructor() {\n super(...arguments);\n this.kty = \"oct\";\n this.type = \"secret\";\n }\n}\n\nclass AsymmetricKey extends CryptoKey {\n}\n\nclass AesCryptoKey extends SymmetricKey {\n get alg() {\n switch (this.algorithm.name.toUpperCase()) {\n case \"AES-CBC\":\n return `A${this.algorithm.length}CBC`;\n case \"AES-CTR\":\n return `A${this.algorithm.length}CTR`;\n case \"AES-GCM\":\n return `A${this.algorithm.length}GCM`;\n case \"AES-KW\":\n return `A${this.algorithm.length}KW`;\n case \"AES-CMAC\":\n return `A${this.algorithm.length}CMAC`;\n case \"AES-ECB\":\n return `A${this.algorithm.length}ECB`;\n default:\n throw new core.AlgorithmError(\"Unsupported algorithm name\");\n }\n }\n set alg(value) {\n }\n}\n__decorate([\n JsonProp({ name: \"k\", converter: JsonBase64UrlConverter })\n], AesCryptoKey.prototype, \"data\", void 0);\n\nclass AesCrypto {\n static async generateKey(algorithm, extractable, keyUsages) {\n const key = new AesCryptoKey();\n key.algorithm = algorithm;\n key.extractable = extractable;\n key.usages = keyUsages;\n key.data = crypto.randomBytes(algorithm.length >> 3);\n return key;\n }\n static async exportKey(format, key) {\n if (!(key instanceof AesCryptoKey)) {\n throw new Error(\"key: Is not AesCryptoKey\");\n }\n switch (format.toLowerCase()) {\n case \"jwk\":\n return JsonSerializer.toJSON(key);\n case \"raw\":\n return new Uint8Array(key.data).buffer;\n default:\n throw new core.OperationError(\"format: Must be 'jwk' or 'raw'\");\n }\n }\n static async importKey(format, keyData, algorithm, extractable, keyUsages) {\n let key;\n switch (format.toLowerCase()) {\n case \"jwk\":\n key = JsonParser.fromJSON(keyData, { targetSchema: AesCryptoKey });\n break;\n case \"raw\":\n key = new AesCryptoKey();\n key.data = Buffer$1.from(keyData);\n break;\n default:\n throw new core.OperationError(\"format: Must be 'jwk' or 'raw'\");\n }\n key.algorithm = algorithm;\n key.algorithm.length = key.data.length << 3;\n key.extractable = extractable;\n key.usages = keyUsages;\n switch (key.algorithm.length) {\n case 128:\n case 192:\n case 256:\n break;\n default:\n throw new core.OperationError(\"keyData: Is wrong key length\");\n }\n return key;\n }\n static async encrypt(algorithm, key, data) {\n switch (algorithm.name.toUpperCase()) {\n case \"AES-CBC\":\n return this.encryptAesCBC(algorithm, key, Buffer$1.from(data));\n case \"AES-CTR\":\n return this.encryptAesCTR(algorithm, key, Buffer$1.from(data));\n case \"AES-GCM\":\n return this.encryptAesGCM(algorithm, key, Buffer$1.from(data));\n case \"AES-KW\":\n return this.encryptAesKW(algorithm, key, Buffer$1.from(data));\n case \"AES-ECB\":\n return this.encryptAesECB(algorithm, key, Buffer$1.from(data));\n default:\n throw new core.OperationError(\"algorithm: Is not recognized\");\n }\n }\n static async decrypt(algorithm, key, data) {\n if (!(key instanceof AesCryptoKey)) {\n throw new Error(\"key: Is not AesCryptoKey\");\n }\n switch (algorithm.name.toUpperCase()) {\n case \"AES-CBC\":\n return this.decryptAesCBC(algorithm, key, Buffer$1.from(data));\n case \"AES-CTR\":\n return this.decryptAesCTR(algorithm, key, Buffer$1.from(data));\n case \"AES-GCM\":\n return this.decryptAesGCM(algorithm, key, Buffer$1.from(data));\n case \"AES-KW\":\n return this.decryptAesKW(algorithm, key, Buffer$1.from(data));\n case \"AES-ECB\":\n return this.decryptAesECB(algorithm, key, Buffer$1.from(data));\n default:\n throw new core.OperationError(\"algorithm: Is not recognized\");\n }\n }\n static async encryptAesCBC(algorithm, key, data) {\n const cipher = crypto.createCipheriv(`aes-${key.algorithm.length}-cbc`, key.data, new Uint8Array(algorithm.iv));\n let enc = cipher.update(data);\n enc = Buffer$1.concat([enc, cipher.final()]);\n const res = new Uint8Array(enc).buffer;\n return res;\n }\n static async decryptAesCBC(algorithm, key, data) {\n const decipher = crypto.createDecipheriv(`aes-${key.algorithm.length}-cbc`, key.data, new Uint8Array(algorithm.iv));\n let dec = decipher.update(data);\n dec = Buffer$1.concat([dec, decipher.final()]);\n return new Uint8Array(dec).buffer;\n }\n static async encryptAesCTR(algorithm, key, data) {\n const cipher = crypto.createCipheriv(`aes-${key.algorithm.length}-ctr`, key.data, Buffer$1.from(algorithm.counter));\n let enc = cipher.update(data);\n enc = Buffer$1.concat([enc, cipher.final()]);\n const res = new Uint8Array(enc).buffer;\n return res;\n }\n static async decryptAesCTR(algorithm, key, data) {\n const decipher = crypto.createDecipheriv(`aes-${key.algorithm.length}-ctr`, key.data, new Uint8Array(algorithm.counter));\n let dec = decipher.update(data);\n dec = Buffer$1.concat([dec, decipher.final()]);\n return new Uint8Array(dec).buffer;\n }\n static async encryptAesGCM(algorithm, key, data) {\n const cipher = crypto.createCipheriv(`aes-${key.algorithm.length}-gcm`, key.data, Buffer$1.from(algorithm.iv), {\n authTagLength: (algorithm.tagLength || 128) >> 3,\n });\n if (algorithm.additionalData) {\n cipher.setAAD(Buffer$1.from(algorithm.additionalData));\n }\n let enc = cipher.update(data);\n enc = Buffer$1.concat([enc, cipher.final(), cipher.getAuthTag()]);\n const res = new Uint8Array(enc).buffer;\n return res;\n }\n static async decryptAesGCM(algorithm, key, data) {\n const tagLength = (algorithm.tagLength || 128) >> 3;\n const decipher = crypto.createDecipheriv(`aes-${key.algorithm.length}-gcm`, key.data, new Uint8Array(algorithm.iv), {\n authTagLength: tagLength,\n });\n const enc = data.slice(0, data.length - tagLength);\n const tag = data.slice(data.length - tagLength);\n if (algorithm.additionalData) {\n decipher.setAAD(Buffer$1.from(algorithm.additionalData));\n }\n decipher.setAuthTag(tag);\n let dec = decipher.update(enc);\n dec = Buffer$1.concat([dec, decipher.final()]);\n return new Uint8Array(dec).buffer;\n }\n static async encryptAesKW(algorithm, key, data) {\n const cipher = crypto.createCipheriv(`id-aes${key.algorithm.length}-wrap`, key.data, this.AES_KW_IV);\n let enc = cipher.update(data);\n enc = Buffer$1.concat([enc, cipher.final()]);\n return new Uint8Array(enc).buffer;\n }\n static async decryptAesKW(algorithm, key, data) {\n const decipher = crypto.createDecipheriv(`id-aes${key.algorithm.length}-wrap`, key.data, this.AES_KW_IV);\n let dec = decipher.update(data);\n dec = Buffer$1.concat([dec, decipher.final()]);\n return new Uint8Array(dec).buffer;\n }\n static async encryptAesECB(algorithm, key, data) {\n const cipher = crypto.createCipheriv(`aes-${key.algorithm.length}-ecb`, key.data, new Uint8Array(0));\n let enc = cipher.update(data);\n enc = Buffer$1.concat([enc, cipher.final()]);\n const res = new Uint8Array(enc).buffer;\n return res;\n }\n static async decryptAesECB(algorithm, key, data) {\n const decipher = crypto.createDecipheriv(`aes-${key.algorithm.length}-ecb`, key.data, new Uint8Array(0));\n let dec = decipher.update(data);\n dec = Buffer$1.concat([dec, decipher.final()]);\n return new Uint8Array(dec).buffer;\n }\n}\nAesCrypto.AES_KW_IV = Buffer$1.from(\"A6A6A6A6A6A6A6A6\", \"hex\");\n\nconst keyStorage = new WeakMap();\nfunction getCryptoKey(key) {\n const res = keyStorage.get(key);\n if (!res) {\n throw new core.OperationError(\"Cannot get CryptoKey from secure storage\");\n }\n return res;\n}\nfunction setCryptoKey(value) {\n const key = core.CryptoKey.create(value.algorithm, value.type, value.extractable, value.usages);\n Object.freeze(key);\n keyStorage.set(key, value);\n return key;\n}\n\nclass AesCbcProvider extends core.AesCbcProvider {\n async onGenerateKey(algorithm, extractable, keyUsages) {\n const key = await AesCrypto.generateKey({\n name: this.name,\n length: algorithm.length,\n }, extractable, keyUsages);\n return setCryptoKey(key);\n }\n async onEncrypt(algorithm, key, data) {\n return AesCrypto.encrypt(algorithm, getCryptoKey(key), new Uint8Array(data));\n }\n async onDecrypt(algorithm, key, data) {\n return AesCrypto.decrypt(algorithm, getCryptoKey(key), new Uint8Array(data));\n }\n async onExportKey(format, key) {\n return AesCrypto.exportKey(format, getCryptoKey(key));\n }\n async onImportKey(format, keyData, algorithm, extractable, keyUsages) {\n const key = await AesCrypto.importKey(format, keyData, { name: algorithm.name }, extractable, keyUsages);\n return setCryptoKey(key);\n }\n checkCryptoKey(key, keyUsage) {\n super.checkCryptoKey(key, keyUsage);\n if (!(getCryptoKey(key) instanceof AesCryptoKey)) {\n throw new TypeError(\"key: Is not a AesCryptoKey\");\n }\n }\n}\n\nconst zero = Buffer$1.from([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);\nconst rb = Buffer$1.from([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135]);\nconst blockSize = 16;\nfunction bitShiftLeft(buffer) {\n const shifted = Buffer$1.alloc(buffer.length);\n const last = buffer.length - 1;\n for (let index = 0; index < last; index++) {\n shifted[index] = buffer[index] << 1;\n if (buffer[index + 1] & 0x80) {\n shifted[index] += 0x01;\n }\n }\n shifted[last] = buffer[last] << 1;\n return shifted;\n}\nfunction xor(a, b) {\n const length = Math.min(a.length, b.length);\n const output = Buffer$1.alloc(length);\n for (let index = 0; index < length; index++) {\n output[index] = a[index] ^ b[index];\n }\n return output;\n}\nfunction aes(key, message) {\n const cipher = crypto.createCipheriv(`aes${key.length << 3}`, key, zero);\n const result = cipher.update(message);\n cipher.final();\n return result;\n}\nfunction getMessageBlock(message, blockIndex) {\n const block = Buffer$1.alloc(blockSize);\n const start = blockIndex * blockSize;\n const end = start + blockSize;\n message.copy(block, 0, start, end);\n return block;\n}\nfunction getPaddedMessageBlock(message, blockIndex) {\n const block = Buffer$1.alloc(blockSize);\n const start = blockIndex * blockSize;\n const end = message.length;\n block.fill(0);\n message.copy(block, 0, start, end);\n block[end - start] = 0x80;\n return block;\n}\nfunction generateSubkeys(key) {\n const l = aes(key, zero);\n let subkey1 = bitShiftLeft(l);\n if (l[0] & 0x80) {\n subkey1 = xor(subkey1, rb);\n }\n let subkey2 = bitShiftLeft(subkey1);\n if (subkey1[0] & 0x80) {\n subkey2 = xor(subkey2, rb);\n }\n return { subkey1, subkey2 };\n}\nfunction aesCmac(key, message) {\n const subkeys = generateSubkeys(key);\n let blockCount = Math.ceil(message.length / blockSize);\n let lastBlockCompleteFlag;\n let lastBlock;\n if (blockCount === 0) {\n blockCount = 1;\n lastBlockCompleteFlag = false;\n }\n else {\n lastBlockCompleteFlag = (message.length % blockSize === 0);\n }\n const lastBlockIndex = blockCount - 1;\n if (lastBlockCompleteFlag) {\n lastBlock = xor(getMessageBlock(message, lastBlockIndex), subkeys.subkey1);\n }\n else {\n lastBlock = xor(getPaddedMessageBlock(message, lastBlockIndex), subkeys.subkey2);\n }\n let x = zero;\n let y;\n for (let index = 0; index < lastBlockIndex; index++) {\n y = xor(x, getMessageBlock(message, index));\n x = aes(key, y);\n }\n y = xor(lastBlock, x);\n return aes(key, y);\n}\nclass AesCmacProvider extends core.AesCmacProvider {\n async onGenerateKey(algorithm, extractable, keyUsages) {\n const key = await AesCrypto.generateKey({\n name: this.name,\n length: algorithm.length,\n }, extractable, keyUsages);\n return setCryptoKey(key);\n }\n async onSign(algorithm, key, data) {\n const result = aesCmac(getCryptoKey(key).data, Buffer$1.from(data));\n return new Uint8Array(result).buffer;\n }\n async onVerify(algorithm, key, signature, data) {\n const signature2 = await this.sign(algorithm, key, data);\n return Buffer$1.from(signature).compare(Buffer$1.from(signature2)) === 0;\n }\n async onExportKey(format, key) {\n return AesCrypto.exportKey(format, getCryptoKey(key));\n }\n async onImportKey(format, keyData, algorithm, extractable, keyUsages) {\n const res = await AesCrypto.importKey(format, keyData, { name: algorithm.name }, extractable, keyUsages);\n return setCryptoKey(res);\n }\n checkCryptoKey(key, keyUsage) {\n super.checkCryptoKey(key, keyUsage);\n if (!(getCryptoKey(key) instanceof AesCryptoKey)) {\n throw new TypeError(\"key: Is not a AesCryptoKey\");\n }\n }\n}\n\nclass AesCtrProvider extends core.AesCtrProvider {\n async onGenerateKey(algorithm, extractable, keyUsages) {\n const key = await AesCrypto.generateKey({\n name: this.name,\n length: algorithm.length,\n }, extractable, keyUsages);\n return setCryptoKey(key);\n }\n async onEncrypt(algorithm, key, data) {\n return AesCrypto.encrypt(algorithm, getCryptoKey(key), new Uint8Array(data));\n }\n async onDecrypt(algorithm, key, data) {\n return AesCrypto.decrypt(algorithm, getCryptoKey(key), new Uint8Array(data));\n }\n async onExportKey(format, key) {\n return AesCrypto.exportKey(format, getCryptoKey(key));\n }\n async onImportKey(format, keyData, algorithm, extractable, keyUsages) {\n const res = await AesCrypto.importKey(format, keyData, { name: algorithm.name }, extractable, keyUsages);\n return setCryptoKey(res);\n }\n checkCryptoKey(key, keyUsage) {\n super.checkCryptoKey(key, keyUsage);\n if (!(getCryptoKey(key) instanceof AesCryptoKey)) {\n throw new TypeError(\"key: Is not a AesCryptoKey\");\n }\n }\n}\n\nclass AesGcmProvider extends core.AesGcmProvider {\n async onGenerateKey(algorithm, extractable, keyUsages) {\n const key = await AesCrypto.generateKey({\n name: this.name,\n length: algorithm.length,\n }, extractable, keyUsages);\n return setCryptoKey(key);\n }\n async onEncrypt(algorithm, key, data) {\n return AesCrypto.encrypt(algorithm, getCryptoKey(key), new Uint8Array(data));\n }\n async onDecrypt(algorithm, key, data) {\n return AesCrypto.decrypt(algorithm, getCryptoKey(key), new Uint8Array(data));\n }\n async onExportKey(format, key) {\n return AesCrypto.exportKey(format, getCryptoKey(key));\n }\n async onImportKey(format, keyData, algorithm, extractable, keyUsages) {\n const res = await AesCrypto.importKey(format, keyData, { name: algorithm.name }, extractable, keyUsages);\n return setCryptoKey(res);\n }\n checkCryptoKey(key, keyUsage) {\n super.checkCryptoKey(key, keyUsage);\n if (!(getCryptoKey(key) instanceof AesCryptoKey)) {\n throw new TypeError(\"key: Is not a AesCryptoKey\");\n }\n }\n}\n\nclass AesKwProvider extends core.AesKwProvider {\n async onGenerateKey(algorithm, extractable, keyUsages) {\n const res = await AesCrypto.generateKey({\n name: this.name,\n length: algorithm.length,\n }, extractable, keyUsages);\n return setCryptoKey(res);\n }\n async onExportKey(format, key) {\n return AesCrypto.exportKey(format, getCryptoKey(key));\n }\n async onImportKey(format, keyData, algorithm, extractable, keyUsages) {\n const res = await AesCrypto.importKey(format, keyData, { name: algorithm.name }, extractable, keyUsages);\n return setCryptoKey(res);\n }\n async onEncrypt(algorithm, key, data) {\n return AesCrypto.encrypt(algorithm, getCryptoKey(key), new Uint8Array(data));\n }\n async onDecrypt(algorithm, key, data) {\n return AesCrypto.decrypt(algorithm, getCryptoKey(key), new Uint8Array(data));\n }\n checkCryptoKey(key, keyUsage) {\n super.checkCryptoKey(key, keyUsage);\n if (!(getCryptoKey(key) instanceof AesCryptoKey)) {\n throw new TypeError(\"key: Is not a AesCryptoKey\");\n }\n }\n}\n\nclass AesEcbProvider extends core.AesEcbProvider {\n async onGenerateKey(algorithm, extractable, keyUsages) {\n const key = await AesCrypto.generateKey({\n name: this.name,\n length: algorithm.length,\n }, extractable, keyUsages);\n return setCryptoKey(key);\n }\n async onEncrypt(algorithm, key, data) {\n return AesCrypto.encrypt(algorithm, getCryptoKey(key), new Uint8Array(data));\n }\n async onDecrypt(algorithm, key, data) {\n return AesCrypto.decrypt(algorithm, getCryptoKey(key), new Uint8Array(data));\n }\n async onExportKey(format, key) {\n return AesCrypto.exportKey(format, getCryptoKey(key));\n }\n async onImportKey(format, keyData, algorithm, extractable, keyUsages) {\n const res = await AesCrypto.importKey(format, keyData, { name: algorithm.name }, extractable, keyUsages);\n return setCryptoKey(res);\n }\n checkCryptoKey(key, keyUsage) {\n super.checkCryptoKey(key, keyUsage);\n if (!(getCryptoKey(key) instanceof AesCryptoKey)) {\n throw new TypeError(\"key: Is not a AesCryptoKey\");\n }\n }\n}\n\nclass DesCryptoKey extends SymmetricKey {\n get alg() {\n switch (this.algorithm.name.toUpperCase()) {\n case \"DES-CBC\":\n return `DES-CBC`;\n case \"DES-EDE3-CBC\":\n return `3DES-CBC`;\n default:\n throw new core.AlgorithmError(\"Unsupported algorithm name\");\n }\n }\n set alg(value) {\n }\n}\n__decorate([\n JsonProp({ name: \"k\", converter: JsonBase64UrlConverter })\n], DesCryptoKey.prototype, \"data\", void 0);\n\nclass DesCrypto {\n static async generateKey(algorithm, extractable, keyUsages) {\n const key = new DesCryptoKey();\n key.algorithm = algorithm;\n key.extractable = extractable;\n key.usages = keyUsages;\n key.data = crypto.randomBytes(algorithm.length >> 3);\n return key;\n }\n static async exportKey(format, key) {\n switch (format.toLowerCase()) {\n case \"jwk\":\n return JsonSerializer.toJSON(key);\n case \"raw\":\n return new Uint8Array(key.data).buffer;\n default:\n throw new core.OperationError(\"format: Must be 'jwk' or 'raw'\");\n }\n }\n static async importKey(format, keyData, algorithm, extractable, keyUsages) {\n let key;\n switch (format.toLowerCase()) {\n case \"jwk\":\n key = JsonParser.fromJSON(keyData, { targetSchema: DesCryptoKey });\n break;\n case \"raw\":\n key = new DesCryptoKey();\n key.data = Buffer$1.from(keyData);\n break;\n default:\n throw new core.OperationError(\"format: Must be 'jwk' or 'raw'\");\n }\n key.algorithm = algorithm;\n key.extractable = extractable;\n key.usages = keyUsages;\n return key;\n }\n static async encrypt(algorithm, key, data) {\n switch (algorithm.name.toUpperCase()) {\n case \"DES-CBC\":\n return this.encryptDesCBC(algorithm, key, Buffer$1.from(data));\n case \"DES-EDE3-CBC\":\n return this.encryptDesEDE3CBC(algorithm, key, Buffer$1.from(data));\n default:\n throw new core.OperationError(\"algorithm: Is not recognized\");\n }\n }\n static async decrypt(algorithm, key, data) {\n if (!(key instanceof DesCryptoKey)) {\n throw new Error(\"key: Is not DesCryptoKey\");\n }\n switch (algorithm.name.toUpperCase()) {\n case \"DES-CBC\":\n return this.decryptDesCBC(algorithm, key, Buffer$1.from(data));\n case \"DES-EDE3-CBC\":\n return this.decryptDesEDE3CBC(algorithm, key, Buffer$1.from(data));\n default:\n throw new core.OperationError(\"algorithm: Is not recognized\");\n }\n }\n static async encryptDesCBC(algorithm, key, data) {\n const cipher = crypto.createCipheriv(`des-cbc`, key.data, new Uint8Array(algorithm.iv));\n let enc = cipher.update(data);\n enc = Buffer$1.concat([enc, cipher.final()]);\n const res = new Uint8Array(enc).buffer;\n return res;\n }\n static async decryptDesCBC(algorithm, key, data) {\n const decipher = crypto.createDecipheriv(`des-cbc`, key.data, new Uint8Array(algorithm.iv));\n let dec = decipher.update(data);\n dec = Buffer$1.concat([dec, decipher.final()]);\n return new Uint8Array(dec).buffer;\n }\n static async encryptDesEDE3CBC(algorithm, key, data) {\n const cipher = crypto.createCipheriv(`des-ede3-cbc`, key.data, Buffer$1.from(algorithm.iv));\n let enc = cipher.update(data);\n enc = Buffer$1.concat([enc, cipher.final()]);\n const res = new Uint8Array(enc).buffer;\n return res;\n }\n static async decryptDesEDE3CBC(algorithm, key, data) {\n const decipher = crypto.createDecipheriv(`des-ede3-cbc`, key.data, new Uint8Array(algorithm.iv));\n let dec = decipher.update(data);\n dec = Buffer$1.concat([dec, decipher.final()]);\n return new Uint8Array(dec).buffer;\n }\n}\n\nclass DesCbcProvider extends core.DesProvider {\n constructor() {\n super(...arguments);\n this.keySizeBits = 64;\n this.ivSize = 8;\n this.name = \"DES-CBC\";\n }\n async onGenerateKey(algorithm, extractable, keyUsages) {\n const key = await DesCrypto.generateKey({\n name: this.name,\n length: this.keySizeBits,\n }, extractable, keyUsages);\n return setCryptoKey(key);\n }\n async onEncrypt(algorithm, key, data) {\n return DesCrypto.encrypt(algorithm, getCryptoKey(key), new Uint8Array(data));\n }\n async onDecrypt(algorithm, key, data) {\n return DesCrypto.decrypt(algorithm, getCryptoKey(key), new Uint8Array(data));\n }\n async onExportKey(format, key) {\n return DesCrypto.exportKey(format, getCryptoKey(key));\n }\n async onImportKey(format, keyData, algorithm, extractable, keyUsages) {\n const key = await DesCrypto.importKey(format, keyData, { name: this.name, length: this.keySizeBits }, extractable, keyUsages);\n if (key.data.length !== (this.keySizeBits >> 3)) {\n throw new core.OperationError(\"keyData: Wrong key size\");\n }\n return setCryptoKey(key);\n }\n checkCryptoKey(key, keyUsage) {\n super.checkCryptoKey(key, keyUsage);\n if (!(getCryptoKey(key) instanceof DesCryptoKey)) {\n throw new TypeError(\"key: Is not a DesCryptoKey\");\n }\n }\n}\n\nclass DesEde3CbcProvider extends core.DesProvider {\n constructor() {\n super(...arguments);\n this.keySizeBits = 192;\n this.ivSize = 8;\n this.name = \"DES-EDE3-CBC\";\n }\n async onGenerateKey(algorithm, extractable, keyUsages) {\n const key = await DesCrypto.generateKey({\n name: this.name,\n length: this.keySizeBits,\n }, extractable, keyUsages);\n return setCryptoKey(key);\n }\n async onEncrypt(algorithm, key, data) {\n return DesCrypto.encrypt(algorithm, getCryptoKey(key), new Uint8Array(data));\n }\n async onDecrypt(algorithm, key, data) {\n return DesCrypto.decrypt(algorithm, getCryptoKey(key), new Uint8Array(data));\n }\n async onExportKey(format, key) {\n return DesCrypto.exportKey(format, getCryptoKey(key));\n }\n async onImportKey(format, keyData, algorithm, extractable, keyUsages) {\n const key = await DesCrypto.importKey(format, keyData, { name: this.name, length: this.keySizeBits }, extractable, keyUsages);\n if (key.data.length !== (this.keySizeBits >> 3)) {\n throw new core.OperationError(\"keyData: Wrong key size\");\n }\n return setCryptoKey(key);\n }\n checkCryptoKey(key, keyUsage) {\n super.checkCryptoKey(key, keyUsage);\n if (!(getCryptoKey(key) instanceof DesCryptoKey)) {\n throw new TypeError(\"key: Is not a DesCryptoKey\");\n }\n }\n}\n\nfunction getJwkAlgorithm(algorithm) {\n switch (algorithm.name.toUpperCase()) {\n case \"RSA-OAEP\": {\n const mdSize = /(\\d+)$/.exec(algorithm.hash.name)[1];\n return `RSA-OAEP${mdSize !== \"1\" ? `-${mdSize}` : \"\"}`;\n }\n case \"RSASSA-PKCS1-V1_5\":\n return `RS${/(\\d+)$/.exec(algorithm.hash.name)[1]}`;\n case \"RSA-PSS\":\n return `PS${/(\\d+)$/.exec(algorithm.hash.name)[1]}`;\n case \"RSA-PKCS1\":\n return `RS1`;\n default:\n throw new core.OperationError(\"algorithm: Is not recognized\");\n }\n}\n\nclass RsaPrivateKey extends AsymmetricKey {\n constructor() {\n super(...arguments);\n this.type = \"private\";\n }\n getKey() {\n const keyInfo = AsnParser.parse(this.data, core.asn1.PrivateKeyInfo);\n return AsnParser.parse(keyInfo.privateKey, core.asn1.RsaPrivateKey);\n }\n toJSON() {\n const key = this.getKey();\n const json = {\n kty: \"RSA\",\n alg: getJwkAlgorithm(this.algorithm),\n key_ops: this.usages,\n ext: this.extractable,\n };\n return Object.assign(json, JsonSerializer.toJSON(key));\n }\n fromJSON(json) {\n const key = JsonParser.fromJSON(json, { targetSchema: core.asn1.RsaPrivateKey });\n const keyInfo = new core.asn1.PrivateKeyInfo();\n keyInfo.privateKeyAlgorithm.algorithm = \"1.2.840.113549.1.1.1\";\n keyInfo.privateKeyAlgorithm.parameters = null;\n keyInfo.privateKey = AsnSerializer.serialize(key);\n this.data = Buffer$1.from(AsnSerializer.serialize(keyInfo));\n }\n}\n\nclass RsaPublicKey extends AsymmetricKey {\n constructor() {\n super(...arguments);\n this.type = \"public\";\n }\n getKey() {\n const keyInfo = AsnParser.parse(this.data, core.asn1.PublicKeyInfo);\n return AsnParser.parse(keyInfo.publicKey, core.asn1.RsaPublicKey);\n }\n toJSON() {\n const key = this.getKey();\n const json = {\n kty: \"RSA\",\n alg: getJwkAlgorithm(this.algorithm),\n key_ops: this.usages,\n ext: this.extractable,\n };\n return Object.assign(json, JsonSerializer.toJSON(key));\n }\n fromJSON(json) {\n const key = JsonParser.fromJSON(json, { targetSchema: core.asn1.RsaPublicKey });\n const keyInfo = new core.asn1.PublicKeyInfo();\n keyInfo.publicKeyAlgorithm.algorithm = \"1.2.840.113549.1.1.1\";\n keyInfo.publicKeyAlgorithm.parameters = null;\n keyInfo.publicKey = AsnSerializer.serialize(key);\n this.data = Buffer$1.from(AsnSerializer.serialize(keyInfo));\n }\n}\n\nclass RsaCrypto {\n static async generateKey(algorithm, extractable, keyUsages) {\n const privateKey = new RsaPrivateKey();\n privateKey.algorithm = algorithm;\n privateKey.extractable = extractable;\n privateKey.usages = keyUsages.filter((usage) => this.privateKeyUsages.indexOf(usage) !== -1);\n const publicKey = new RsaPublicKey();\n publicKey.algorithm = algorithm;\n publicKey.extractable = true;\n publicKey.usages = keyUsages.filter((usage) => this.publicKeyUsages.indexOf(usage) !== -1);\n const publicExponent = Buffer$1.concat([\n Buffer$1.alloc(4 - algorithm.publicExponent.byteLength, 0),\n Buffer$1.from(algorithm.publicExponent),\n ]).readInt32BE(0);\n const keys = crypto.generateKeyPairSync(\"rsa\", {\n modulusLength: algorithm.modulusLength,\n publicExponent,\n publicKeyEncoding: {\n format: \"der\",\n type: \"spki\",\n },\n privateKeyEncoding: {\n format: \"der\",\n type: \"pkcs8\",\n },\n });\n privateKey.data = keys.privateKey;\n publicKey.data = keys.publicKey;\n const res = {\n privateKey,\n publicKey,\n };\n return res;\n }\n static async exportKey(format, key) {\n switch (format.toLowerCase()) {\n case \"jwk\":\n return JsonSerializer.toJSON(key);\n case \"pkcs8\":\n case \"spki\":\n return new Uint8Array(key.data).buffer;\n default:\n throw new core.OperationError(\"format: Must be 'jwk', 'pkcs8' or 'spki'\");\n }\n }\n static async importKey(format, keyData, algorithm, extractable, keyUsages) {\n switch (format.toLowerCase()) {\n case \"jwk\": {\n const jwk = keyData;\n if (jwk.d) {\n const asnKey = JsonParser.fromJSON(keyData, { targetSchema: core.asn1.RsaPrivateKey });\n return this.importPrivateKey(asnKey, algorithm, extractable, keyUsages);\n }\n else {\n const asnKey = JsonParser.fromJSON(keyData, { targetSchema: core.asn1.RsaPublicKey });\n return this.importPublicKey(asnKey, algorithm, extractable, keyUsages);\n }\n }\n case \"spki\": {\n const keyInfo = AsnParser.parse(new Uint8Array(keyData), core.asn1.PublicKeyInfo);\n const asnKey = AsnParser.parse(keyInfo.publicKey, core.asn1.RsaPublicKey);\n return this.importPublicKey(asnKey, algorithm, extractable, keyUsages);\n }\n case \"pkcs8\": {\n const keyInfo = AsnParser.parse(new Uint8Array(keyData), core.asn1.PrivateKeyInfo);\n const asnKey = AsnParser.parse(keyInfo.privateKey, core.asn1.RsaPrivateKey);\n return this.importPrivateKey(asnKey, algorithm, extractable, keyUsages);\n }\n default:\n throw new core.OperationError(\"format: Must be 'jwk', 'pkcs8' or 'spki'\");\n }\n }\n static async sign(algorithm, key, data) {\n switch (algorithm.name.toUpperCase()) {\n case \"RSA-PSS\":\n case \"RSASSA-PKCS1-V1_5\":\n return this.signRsa(algorithm, key, data);\n default:\n throw new core.OperationError(\"algorithm: Is not recognized\");\n }\n }\n static async verify(algorithm, key, signature, data) {\n switch (algorithm.name.toUpperCase()) {\n case \"RSA-PSS\":\n case \"RSASSA-PKCS1-V1_5\":\n return this.verifySSA(algorithm, key, data, signature);\n default:\n throw new core.OperationError(\"algorithm: Is not recognized\");\n }\n }\n static async encrypt(algorithm, key, data) {\n switch (algorithm.name.toUpperCase()) {\n case \"RSA-OAEP\":\n return this.encryptOAEP(algorithm, key, data);\n default:\n throw new core.OperationError(\"algorithm: Is not recognized\");\n }\n }\n static async decrypt(algorithm, key, data) {\n switch (algorithm.name.toUpperCase()) {\n case \"RSA-OAEP\":\n return this.decryptOAEP(algorithm, key, data);\n default:\n throw new core.OperationError(\"algorithm: Is not recognized\");\n }\n }\n static importPrivateKey(asnKey, algorithm, extractable, keyUsages) {\n const keyInfo = new core.asn1.PrivateKeyInfo();\n keyInfo.privateKeyAlgorithm.algorithm = \"1.2.840.113549.1.1.1\";\n keyInfo.privateKeyAlgorithm.parameters = null;\n keyInfo.privateKey = AsnSerializer.serialize(asnKey);\n const key = new RsaPrivateKey();\n key.data = Buffer$1.from(AsnSerializer.serialize(keyInfo));\n key.algorithm = Object.assign({}, algorithm);\n key.algorithm.publicExponent = new Uint8Array(asnKey.publicExponent);\n key.algorithm.modulusLength = asnKey.modulus.byteLength << 3;\n key.extractable = extractable;\n key.usages = keyUsages;\n return key;\n }\n static importPublicKey(asnKey, algorithm, extractable, keyUsages) {\n const keyInfo = new core.asn1.PublicKeyInfo();\n keyInfo.publicKeyAlgorithm.algorithm = \"1.2.840.113549.1.1.1\";\n keyInfo.publicKeyAlgorithm.parameters = null;\n keyInfo.publicKey = AsnSerializer.serialize(asnKey);\n const key = new RsaPublicKey();\n key.data = Buffer$1.from(AsnSerializer.serialize(keyInfo));\n key.algorithm = Object.assign({}, algorithm);\n key.algorithm.publicExponent = new Uint8Array(asnKey.publicExponent);\n key.algorithm.modulusLength = asnKey.modulus.byteLength << 3;\n key.extractable = extractable;\n key.usages = keyUsages;\n return key;\n }\n static getCryptoAlgorithm(alg) {\n switch (alg.hash.name.toUpperCase()) {\n case \"SHA-1\":\n return \"RSA-SHA1\";\n case \"SHA-256\":\n return \"RSA-SHA256\";\n case \"SHA-384\":\n return \"RSA-SHA384\";\n case \"SHA-512\":\n return \"RSA-SHA512\";\n case \"SHA3-256\":\n return \"RSA-SHA3-256\";\n case \"SHA3-384\":\n return \"RSA-SHA3-384\";\n case \"SHA3-512\":\n return \"RSA-SHA3-512\";\n default:\n throw new core.OperationError(\"algorithm.hash: Is not recognized\");\n }\n }\n static signRsa(algorithm, key, data) {\n const cryptoAlg = this.getCryptoAlgorithm(key.algorithm);\n const signer = crypto.createSign(cryptoAlg);\n signer.update(Buffer$1.from(data));\n if (!key.pem) {\n key.pem = `-----BEGIN PRIVATE KEY-----\\n${key.data.toString(\"base64\")}\\n-----END PRIVATE KEY-----`;\n }\n const options = {\n key: key.pem,\n };\n if (algorithm.name.toUpperCase() === \"RSA-PSS\") {\n options.padding = crypto.constants.RSA_PKCS1_PSS_PADDING;\n options.saltLength = algorithm.saltLength;\n }\n const signature = signer.sign(options);\n return new Uint8Array(signature).buffer;\n }\n static verifySSA(algorithm, key, data, signature) {\n const cryptoAlg = this.getCryptoAlgorithm(key.algorithm);\n const signer = crypto.createVerify(cryptoAlg);\n signer.update(Buffer$1.from(data));\n if (!key.pem) {\n key.pem = `-----BEGIN PUBLIC KEY-----\\n${key.data.toString(\"base64\")}\\n-----END PUBLIC KEY-----`;\n }\n const options = {\n key: key.pem,\n };\n if (algorithm.name.toUpperCase() === \"RSA-PSS\") {\n options.padding = crypto.constants.RSA_PKCS1_PSS_PADDING;\n options.saltLength = algorithm.saltLength;\n }\n const ok = signer.verify(options, signature);\n return ok;\n }\n static encryptOAEP(algorithm, key, data) {\n const options = {\n key: `-----BEGIN PUBLIC KEY-----\\n${key.data.toString(\"base64\")}\\n-----END PUBLIC KEY-----`,\n padding: crypto.constants.RSA_PKCS1_OAEP_PADDING,\n };\n if (algorithm.label) ;\n return new Uint8Array(crypto.publicEncrypt(options, data)).buffer;\n }\n static decryptOAEP(algorithm, key, data) {\n const options = {\n key: `-----BEGIN PRIVATE KEY-----\\n${key.data.toString(\"base64\")}\\n-----END PRIVATE KEY-----`,\n padding: crypto.constants.RSA_PKCS1_OAEP_PADDING,\n };\n if (algorithm.label) ;\n return new Uint8Array(crypto.privateDecrypt(options, data)).buffer;\n }\n}\nRsaCrypto.publicKeyUsages = [\"verify\", \"encrypt\", \"wrapKey\"];\nRsaCrypto.privateKeyUsages = [\"sign\", \"decrypt\", \"unwrapKey\"];\n\nclass RsaSsaProvider extends core.RsaSsaProvider {\n constructor() {\n super(...arguments);\n this.hashAlgorithms = [\n \"SHA-1\", \"SHA-256\", \"SHA-384\", \"SHA-512\",\n \"shake128\", \"shake256\",\n \"SHA3-256\", \"SHA3-384\", \"SHA3-512\"\n ];\n }\n async onGenerateKey(algorithm, extractable, keyUsages) {\n const keys = await RsaCrypto.generateKey({\n ...algorithm,\n name: this.name,\n }, extractable, keyUsages);\n return {\n privateKey: setCryptoKey(keys.privateKey),\n publicKey: setCryptoKey(keys.publicKey),\n };\n }\n async onSign(algorithm, key, data) {\n return RsaCrypto.sign(algorithm, getCryptoKey(key), new Uint8Array(data));\n }\n async onVerify(algorithm, key, signature, data) {\n return RsaCrypto.verify(algorithm, getCryptoKey(key), new Uint8Array(signature), new Uint8Array(data));\n }\n async onExportKey(format, key) {\n return RsaCrypto.exportKey(format, getCryptoKey(key));\n }\n async onImportKey(format, keyData, algorithm, extractable, keyUsages) {\n const key = await RsaCrypto.importKey(format, keyData, { ...algorithm, name: this.name }, extractable, keyUsages);\n return setCryptoKey(key);\n }\n checkCryptoKey(key, keyUsage) {\n super.checkCryptoKey(key, keyUsage);\n const internalKey = getCryptoKey(key);\n if (!(internalKey instanceof RsaPrivateKey || internalKey instanceof RsaPublicKey)) {\n throw new TypeError(\"key: Is not RSA CryptoKey\");\n }\n }\n}\n\nclass RsaPssProvider extends core.RsaPssProvider {\n constructor() {\n super(...arguments);\n this.hashAlgorithms = [\n \"SHA-1\", \"SHA-256\", \"SHA-384\", \"SHA-512\",\n \"shake128\", \"shake256\",\n \"SHA3-256\", \"SHA3-384\", \"SHA3-512\"\n ];\n }\n async onGenerateKey(algorithm, extractable, keyUsages) {\n const keys = await RsaCrypto.generateKey({\n ...algorithm,\n name: this.name,\n }, extractable, keyUsages);\n return {\n privateKey: setCryptoKey(keys.privateKey),\n publicKey: setCryptoKey(keys.publicKey),\n };\n }\n async onSign(algorithm, key, data) {\n return RsaCrypto.sign(algorithm, getCryptoKey(key), new Uint8Array(data));\n }\n async onVerify(algorithm, key, signature, data) {\n return RsaCrypto.verify(algorithm, getCryptoKey(key), new Uint8Array(signature), new Uint8Array(data));\n }\n async onExportKey(format, key) {\n return RsaCrypto.exportKey(format, getCryptoKey(key));\n }\n async onImportKey(format, keyData, algorithm, extractable, keyUsages) {\n const key = await RsaCrypto.importKey(format, keyData, { ...algorithm, name: this.name }, extractable, keyUsages);\n return setCryptoKey(key);\n }\n checkCryptoKey(key, keyUsage) {\n super.checkCryptoKey(key, keyUsage);\n const internalKey = getCryptoKey(key);\n if (!(internalKey instanceof RsaPrivateKey || internalKey instanceof RsaPublicKey)) {\n throw new TypeError(\"key: Is not RSA CryptoKey\");\n }\n }\n}\n\nclass ShaCrypto {\n static size(algorithm) {\n switch (algorithm.name.toUpperCase()) {\n case \"SHA-1\":\n return 160;\n case \"SHA-256\":\n case \"SHA3-256\":\n return 256;\n case \"SHA-384\":\n case \"SHA3-384\":\n return 384;\n case \"SHA-512\":\n case \"SHA3-512\":\n return 512;\n default:\n throw new Error(\"Unrecognized name\");\n }\n }\n static getAlgorithmName(algorithm) {\n switch (algorithm.name.toUpperCase()) {\n case \"SHA-1\":\n return \"sha1\";\n case \"SHA-256\":\n return \"sha256\";\n case \"SHA-384\":\n return \"sha384\";\n case \"SHA-512\":\n return \"sha512\";\n case \"SHA3-256\":\n return \"sha3-256\";\n case \"SHA3-384\":\n return \"sha3-384\";\n case \"SHA3-512\":\n return \"sha3-512\";\n default:\n throw new Error(\"Unrecognized name\");\n }\n }\n static digest(algorithm, data) {\n const hashAlg = this.getAlgorithmName(algorithm);\n const hash = crypto.createHash(hashAlg)\n .update(Buffer$1.from(data)).digest();\n return new Uint8Array(hash).buffer;\n }\n}\n\nclass RsaOaepProvider extends core.RsaOaepProvider {\n async onGenerateKey(algorithm, extractable, keyUsages) {\n const keys = await RsaCrypto.generateKey({\n ...algorithm,\n name: this.name,\n }, extractable, keyUsages);\n return {\n privateKey: setCryptoKey(keys.privateKey),\n publicKey: setCryptoKey(keys.publicKey),\n };\n }\n async onEncrypt(algorithm, key, data) {\n const internalKey = getCryptoKey(key);\n const dataView = new Uint8Array(data);\n const keySize = Math.ceil(internalKey.algorithm.modulusLength >> 3);\n const hashSize = ShaCrypto.size(internalKey.algorithm.hash) >> 3;\n const dataLength = dataView.byteLength;\n const psLength = keySize - dataLength - 2 * hashSize - 2;\n if (dataLength > keySize - 2 * hashSize - 2) {\n throw new Error(\"Data too large\");\n }\n const message = new Uint8Array(keySize);\n const seed = message.subarray(1, hashSize + 1);\n const dataBlock = message.subarray(hashSize + 1);\n dataBlock.set(dataView, hashSize + psLength + 1);\n const labelHash = crypto.createHash(internalKey.algorithm.hash.name.replace(\"-\", \"\"))\n .update(core.BufferSourceConverter.toUint8Array(algorithm.label || new Uint8Array(0)))\n .digest();\n dataBlock.set(labelHash, 0);\n dataBlock[hashSize + psLength] = 1;\n crypto.randomFillSync(seed);\n const dataBlockMask = this.mgf1(internalKey.algorithm.hash, seed, dataBlock.length);\n for (let i = 0; i < dataBlock.length; i++) {\n dataBlock[i] ^= dataBlockMask[i];\n }\n const seedMask = this.mgf1(internalKey.algorithm.hash, dataBlock, seed.length);\n for (let i = 0; i < seed.length; i++) {\n seed[i] ^= seedMask[i];\n }\n if (!internalKey.pem) {\n internalKey.pem = `-----BEGIN PUBLIC KEY-----\\n${internalKey.data.toString(\"base64\")}\\n-----END PUBLIC KEY-----`;\n }\n const pkcs0 = crypto.publicEncrypt({\n key: internalKey.pem,\n padding: crypto.constants.RSA_NO_PADDING,\n }, Buffer$1.from(message));\n return new Uint8Array(pkcs0).buffer;\n }\n async onDecrypt(algorithm, key, data) {\n const internalKey = getCryptoKey(key);\n const keySize = Math.ceil(internalKey.algorithm.modulusLength >> 3);\n const hashSize = ShaCrypto.size(internalKey.algorithm.hash) >> 3;\n const dataLength = data.byteLength;\n if (dataLength !== keySize) {\n throw new Error(\"Bad data\");\n }\n if (!internalKey.pem) {\n internalKey.pem = `-----BEGIN PRIVATE KEY-----\\n${internalKey.data.toString(\"base64\")}\\n-----END PRIVATE KEY-----`;\n }\n let pkcs0 = crypto.privateDecrypt({\n key: internalKey.pem,\n padding: crypto.constants.RSA_NO_PADDING,\n }, Buffer$1.from(data));\n const z = pkcs0[0];\n const seed = pkcs0.subarray(1, hashSize + 1);\n const dataBlock = pkcs0.subarray(hashSize + 1);\n if (z !== 0) {\n throw new Error(\"Decryption failed\");\n }\n const seedMask = this.mgf1(internalKey.algorithm.hash, dataBlock, seed.length);\n for (let i = 0; i < seed.length; i++) {\n seed[i] ^= seedMask[i];\n }\n const dataBlockMask = this.mgf1(internalKey.algorithm.hash, seed, dataBlock.length);\n for (let i = 0; i < dataBlock.length; i++) {\n dataBlock[i] ^= dataBlockMask[i];\n }\n const labelHash = crypto.createHash(internalKey.algorithm.hash.name.replace(\"-\", \"\"))\n .update(core.BufferSourceConverter.toUint8Array(algorithm.label || new Uint8Array(0)))\n .digest();\n for (let i = 0; i < hashSize; i++) {\n if (labelHash[i] !== dataBlock[i]) {\n throw new Error(\"Decryption failed\");\n }\n }\n let psEnd = hashSize;\n for (; psEnd < dataBlock.length; psEnd++) {\n const psz = dataBlock[psEnd];\n if (psz === 1) {\n break;\n }\n if (psz !== 0) {\n throw new Error(\"Decryption failed\");\n }\n }\n if (psEnd === dataBlock.length) {\n throw new Error(\"Decryption failed\");\n }\n pkcs0 = dataBlock.subarray(psEnd + 1);\n return new Uint8Array(pkcs0).buffer;\n }\n async onExportKey(format, key) {\n return RsaCrypto.exportKey(format, getCryptoKey(key));\n }\n async onImportKey(format, keyData, algorithm, extractable, keyUsages) {\n const key = await RsaCrypto.importKey(format, keyData, { ...algorithm, name: this.name }, extractable, keyUsages);\n return setCryptoKey(key);\n }\n checkCryptoKey(key, keyUsage) {\n super.checkCryptoKey(key, keyUsage);\n const internalKey = getCryptoKey(key);\n if (!(internalKey instanceof RsaPrivateKey || internalKey instanceof RsaPublicKey)) {\n throw new TypeError(\"key: Is not RSA CryptoKey\");\n }\n }\n mgf1(algorithm, seed, length = 0) {\n const hashSize = ShaCrypto.size(algorithm) >> 3;\n const mask = new Uint8Array(length);\n const counter = new Uint8Array(4);\n const chunks = Math.ceil(length / hashSize);\n for (let i = 0; i < chunks; i++) {\n counter[0] = i >>> 24;\n counter[1] = (i >>> 16) & 255;\n counter[2] = (i >>> 8) & 255;\n counter[3] = i & 255;\n const submask = mask.subarray(i * hashSize);\n let chunk = crypto.createHash(algorithm.name.replace(\"-\", \"\"))\n .update(seed)\n .update(counter)\n .digest();\n if (chunk.length > submask.length) {\n chunk = chunk.subarray(0, submask.length);\n }\n submask.set(chunk);\n }\n return mask;\n }\n}\n\nclass RsaEsProvider extends core.ProviderCrypto {\n constructor() {\n super(...arguments);\n this.name = \"RSAES-PKCS1-v1_5\";\n this.usages = {\n publicKey: [\"encrypt\", \"wrapKey\"],\n privateKey: [\"decrypt\", \"unwrapKey\"],\n };\n }\n async onGenerateKey(algorithm, extractable, keyUsages) {\n const keys = await RsaCrypto.generateKey({\n ...algorithm,\n name: this.name,\n }, extractable, keyUsages);\n return {\n privateKey: setCryptoKey(keys.privateKey),\n publicKey: setCryptoKey(keys.publicKey),\n };\n }\n checkGenerateKeyParams(algorithm) {\n this.checkRequiredProperty(algorithm, \"publicExponent\");\n if (!(algorithm.publicExponent && algorithm.publicExponent instanceof Uint8Array)) {\n throw new TypeError(\"publicExponent: Missing or not a Uint8Array\");\n }\n const publicExponent = Convert.ToBase64(algorithm.publicExponent);\n if (!(publicExponent === \"Aw==\" || publicExponent === \"AQAB\")) {\n throw new TypeError(\"publicExponent: Must be [3] or [1,0,1]\");\n }\n this.checkRequiredProperty(algorithm, \"modulusLength\");\n switch (algorithm.modulusLength) {\n case 1024:\n case 2048:\n case 4096:\n break;\n default:\n throw new TypeError(\"modulusLength: Must be 1024, 2048, or 4096\");\n }\n }\n async onEncrypt(algorithm, key, data) {\n const options = this.toCryptoOptions(key);\n const enc = crypto.publicEncrypt(options, new Uint8Array(data));\n return new Uint8Array(enc).buffer;\n }\n async onDecrypt(algorithm, key, data) {\n const options = this.toCryptoOptions(key);\n const dec = crypto.privateDecrypt(options, new Uint8Array(data));\n return new Uint8Array(dec).buffer;\n }\n async onExportKey(format, key) {\n return RsaCrypto.exportKey(format, getCryptoKey(key));\n }\n async onImportKey(format, keyData, algorithm, extractable, keyUsages) {\n const key = await RsaCrypto.importKey(format, keyData, { ...algorithm, name: this.name }, extractable, keyUsages);\n return setCryptoKey(key);\n }\n checkCryptoKey(key, keyUsage) {\n super.checkCryptoKey(key, keyUsage);\n const internalKey = getCryptoKey(key);\n if (!(internalKey instanceof RsaPrivateKey || internalKey instanceof RsaPublicKey)) {\n throw new TypeError(\"key: Is not RSA CryptoKey\");\n }\n }\n toCryptoOptions(key) {\n const type = key.type.toUpperCase();\n return {\n key: `-----BEGIN ${type} KEY-----\\n${getCryptoKey(key).data.toString(\"base64\")}\\n-----END ${type} KEY-----`,\n padding: crypto.constants.RSA_PKCS1_PADDING,\n };\n }\n}\n\nconst namedOIDs = {\n \"1.2.840.10045.3.1.7\": \"P-256\",\n \"P-256\": \"1.2.840.10045.3.1.7\",\n \"1.3.132.0.34\": \"P-384\",\n \"P-384\": \"1.3.132.0.34\",\n \"1.3.132.0.35\": \"P-521\",\n \"P-521\": \"1.3.132.0.35\",\n \"1.3.132.0.10\": \"K-256\",\n \"K-256\": \"1.3.132.0.10\",\n \"brainpoolP160r1\": \"1.3.36.3.3.2.8.1.1.1\",\n \"1.3.36.3.3.2.8.1.1.1\": \"brainpoolP160r1\",\n \"brainpoolP160t1\": \"1.3.36.3.3.2.8.1.1.2\",\n \"1.3.36.3.3.2.8.1.1.2\": \"brainpoolP160t1\",\n \"brainpoolP192r1\": \"1.3.36.3.3.2.8.1.1.3\",\n \"1.3.36.3.3.2.8.1.1.3\": \"brainpoolP192r1\",\n \"brainpoolP192t1\": \"1.3.36.3.3.2.8.1.1.4\",\n \"1.3.36.3.3.2.8.1.1.4\": \"brainpoolP192t1\",\n \"brainpoolP224r1\": \"1.3.36.3.3.2.8.1.1.5\",\n \"1.3.36.3.3.2.8.1.1.5\": \"brainpoolP224r1\",\n \"brainpoolP224t1\": \"1.3.36.3.3.2.8.1.1.6\",\n \"1.3.36.3.3.2.8.1.1.6\": \"brainpoolP224t1\",\n \"brainpoolP256r1\": \"1.3.36.3.3.2.8.1.1.7\",\n \"1.3.36.3.3.2.8.1.1.7\": \"brainpoolP256r1\",\n \"brainpoolP256t1\": \"1.3.36.3.3.2.8.1.1.8\",\n \"1.3.36.3.3.2.8.1.1.8\": \"brainpoolP256t1\",\n \"brainpoolP320r1\": \"1.3.36.3.3.2.8.1.1.9\",\n \"1.3.36.3.3.2.8.1.1.9\": \"brainpoolP320r1\",\n \"brainpoolP320t1\": \"1.3.36.3.3.2.8.1.1.10\",\n \"1.3.36.3.3.2.8.1.1.10\": \"brainpoolP320t1\",\n \"brainpoolP384r1\": \"1.3.36.3.3.2.8.1.1.11\",\n \"1.3.36.3.3.2.8.1.1.11\": \"brainpoolP384r1\",\n \"brainpoolP384t1\": \"1.3.36.3.3.2.8.1.1.12\",\n \"1.3.36.3.3.2.8.1.1.12\": \"brainpoolP384t1\",\n \"brainpoolP512r1\": \"1.3.36.3.3.2.8.1.1.13\",\n \"1.3.36.3.3.2.8.1.1.13\": \"brainpoolP512r1\",\n \"brainpoolP512t1\": \"1.3.36.3.3.2.8.1.1.14\",\n \"1.3.36.3.3.2.8.1.1.14\": \"brainpoolP512t1\",\n};\nfunction getOidByNamedCurve$1(namedCurve) {\n const oid = namedOIDs[namedCurve];\n if (!oid) {\n throw new core.OperationError(`Cannot convert WebCrypto named curve '${namedCurve}' to OID`);\n }\n return oid;\n}\n\nclass EcPrivateKey extends AsymmetricKey {\n constructor() {\n super(...arguments);\n this.type = \"private\";\n }\n getKey() {\n const keyInfo = AsnParser.parse(this.data, core.asn1.PrivateKeyInfo);\n return AsnParser.parse(keyInfo.privateKey, core.asn1.EcPrivateKey);\n }\n toJSON() {\n const key = this.getKey();\n const json = {\n kty: \"EC\",\n crv: this.algorithm.namedCurve,\n key_ops: this.usages,\n ext: this.extractable,\n };\n return Object.assign(json, JsonSerializer.toJSON(key));\n }\n fromJSON(json) {\n if (!json.crv) {\n throw new core.OperationError(`Cannot get named curve from JWK. Property 'crv' is required`);\n }\n const keyInfo = new core.asn1.PrivateKeyInfo();\n keyInfo.privateKeyAlgorithm.algorithm = \"1.2.840.10045.2.1\";\n keyInfo.privateKeyAlgorithm.parameters = AsnSerializer.serialize(new core.asn1.ObjectIdentifier(getOidByNamedCurve$1(json.crv)));\n const key = JsonParser.fromJSON(json, { targetSchema: core.asn1.EcPrivateKey });\n keyInfo.privateKey = AsnSerializer.serialize(key);\n this.data = Buffer$1.from(AsnSerializer.serialize(keyInfo));\n return this;\n }\n}\n\nclass EcPublicKey extends AsymmetricKey {\n constructor() {\n super(...arguments);\n this.type = \"public\";\n }\n getKey() {\n const keyInfo = AsnParser.parse(this.data, core.asn1.PublicKeyInfo);\n return new core.asn1.EcPublicKey(keyInfo.publicKey);\n }\n toJSON() {\n const key = this.getKey();\n const json = {\n kty: \"EC\",\n crv: this.algorithm.namedCurve,\n key_ops: this.usages,\n ext: this.extractable,\n };\n return Object.assign(json, JsonSerializer.toJSON(key));\n }\n fromJSON(json) {\n if (!json.crv) {\n throw new core.OperationError(`Cannot get named curve from JWK. Property 'crv' is required`);\n }\n const key = JsonParser.fromJSON(json, { targetSchema: core.asn1.EcPublicKey });\n const keyInfo = new core.asn1.PublicKeyInfo();\n keyInfo.publicKeyAlgorithm.algorithm = \"1.2.840.10045.2.1\";\n keyInfo.publicKeyAlgorithm.parameters = AsnSerializer.serialize(new core.asn1.ObjectIdentifier(getOidByNamedCurve$1(json.crv)));\n keyInfo.publicKey = AsnSerializer.toASN(key).valueHex;\n this.data = Buffer$1.from(AsnSerializer.serialize(keyInfo));\n return this;\n }\n}\n\nclass Sha1Provider extends core.ProviderCrypto {\n constructor() {\n super(...arguments);\n this.name = \"SHA-1\";\n this.usages = [];\n }\n async onDigest(algorithm, data) {\n return ShaCrypto.digest(algorithm, data);\n }\n}\n\nclass Sha256Provider extends core.ProviderCrypto {\n constructor() {\n super(...arguments);\n this.name = \"SHA-256\";\n this.usages = [];\n }\n async onDigest(algorithm, data) {\n return ShaCrypto.digest(algorithm, data);\n }\n}\n\nclass Sha384Provider extends core.ProviderCrypto {\n constructor() {\n super(...arguments);\n this.name = \"SHA-384\";\n this.usages = [];\n }\n async onDigest(algorithm, data) {\n return ShaCrypto.digest(algorithm, data);\n }\n}\n\nclass Sha512Provider extends core.ProviderCrypto {\n constructor() {\n super(...arguments);\n this.name = \"SHA-512\";\n this.usages = [];\n }\n async onDigest(algorithm, data) {\n return ShaCrypto.digest(algorithm, data);\n }\n}\n\nclass Sha3256Provider extends core.ProviderCrypto {\n constructor() {\n super(...arguments);\n this.name = \"SHA3-256\";\n this.usages = [];\n }\n async onDigest(algorithm, data) {\n return ShaCrypto.digest(algorithm, data);\n }\n}\n\nclass Sha3384Provider extends core.ProviderCrypto {\n constructor() {\n super(...arguments);\n this.name = \"SHA3-384\";\n this.usages = [];\n }\n async onDigest(algorithm, data) {\n return ShaCrypto.digest(algorithm, data);\n }\n}\n\nclass Sha3512Provider extends core.ProviderCrypto {\n constructor() {\n super(...arguments);\n this.name = \"SHA3-512\";\n this.usages = [];\n }\n async onDigest(algorithm, data) {\n return ShaCrypto.digest(algorithm, data);\n }\n}\n\nclass EcCrypto {\n static async generateKey(algorithm, extractable, keyUsages) {\n const privateKey = new EcPrivateKey();\n privateKey.algorithm = algorithm;\n privateKey.extractable = extractable;\n privateKey.usages = keyUsages.filter((usage) => this.privateKeyUsages.indexOf(usage) !== -1);\n const publicKey = new EcPublicKey();\n publicKey.algorithm = algorithm;\n publicKey.extractable = true;\n publicKey.usages = keyUsages.filter((usage) => this.publicKeyUsages.indexOf(usage) !== -1);\n const keys = crypto.generateKeyPairSync(\"ec\", {\n namedCurve: this.getOpenSSLNamedCurve(algorithm.namedCurve),\n publicKeyEncoding: {\n format: \"der\",\n type: \"spki\",\n },\n privateKeyEncoding: {\n format: \"der\",\n type: \"pkcs8\",\n },\n });\n privateKey.data = keys.privateKey;\n publicKey.data = keys.publicKey;\n const res = {\n privateKey,\n publicKey,\n };\n return res;\n }\n static async sign(algorithm, key, data) {\n const cryptoAlg = ShaCrypto.getAlgorithmName(algorithm.hash);\n const signer = crypto.createSign(cryptoAlg);\n signer.update(Buffer$1.from(data));\n if (!key.pem) {\n key.pem = `-----BEGIN PRIVATE KEY-----\\n${key.data.toString(\"base64\")}\\n-----END PRIVATE KEY-----`;\n }\n const options = {\n key: key.pem,\n };\n const signature = signer.sign(options);\n const ecSignature = AsnParser.parse(signature, core.asn1.EcDsaSignature);\n const signatureRaw = core.EcUtils.encodeSignature(ecSignature, core.EcCurves.get(key.algorithm.namedCurve).size);\n return signatureRaw.buffer;\n }\n static async verify(algorithm, key, signature, data) {\n const cryptoAlg = ShaCrypto.getAlgorithmName(algorithm.hash);\n const signer = crypto.createVerify(cryptoAlg);\n signer.update(Buffer$1.from(data));\n if (!key.pem) {\n key.pem = `-----BEGIN PUBLIC KEY-----\\n${key.data.toString(\"base64\")}\\n-----END PUBLIC KEY-----`;\n }\n const options = {\n key: key.pem,\n };\n const ecSignature = new core.asn1.EcDsaSignature();\n const namedCurve = core.EcCurves.get(key.algorithm.namedCurve);\n const signaturePoint = core.EcUtils.decodeSignature(signature, namedCurve.size);\n ecSignature.r = BufferSourceConverter.toArrayBuffer(signaturePoint.r);\n ecSignature.s = BufferSourceConverter.toArrayBuffer(signaturePoint.s);\n const ecSignatureRaw = Buffer$1.from(AsnSerializer.serialize(ecSignature));\n const ok = signer.verify(options, ecSignatureRaw);\n return ok;\n }\n static async deriveBits(algorithm, baseKey, length) {\n const cryptoAlg = this.getOpenSSLNamedCurve(baseKey.algorithm.namedCurve);\n const ecdh = crypto.createECDH(cryptoAlg);\n const asnPrivateKey = AsnParser.parse(baseKey.data, core.asn1.PrivateKeyInfo);\n const asnEcPrivateKey = AsnParser.parse(asnPrivateKey.privateKey, core.asn1.EcPrivateKey);\n ecdh.setPrivateKey(Buffer$1.from(asnEcPrivateKey.privateKey));\n const asnPublicKey = AsnParser.parse(algorithm.public.data, core.asn1.PublicKeyInfo);\n const bits = ecdh.computeSecret(Buffer$1.from(asnPublicKey.publicKey));\n if (length === null) {\n return bits;\n }\n return new Uint8Array(bits).buffer.slice(0, length >> 3);\n }\n static async exportKey(format, key) {\n switch (format.toLowerCase()) {\n case \"jwk\":\n return JsonSerializer.toJSON(key);\n case \"pkcs8\":\n case \"spki\":\n return new Uint8Array(key.data).buffer;\n case \"raw\": {\n const publicKeyInfo = AsnParser.parse(key.data, core.asn1.PublicKeyInfo);\n return publicKeyInfo.publicKey;\n }\n default:\n throw new core.OperationError(\"format: Must be 'jwk', 'raw', pkcs8' or 'spki'\");\n }\n }\n static async importKey(format, keyData, algorithm, extractable, keyUsages) {\n switch (format.toLowerCase()) {\n case \"jwk\": {\n const jwk = keyData;\n if (jwk.d) {\n const asnKey = JsonParser.fromJSON(keyData, { targetSchema: core.asn1.EcPrivateKey });\n return this.importPrivateKey(asnKey, algorithm, extractable, keyUsages);\n }\n else {\n const asnKey = JsonParser.fromJSON(keyData, { targetSchema: core.asn1.EcPublicKey });\n return this.importPublicKey(asnKey, algorithm, extractable, keyUsages);\n }\n }\n case \"raw\": {\n const asnKey = new core.asn1.EcPublicKey(keyData);\n return this.importPublicKey(asnKey, algorithm, extractable, keyUsages);\n }\n case \"spki\": {\n const keyInfo = AsnParser.parse(new Uint8Array(keyData), core.asn1.PublicKeyInfo);\n const asnKey = new core.asn1.EcPublicKey(keyInfo.publicKey);\n this.assertKeyParameters(keyInfo.publicKeyAlgorithm.parameters, algorithm.namedCurve);\n return this.importPublicKey(asnKey, algorithm, extractable, keyUsages);\n }\n case \"pkcs8\": {\n const keyInfo = AsnParser.parse(new Uint8Array(keyData), core.asn1.PrivateKeyInfo);\n const asnKey = AsnParser.parse(keyInfo.privateKey, core.asn1.EcPrivateKey);\n this.assertKeyParameters(keyInfo.privateKeyAlgorithm.parameters, algorithm.namedCurve);\n return this.importPrivateKey(asnKey, algorithm, extractable, keyUsages);\n }\n default:\n throw new core.OperationError(\"format: Must be 'jwk', 'raw', 'pkcs8' or 'spki'\");\n }\n }\n static assertKeyParameters(parameters, namedCurve) {\n if (!parameters) {\n throw new core.CryptoError(\"Key info doesn't have required parameters\");\n }\n let namedCurveIdentifier = \"\";\n try {\n namedCurveIdentifier = AsnParser.parse(parameters, core.asn1.ObjectIdentifier).value;\n }\n catch (e) {\n throw new core.CryptoError(\"Cannot read key info parameters\");\n }\n if (getOidByNamedCurve$1(namedCurve) !== namedCurveIdentifier) {\n throw new core.CryptoError(\"Key info parameter doesn't match to named curve\");\n }\n }\n static async importPrivateKey(asnKey, algorithm, extractable, keyUsages) {\n const keyInfo = new core.asn1.PrivateKeyInfo();\n keyInfo.privateKeyAlgorithm.algorithm = \"1.2.840.10045.2.1\";\n keyInfo.privateKeyAlgorithm.parameters = AsnSerializer.serialize(new core.asn1.ObjectIdentifier(getOidByNamedCurve$1(algorithm.namedCurve)));\n keyInfo.privateKey = AsnSerializer.serialize(asnKey);\n const key = new EcPrivateKey();\n key.data = Buffer$1.from(AsnSerializer.serialize(keyInfo));\n key.algorithm = Object.assign({}, algorithm);\n key.extractable = extractable;\n key.usages = keyUsages;\n return key;\n }\n static async importPublicKey(asnKey, algorithm, extractable, keyUsages) {\n const keyInfo = new core.asn1.PublicKeyInfo();\n keyInfo.publicKeyAlgorithm.algorithm = \"1.2.840.10045.2.1\";\n const namedCurve = getOidByNamedCurve$1(algorithm.namedCurve);\n keyInfo.publicKeyAlgorithm.parameters = AsnSerializer.serialize(new core.asn1.ObjectIdentifier(namedCurve));\n keyInfo.publicKey = asnKey.value;\n const key = new EcPublicKey();\n key.data = Buffer$1.from(AsnSerializer.serialize(keyInfo));\n key.algorithm = Object.assign({}, algorithm);\n key.extractable = extractable;\n key.usages = keyUsages;\n return key;\n }\n static getOpenSSLNamedCurve(curve) {\n switch (curve.toUpperCase()) {\n case \"P-256\":\n return \"prime256v1\";\n case \"K-256\":\n return \"secp256k1\";\n case \"P-384\":\n return \"secp384r1\";\n case \"P-521\":\n return \"secp521r1\";\n default:\n return curve;\n }\n }\n}\nEcCrypto.publicKeyUsages = [\"verify\"];\nEcCrypto.privateKeyUsages = [\"sign\", \"deriveKey\", \"deriveBits\"];\n\nclass EcdsaProvider extends core.EcdsaProvider {\n constructor() {\n super(...arguments);\n this.namedCurves = core.EcCurves.names;\n this.hashAlgorithms = [\n \"SHA-1\", \"SHA-256\", \"SHA-384\", \"SHA-512\",\n \"shake128\", \"shake256\",\n \"SHA3-256\", \"SHA3-384\", \"SHA3-512\"\n ];\n }\n async onGenerateKey(algorithm, extractable, keyUsages) {\n const keys = await EcCrypto.generateKey({\n ...algorithm,\n name: this.name,\n }, extractable, keyUsages);\n return {\n privateKey: setCryptoKey(keys.privateKey),\n publicKey: setCryptoKey(keys.publicKey),\n };\n }\n async onSign(algorithm, key, data) {\n return EcCrypto.sign(algorithm, getCryptoKey(key), new Uint8Array(data));\n }\n async onVerify(algorithm, key, signature, data) {\n return EcCrypto.verify(algorithm, getCryptoKey(key), new Uint8Array(signature), new Uint8Array(data));\n }\n async onExportKey(format, key) {\n return EcCrypto.exportKey(format, getCryptoKey(key));\n }\n async onImportKey(format, keyData, algorithm, extractable, keyUsages) {\n const key = await EcCrypto.importKey(format, keyData, { ...algorithm, name: this.name }, extractable, keyUsages);\n return setCryptoKey(key);\n }\n checkCryptoKey(key, keyUsage) {\n super.checkCryptoKey(key, keyUsage);\n const internalKey = getCryptoKey(key);\n if (!(internalKey instanceof EcPrivateKey || internalKey instanceof EcPublicKey)) {\n throw new TypeError(\"key: Is not EC CryptoKey\");\n }\n }\n}\n\nclass EcdhProvider extends core.EcdhProvider {\n constructor() {\n super(...arguments);\n this.namedCurves = core.EcCurves.names;\n }\n async onGenerateKey(algorithm, extractable, keyUsages) {\n const keys = await EcCrypto.generateKey({\n ...algorithm,\n name: this.name,\n }, extractable, keyUsages);\n return {\n privateKey: setCryptoKey(keys.privateKey),\n publicKey: setCryptoKey(keys.publicKey),\n };\n }\n async onExportKey(format, key) {\n return EcCrypto.exportKey(format, getCryptoKey(key));\n }\n async onImportKey(format, keyData, algorithm, extractable, keyUsages) {\n const key = await EcCrypto.importKey(format, keyData, { ...algorithm, name: this.name }, extractable, keyUsages);\n return setCryptoKey(key);\n }\n checkCryptoKey(key, keyUsage) {\n super.checkCryptoKey(key, keyUsage);\n const internalKey = getCryptoKey(key);\n if (!(internalKey instanceof EcPrivateKey || internalKey instanceof EcPublicKey)) {\n throw new TypeError(\"key: Is not EC CryptoKey\");\n }\n }\n async onDeriveBits(algorithm, baseKey, length) {\n const bits = await EcCrypto.deriveBits({ ...algorithm, public: getCryptoKey(algorithm.public) }, getCryptoKey(baseKey), length);\n return bits;\n }\n}\n\nconst edOIDs = {\n [core.asn1.idEd448]: \"Ed448\",\n \"ed448\": core.asn1.idEd448,\n [core.asn1.idX448]: \"X448\",\n \"x448\": core.asn1.idX448,\n [core.asn1.idEd25519]: \"Ed25519\",\n \"ed25519\": core.asn1.idEd25519,\n [core.asn1.idX25519]: \"X25519\",\n \"x25519\": core.asn1.idX25519,\n};\nfunction getOidByNamedCurve(namedCurve) {\n const oid = edOIDs[namedCurve.toLowerCase()];\n if (!oid) {\n throw new core.OperationError(`Cannot convert WebCrypto named curve '${namedCurve}' to OID`);\n }\n return oid;\n}\n\nclass EdPrivateKey extends AsymmetricKey {\n constructor() {\n super(...arguments);\n this.type = \"private\";\n }\n getKey() {\n const keyInfo = AsnParser.parse(this.data, core.asn1.PrivateKeyInfo);\n return AsnParser.parse(keyInfo.privateKey, core.asn1.CurvePrivateKey);\n }\n toJSON() {\n const key = this.getKey();\n const json = {\n kty: \"OKP\",\n crv: this.algorithm.namedCurve,\n key_ops: this.usages,\n ext: this.extractable,\n };\n return Object.assign(json, JsonSerializer.toJSON(key));\n }\n fromJSON(json) {\n if (!json.crv) {\n throw new core.OperationError(`Cannot get named curve from JWK. Property 'crv' is required`);\n }\n const keyInfo = new core.asn1.PrivateKeyInfo();\n keyInfo.privateKeyAlgorithm.algorithm = getOidByNamedCurve(json.crv);\n const key = JsonParser.fromJSON(json, { targetSchema: core.asn1.CurvePrivateKey });\n keyInfo.privateKey = AsnSerializer.serialize(key);\n this.data = Buffer$1.from(AsnSerializer.serialize(keyInfo));\n return this;\n }\n}\n\nclass EdPublicKey extends AsymmetricKey {\n constructor() {\n super(...arguments);\n this.type = \"public\";\n }\n getKey() {\n const keyInfo = AsnParser.parse(this.data, core.asn1.PublicKeyInfo);\n return keyInfo.publicKey;\n }\n toJSON() {\n const key = this.getKey();\n const json = {\n kty: \"OKP\",\n crv: this.algorithm.namedCurve,\n key_ops: this.usages,\n ext: this.extractable,\n };\n return Object.assign(json, {\n x: Convert.ToBase64Url(key)\n });\n }\n fromJSON(json) {\n if (!json.crv) {\n throw new core.OperationError(`Cannot get named curve from JWK. Property 'crv' is required`);\n }\n if (!json.x) {\n throw new core.OperationError(`Cannot get property from JWK. Property 'x' is required`);\n }\n const keyInfo = new core.asn1.PublicKeyInfo();\n keyInfo.publicKeyAlgorithm.algorithm = getOidByNamedCurve(json.crv);\n keyInfo.publicKey = Convert.FromBase64Url(json.x);\n this.data = Buffer$1.from(AsnSerializer.serialize(keyInfo));\n return this;\n }\n}\n\nclass EdCrypto {\n static async generateKey(algorithm, extractable, keyUsages) {\n const privateKey = new EdPrivateKey();\n privateKey.algorithm = algorithm;\n privateKey.extractable = extractable;\n privateKey.usages = keyUsages.filter((usage) => this.privateKeyUsages.indexOf(usage) !== -1);\n const publicKey = new EdPublicKey();\n publicKey.algorithm = algorithm;\n publicKey.extractable = true;\n publicKey.usages = keyUsages.filter((usage) => this.publicKeyUsages.indexOf(usage) !== -1);\n const type = algorithm.namedCurve.toLowerCase();\n const keys = crypto.generateKeyPairSync(type, {\n publicKeyEncoding: {\n format: \"der\",\n type: \"spki\",\n },\n privateKeyEncoding: {\n format: \"der\",\n type: \"pkcs8\",\n },\n });\n privateKey.data = keys.privateKey;\n publicKey.data = keys.publicKey;\n const res = {\n privateKey,\n publicKey,\n };\n return res;\n }\n static async sign(algorithm, key, data) {\n if (!key.pem) {\n key.pem = `-----BEGIN PRIVATE KEY-----\\n${key.data.toString(\"base64\")}\\n-----END PRIVATE KEY-----`;\n }\n const options = {\n key: key.pem,\n };\n const signature = crypto.sign(null, Buffer$1.from(data), options);\n return core.BufferSourceConverter.toArrayBuffer(signature);\n }\n static async verify(algorithm, key, signature, data) {\n if (!key.pem) {\n key.pem = `-----BEGIN PUBLIC KEY-----\\n${key.data.toString(\"base64\")}\\n-----END PUBLIC KEY-----`;\n }\n const options = {\n key: key.pem,\n };\n const ok = crypto.verify(null, Buffer$1.from(data), options, Buffer$1.from(signature));\n return ok;\n }\n static async deriveBits(algorithm, baseKey, length) {\n const publicKey = crypto.createPublicKey({\n key: algorithm.public.data,\n format: \"der\",\n type: \"spki\",\n });\n const privateKey = crypto.createPrivateKey({\n key: baseKey.data,\n format: \"der\",\n type: \"pkcs8\",\n });\n const bits = crypto.diffieHellman({\n publicKey,\n privateKey,\n });\n return new Uint8Array(bits).buffer.slice(0, length >> 3);\n }\n static async exportKey(format, key) {\n switch (format.toLowerCase()) {\n case \"jwk\":\n return JsonSerializer.toJSON(key);\n case \"pkcs8\":\n case \"spki\":\n return new Uint8Array(key.data).buffer;\n case \"raw\": {\n const publicKeyInfo = AsnParser.parse(key.data, core.asn1.PublicKeyInfo);\n return publicKeyInfo.publicKey;\n }\n default:\n throw new core.OperationError(\"format: Must be 'jwk', 'raw', pkcs8' or 'spki'\");\n }\n }\n static async importKey(format, keyData, algorithm, extractable, keyUsages) {\n switch (format.toLowerCase()) {\n case \"jwk\": {\n const jwk = keyData;\n if (jwk.d) {\n const asnKey = JsonParser.fromJSON(keyData, { targetSchema: core.asn1.CurvePrivateKey });\n return this.importPrivateKey(asnKey, algorithm, extractable, keyUsages);\n }\n else {\n if (!jwk.x) {\n throw new TypeError(\"keyData: Cannot get required 'x' filed\");\n }\n return this.importPublicKey(Convert.FromBase64Url(jwk.x), algorithm, extractable, keyUsages);\n }\n }\n case \"raw\": {\n return this.importPublicKey(keyData, algorithm, extractable, keyUsages);\n }\n case \"spki\": {\n const keyInfo = AsnParser.parse(new Uint8Array(keyData), core.asn1.PublicKeyInfo);\n return this.importPublicKey(keyInfo.publicKey, algorithm, extractable, keyUsages);\n }\n case \"pkcs8\": {\n const keyInfo = AsnParser.parse(new Uint8Array(keyData), core.asn1.PrivateKeyInfo);\n const asnKey = AsnParser.parse(keyInfo.privateKey, core.asn1.CurvePrivateKey);\n return this.importPrivateKey(asnKey, algorithm, extractable, keyUsages);\n }\n default:\n throw new core.OperationError(\"format: Must be 'jwk', 'raw', 'pkcs8' or 'spki'\");\n }\n }\n static importPrivateKey(asnKey, algorithm, extractable, keyUsages) {\n const key = new EdPrivateKey();\n key.fromJSON({\n crv: algorithm.namedCurve,\n d: Convert.ToBase64Url(asnKey.d),\n });\n key.algorithm = Object.assign({}, algorithm);\n key.extractable = extractable;\n key.usages = keyUsages;\n return key;\n }\n static async importPublicKey(asnKey, algorithm, extractable, keyUsages) {\n const key = new EdPublicKey();\n key.fromJSON({\n crv: algorithm.namedCurve,\n x: Convert.ToBase64Url(asnKey),\n });\n key.algorithm = Object.assign({}, algorithm);\n key.extractable = extractable;\n key.usages = keyUsages;\n return key;\n }\n}\nEdCrypto.publicKeyUsages = [\"verify\"];\nEdCrypto.privateKeyUsages = [\"sign\", \"deriveKey\", \"deriveBits\"];\n\nclass EdDsaProvider extends core.EdDsaProvider {\n async onGenerateKey(algorithm, extractable, keyUsages) {\n const keys = await EdCrypto.generateKey({\n name: this.name,\n namedCurve: algorithm.namedCurve.replace(/^ed/i, \"Ed\"),\n }, extractable, keyUsages);\n return {\n privateKey: setCryptoKey(keys.privateKey),\n publicKey: setCryptoKey(keys.publicKey),\n };\n }\n async onSign(algorithm, key, data) {\n return EdCrypto.sign(algorithm, getCryptoKey(key), new Uint8Array(data));\n }\n async onVerify(algorithm, key, signature, data) {\n return EdCrypto.verify(algorithm, getCryptoKey(key), new Uint8Array(signature), new Uint8Array(data));\n }\n async onExportKey(format, key) {\n return EdCrypto.exportKey(format, getCryptoKey(key));\n }\n async onImportKey(format, keyData, algorithm, extractable, keyUsages) {\n const key = await EdCrypto.importKey(format, keyData, { ...algorithm, name: this.name }, extractable, keyUsages);\n return setCryptoKey(key);\n }\n}\n\nclass EcdhEsProvider extends core.EcdhEsProvider {\n async onGenerateKey(algorithm, extractable, keyUsages) {\n const keys = await EdCrypto.generateKey({\n name: this.name,\n namedCurve: algorithm.namedCurve.toUpperCase(),\n }, extractable, keyUsages);\n return {\n privateKey: setCryptoKey(keys.privateKey),\n publicKey: setCryptoKey(keys.publicKey),\n };\n }\n async onDeriveBits(algorithm, baseKey, length) {\n const bits = await EdCrypto.deriveBits({ ...algorithm, public: getCryptoKey(algorithm.public) }, getCryptoKey(baseKey), length);\n return bits;\n }\n async onExportKey(format, key) {\n return EdCrypto.exportKey(format, getCryptoKey(key));\n }\n async onImportKey(format, keyData, algorithm, extractable, keyUsages) {\n const key = await EdCrypto.importKey(format, keyData, { ...algorithm, name: this.name }, extractable, keyUsages);\n return setCryptoKey(key);\n }\n}\n\nclass Ed25519CryptoKey extends CryptoKey {\n constructor(algorithm, extractable, usages, data) {\n super();\n this.algorithm = algorithm;\n this.extractable = extractable;\n this.usages = usages;\n this.data = Buffer.from(data);\n }\n toJWK() {\n return {\n kty: \"OKP\",\n crv: this.algorithm.name,\n key_ops: this.usages,\n ext: this.extractable,\n };\n }\n}\n\nclass Ed25519PrivateKey extends Ed25519CryptoKey {\n constructor() {\n super(...arguments);\n this.type = \"private\";\n }\n toJWK() {\n const pubJwk = crypto.createPublicKey({\n key: this.data,\n format: \"pem\",\n }).export({ format: \"jwk\" });\n const raw = core.PemConverter.toUint8Array(this.data.toString());\n const pkcs8 = AsnConvert.parse(raw, core.asn1.PrivateKeyInfo);\n const d = AsnConvert.parse(pkcs8.privateKey, core.asn1.EdPrivateKey).value;\n return {\n ...super.toJWK(),\n ...pubJwk,\n d: Buffer.from(new Uint8Array(d)).toString(\"base64url\"),\n };\n }\n}\n\nclass Ed25519PublicKey extends Ed25519CryptoKey {\n constructor() {\n super(...arguments);\n this.type = \"public\";\n }\n toJWK() {\n const jwk = crypto.createPublicKey({\n key: this.data,\n format: \"pem\",\n }).export({ format: \"jwk\" });\n return {\n ...super.toJWK(),\n ...jwk,\n };\n }\n}\n\nclass Ed25519Crypto {\n static async generateKey(algorithm, extractable, keyUsages) {\n const type = algorithm.name.toLowerCase();\n const keys = crypto.generateKeyPairSync(type, {\n publicKeyEncoding: {\n format: \"pem\",\n type: \"spki\",\n },\n privateKeyEncoding: {\n format: \"pem\",\n type: \"pkcs8\",\n },\n });\n const keyAlg = {\n name: type === \"ed25519\" ? \"Ed25519\" : \"X25519\",\n };\n const privateKeyUsages = keyUsages.filter((usage) => this.privateKeyUsages.includes(usage));\n const publicKeyUsages = keyUsages.filter((usage) => this.publicKeyUsages.includes(usage));\n return {\n privateKey: new Ed25519PrivateKey(keyAlg, extractable, privateKeyUsages, keys.privateKey),\n publicKey: new Ed25519PublicKey(keyAlg, true, publicKeyUsages, keys.publicKey),\n };\n }\n static async sign(algorithm, key, data) {\n const signature = crypto.sign(null, Buffer.from(data), key.data);\n return core.BufferSourceConverter.toArrayBuffer(signature);\n }\n static async verify(algorithm, key, signature, data) {\n return crypto.verify(null, Buffer.from(data), key.data, signature);\n }\n static async exportKey(format, key) {\n switch (format) {\n case \"jwk\":\n return key.toJWK();\n case \"pkcs8\": {\n return core.PemConverter.toArrayBuffer(key.data.toString());\n }\n case \"spki\": {\n return core.PemConverter.toArrayBuffer(key.data.toString());\n }\n case \"raw\": {\n const jwk = key.toJWK();\n return Convert.FromBase64Url(jwk.x);\n }\n default:\n return Promise.reject(new core.OperationError(\"format: Must be 'jwk', 'raw', pkcs8' or 'spki'\"));\n }\n }\n static async importKey(format, keyData, algorithm, extractable, keyUsages) {\n switch (format) {\n case \"jwk\": {\n const jwk = keyData;\n if (jwk.d) {\n const privateData = new core.asn1.EdPrivateKey();\n privateData.value = core.BufferSourceConverter.toArrayBuffer(Buffer.from(jwk.d, \"base64url\"));\n const pkcs8 = new core.asn1.PrivateKeyInfo();\n pkcs8.privateKeyAlgorithm.algorithm = algorithm.name.toLowerCase() === \"ed25519\"\n ? core.asn1.idEd25519\n : core.asn1.idX25519;\n pkcs8.privateKey = AsnConvert.serialize(privateData);\n const raw = AsnConvert.serialize(pkcs8);\n const pem = core.PemConverter.fromBufferSource(raw, \"PRIVATE KEY\");\n return new Ed25519PrivateKey(algorithm, extractable, keyUsages, pem);\n }\n else if (jwk.x) {\n const pubKey = crypto.createPublicKey({\n format: \"jwk\",\n key: jwk,\n });\n const pem = pubKey.export({ format: \"pem\", type: \"spki\" });\n return new Ed25519PublicKey(algorithm, extractable, keyUsages, pem);\n }\n else {\n throw new core.OperationError(\"keyData: Cannot import JWK. 'd' or 'x' must be presented\");\n }\n }\n case \"pkcs8\": {\n const pem = core.PemConverter.fromBufferSource(keyData, \"PRIVATE KEY\");\n return new Ed25519PrivateKey(algorithm, extractable, keyUsages, pem);\n }\n case \"spki\": {\n const pem = core.PemConverter.fromBufferSource(keyData, \"PUBLIC KEY\");\n return new Ed25519PublicKey(algorithm, extractable, keyUsages, pem);\n }\n case \"raw\": {\n const raw = keyData;\n const key = crypto.createPublicKey({\n format: \"jwk\",\n key: {\n kty: \"OKP\",\n crv: algorithm.name.toLowerCase() === \"ed25519\" ? \"Ed25519\" : \"X25519\",\n x: Convert.ToBase64Url(raw),\n },\n });\n const pem = key.export({ format: \"pem\", type: \"spki\" });\n return new Ed25519PublicKey(algorithm, extractable, keyUsages, pem);\n }\n default:\n return Promise.reject(new core.OperationError(\"format: Must be 'jwk', 'raw', pkcs8' or 'spki'\"));\n }\n }\n}\nEd25519Crypto.privateKeyUsages = [\"sign\", \"deriveBits\", \"deriveKey\"];\nEd25519Crypto.publicKeyUsages = [\"verify\"];\n\nclass Ed25519Provider extends core.Ed25519Provider {\n async onGenerateKey(algorithm, extractable, keyUsages) {\n const keys = await Ed25519Crypto.generateKey(algorithm, extractable, keyUsages);\n return {\n privateKey: setCryptoKey(keys.privateKey),\n publicKey: setCryptoKey(keys.publicKey),\n };\n }\n async onSign(algorithm, key, data) {\n const internalKey = getCryptoKey(key);\n const signature = Ed25519Crypto.sign(algorithm, internalKey, new Uint8Array(data));\n return signature;\n }\n onVerify(algorithm, key, signature, data) {\n const internalKey = getCryptoKey(key);\n return Ed25519Crypto.verify(algorithm, internalKey, new Uint8Array(signature), new Uint8Array(data));\n }\n async onExportKey(format, key) {\n const internalKey = getCryptoKey(key);\n return Ed25519Crypto.exportKey(format, internalKey);\n }\n async onImportKey(format, keyData, algorithm, extractable, keyUsages) {\n const internalKey = await Ed25519Crypto.importKey(format, keyData, algorithm, extractable, keyUsages);\n return setCryptoKey(internalKey);\n }\n}\n\nclass X25519Provider extends core.X25519Provider {\n async onGenerateKey(algorithm, extractable, keyUsages) {\n const keys = await Ed25519Crypto.generateKey(algorithm, extractable, keyUsages);\n return {\n privateKey: setCryptoKey(keys.privateKey),\n publicKey: setCryptoKey(keys.publicKey),\n };\n }\n async onDeriveBits(algorithm, baseKey, length) {\n const internalBaseKey = getCryptoKey(baseKey);\n const internalPublicKey = getCryptoKey(algorithm.public);\n const publicKey = crypto.createPublicKey({\n key: internalPublicKey.data.toString(),\n format: \"pem\",\n type: \"spki\",\n });\n const privateKey = crypto.createPrivateKey({\n key: internalBaseKey.data.toString(),\n format: \"pem\",\n type: \"pkcs8\",\n });\n const bits = crypto.diffieHellman({\n publicKey,\n privateKey,\n });\n return new Uint8Array(bits).buffer.slice(0, length >> 3);\n }\n async onExportKey(format, key) {\n const internalKey = getCryptoKey(key);\n return Ed25519Crypto.exportKey(format, internalKey);\n }\n async onImportKey(format, keyData, algorithm, extractable, keyUsages) {\n const key = await Ed25519Crypto.importKey(format, keyData, algorithm, extractable, keyUsages);\n return setCryptoKey(key);\n }\n checkCryptoKey(key, keyUsage) {\n super.checkCryptoKey(key, keyUsage);\n if (!(getCryptoKey(key) instanceof Ed25519CryptoKey)) {\n throw new TypeError(\"key: Is not a Ed25519CryptoKey\");\n }\n }\n}\n\nclass PbkdfCryptoKey extends CryptoKey {\n}\n\nclass Pbkdf2Provider extends core.Pbkdf2Provider {\n async onDeriveBits(algorithm, baseKey, length) {\n return new Promise((resolve, reject) => {\n const salt = core.BufferSourceConverter.toArrayBuffer(algorithm.salt);\n const hash = algorithm.hash.name.replace(\"-\", \"\");\n crypto.pbkdf2(getCryptoKey(baseKey).data, Buffer$1.from(salt), algorithm.iterations, length >> 3, hash, (err, derivedBits) => {\n if (err) {\n reject(err);\n }\n else {\n resolve(new Uint8Array(derivedBits).buffer);\n }\n });\n });\n }\n async onImportKey(format, keyData, algorithm, extractable, keyUsages) {\n if (format === \"raw\") {\n const key = new PbkdfCryptoKey();\n key.data = Buffer$1.from(keyData);\n key.algorithm = { name: this.name };\n key.extractable = false;\n key.usages = keyUsages;\n return setCryptoKey(key);\n }\n throw new core.OperationError(\"format: Must be 'raw'\");\n }\n checkCryptoKey(key, keyUsage) {\n super.checkCryptoKey(key, keyUsage);\n if (!(getCryptoKey(key) instanceof PbkdfCryptoKey)) {\n throw new TypeError(\"key: Is not PBKDF CryptoKey\");\n }\n }\n}\n\nclass HmacCryptoKey extends CryptoKey {\n get alg() {\n const hash = this.algorithm.hash.name.toUpperCase();\n return `HS${hash.replace(\"SHA-\", \"\")}`;\n }\n set alg(value) {\n }\n}\n__decorate([\n JsonProp({ name: \"k\", converter: JsonBase64UrlConverter })\n], HmacCryptoKey.prototype, \"data\", void 0);\n\nclass HmacProvider extends core.HmacProvider {\n async onGenerateKey(algorithm, extractable, keyUsages) {\n const length = (algorithm.length || this.getDefaultLength(algorithm.hash.name)) >> 3 << 3;\n const key = new HmacCryptoKey();\n key.algorithm = {\n ...algorithm,\n length,\n name: this.name,\n };\n key.extractable = extractable;\n key.usages = keyUsages;\n key.data = crypto.randomBytes(length >> 3);\n return setCryptoKey(key);\n }\n async onSign(algorithm, key, data) {\n const cryptoAlg = ShaCrypto.getAlgorithmName(key.algorithm.hash);\n const hmac = crypto.createHmac(cryptoAlg, getCryptoKey(key).data)\n .update(Buffer$1.from(data)).digest();\n return new Uint8Array(hmac).buffer;\n }\n async onVerify(algorithm, key, signature, data) {\n const cryptoAlg = ShaCrypto.getAlgorithmName(key.algorithm.hash);\n const hmac = crypto.createHmac(cryptoAlg, getCryptoKey(key).data)\n .update(Buffer$1.from(data)).digest();\n return hmac.compare(Buffer$1.from(signature)) === 0;\n }\n async onImportKey(format, keyData, algorithm, extractable, keyUsages) {\n let key;\n switch (format.toLowerCase()) {\n case \"jwk\":\n key = JsonParser.fromJSON(keyData, { targetSchema: HmacCryptoKey });\n break;\n case \"raw\":\n key = new HmacCryptoKey();\n key.data = Buffer$1.from(keyData);\n break;\n default:\n throw new core.OperationError(\"format: Must be 'jwk' or 'raw'\");\n }\n key.algorithm = {\n hash: { name: algorithm.hash.name },\n name: this.name,\n length: key.data.length << 3,\n };\n key.extractable = extractable;\n key.usages = keyUsages;\n return setCryptoKey(key);\n }\n async onExportKey(format, key) {\n switch (format.toLowerCase()) {\n case \"jwk\":\n return JsonSerializer.toJSON(getCryptoKey(key));\n case \"raw\":\n return new Uint8Array(getCryptoKey(key).data).buffer;\n default:\n throw new core.OperationError(\"format: Must be 'jwk' or 'raw'\");\n }\n }\n checkCryptoKey(key, keyUsage) {\n super.checkCryptoKey(key, keyUsage);\n if (!(getCryptoKey(key) instanceof HmacCryptoKey)) {\n throw new TypeError(\"key: Is not HMAC CryptoKey\");\n }\n }\n}\n\nclass HkdfCryptoKey extends CryptoKey {\n}\n\nclass HkdfProvider extends core.HkdfProvider {\n async onImportKey(format, keyData, algorithm, extractable, keyUsages) {\n if (format.toLowerCase() !== \"raw\") {\n throw new core.OperationError(\"Operation not supported\");\n }\n const key = new HkdfCryptoKey();\n key.data = Buffer$1.from(keyData);\n key.algorithm = { name: this.name };\n key.extractable = extractable;\n key.usages = keyUsages;\n return setCryptoKey(key);\n }\n async onDeriveBits(params, baseKey, length) {\n const hash = params.hash.name.replace(\"-\", \"\");\n const hashLength = crypto.createHash(hash).digest().length;\n const byteLength = length / 8;\n const info = BufferSourceConverter$1.toUint8Array(params.info);\n const PRK = crypto.createHmac(hash, BufferSourceConverter$1.toUint8Array(params.salt))\n .update(BufferSourceConverter$1.toUint8Array(getCryptoKey(baseKey).data))\n .digest();\n const blocks = [Buffer$1.alloc(0)];\n const blockCount = Math.ceil(byteLength / hashLength) + 1;\n for (let i = 1; i < blockCount; ++i) {\n blocks.push(crypto.createHmac(hash, PRK)\n .update(Buffer$1.concat([blocks[i - 1], info, Buffer$1.from([i])]))\n .digest());\n }\n return Buffer$1.concat(blocks).slice(0, byteLength);\n }\n checkCryptoKey(key, keyUsage) {\n super.checkCryptoKey(key, keyUsage);\n if (!(getCryptoKey(key) instanceof HkdfCryptoKey)) {\n throw new TypeError(\"key: Is not HKDF CryptoKey\");\n }\n }\n}\n\nclass ShakeCrypto {\n static digest(algorithm, data) {\n const hash = crypto.createHash(algorithm.name.toLowerCase(), { outputLength: algorithm.length })\n .update(Buffer$1.from(data)).digest();\n return new Uint8Array(hash).buffer;\n }\n}\n\nclass Shake128Provider extends core.Shake128Provider {\n async onDigest(algorithm, data) {\n return ShakeCrypto.digest(algorithm, data);\n }\n}\n\nclass Shake256Provider extends core.Shake256Provider {\n async onDigest(algorithm, data) {\n return ShakeCrypto.digest(algorithm, data);\n }\n}\n\nclass SubtleCrypto extends core.SubtleCrypto {\n constructor() {\n var _a;\n super();\n this.providers.set(new AesCbcProvider());\n this.providers.set(new AesCtrProvider());\n this.providers.set(new AesGcmProvider());\n this.providers.set(new AesCmacProvider());\n this.providers.set(new AesKwProvider());\n this.providers.set(new AesEcbProvider());\n const ciphers = crypto.getCiphers();\n if (ciphers.includes(\"des-cbc\")) {\n this.providers.set(new DesCbcProvider());\n }\n this.providers.set(new DesEde3CbcProvider());\n this.providers.set(new RsaSsaProvider());\n this.providers.set(new RsaPssProvider());\n this.providers.set(new RsaOaepProvider());\n this.providers.set(new RsaEsProvider());\n this.providers.set(new EcdsaProvider());\n this.providers.set(new EcdhProvider());\n this.providers.set(new Sha1Provider());\n this.providers.set(new Sha256Provider());\n this.providers.set(new Sha384Provider());\n this.providers.set(new Sha512Provider());\n this.providers.set(new Pbkdf2Provider());\n this.providers.set(new HmacProvider());\n this.providers.set(new HkdfProvider());\n const nodeMajorVersion = (_a = /^v(\\d+)/.exec(process.version)) === null || _a === void 0 ? void 0 : _a[1];\n if (nodeMajorVersion && parseInt(nodeMajorVersion, 10) >= 12) {\n this.providers.set(new Shake128Provider());\n this.providers.set(new Shake256Provider());\n }\n const hashes = crypto.getHashes();\n if (hashes.includes(\"sha3-256\")) {\n this.providers.set(new Sha3256Provider());\n }\n if (hashes.includes(\"sha3-384\")) {\n this.providers.set(new Sha3384Provider());\n }\n if (hashes.includes(\"sha3-512\")) {\n this.providers.set(new Sha3512Provider());\n }\n if (nodeMajorVersion && parseInt(nodeMajorVersion, 10) >= 14) {\n this.providers.set(new EdDsaProvider());\n this.providers.set(new EcdhEsProvider());\n this.providers.set(new Ed25519Provider());\n this.providers.set(new X25519Provider());\n }\n }\n}\n\nclass Crypto extends core.Crypto {\n constructor() {\n super(...arguments);\n this.subtle = new SubtleCrypto();\n }\n getRandomValues(array) {\n if (!ArrayBuffer.isView(array)) {\n throw new TypeError(\"Failed to execute 'getRandomValues' on 'Crypto': parameter 1 is not of type 'ArrayBufferView'\");\n }\n const buffer = Buffer$1.from(array.buffer, array.byteOffset, array.byteLength);\n crypto.randomFillSync(buffer);\n return array;\n }\n}\n\nexport { Crypto };\n","var __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 __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nvar __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n};\nimport { Crypto } from '@peculiar/webcrypto';\nimport { randomBytes } from 'crypto';\nimport { EncryptionAlgorithm } from '../metadata/index.js';\nimport { asyncByChunk } from '../utils/async.js';\nconst crypto = new Crypto();\nexport const ENCRYPTING_CHUNK_SIZE = 1024 * 1024;\nconst IV_SIZE = 16;\nconst TAG_SIZE = 16;\nconst ENCRYPTED_CHUNK_SIZE = ENCRYPTING_CHUNK_SIZE + IV_SIZE + TAG_SIZE;\nconst SALT_SIZE = 32;\nexport const getKeyFromPassword = (_a) => __awaiter(void 0, [_a], void 0, function* ({ password, salt }) {\n const encoder = new TextEncoder();\n const saltHash = typeof salt === 'string' ? yield crypto.subtle.digest('SHA-256', encoder.encode(salt)) : salt;\n const keyMaterial = yield crypto.subtle.importKey('raw', encoder.encode(password), 'PBKDF2', false, ['deriveBits', 'deriveKey']);\n return crypto.subtle.deriveKey({\n name: 'PBKDF2',\n salt: saltHash,\n iterations: 100000,\n hash: 'SHA-256',\n }, keyMaterial, { name: 'AES-GCM', length: 256 }, false, ['encrypt', 'decrypt']);\n});\nexport const encryptFile = function (file_1, password_1, _a) {\n return __asyncGenerator(this, arguments, function* (file, password, { chunkSize = ENCRYPTING_CHUNK_SIZE, algorithm }) {\n var _b, e_1, _c, _d;\n if (algorithm !== EncryptionAlgorithm.AES_256_GCM) {\n throw new Error('Unsupported encryption algorithm');\n }\n const salt = randomBytes(SALT_SIZE);\n const key = yield __await(getKeyFromPassword({ password, salt }));\n yield yield __await(salt);\n try {\n for (var _e = true, _f = __asyncValues(asyncByChunk(file, chunkSize)), _g; _g = yield __await(_f.next()), _b = _g.done, !_b; _e = true) {\n _d = _g.value;\n _e = false;\n const chunk = _d;\n const iv = crypto.getRandomValues(new Uint8Array(IV_SIZE));\n const encrypted = yield __await(crypto.subtle.encrypt({ name: 'AES-GCM', iv }, key, chunk));\n yield yield __await(Buffer.concat([Buffer.from(iv), Buffer.from(encrypted)]));\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (!_e && !_b && (_c = _f.return)) yield __await(_c.call(_f));\n }\n finally { if (e_1) throw e_1.error; }\n }\n });\n};\nexport const decryptFile = function (file_1, password_1, _a) {\n return __asyncGenerator(this, arguments, function* (file, password, { chunkSize = ENCRYPTED_CHUNK_SIZE, algorithm }) {\n var _b, e_2, _c, _d;\n if (algorithm !== EncryptionAlgorithm.AES_256_GCM) {\n throw new Error('Unsupported encryption algorithm');\n }\n let key = undefined;\n let chunks = Buffer.alloc(0);\n try {\n for (var _e = true, file_2 = __asyncValues(file), file_2_1; file_2_1 = yield __await(file_2.next()), _b = file_2_1.done, !_b; _e = true) {\n _d = file_2_1.value;\n _e = false;\n const chunk = _d;\n chunks = Buffer.concat([chunks, chunk]);\n if (chunks.length >= SALT_SIZE && !key) {\n const salt = chunks.subarray(0, 32);\n key = yield __await(getKeyFromPassword({ password, salt }));\n chunks = chunks.subarray(SALT_SIZE);\n }\n while (key && chunks.length >= chunkSize) {\n const iv = chunks.subarray(0, IV_SIZE);\n const encryptedChunk = chunk.subarray(IV_SIZE, chunkSize);\n const decrypted = yield __await(crypto.subtle.decrypt({ name: 'AES-GCM', iv }, key, encryptedChunk));\n chunks = chunks.subarray(chunkSize);\n yield yield __await(Buffer.from(decrypted));\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (!_e && !_b && (_c = file_2.return)) yield __await(_c.call(file_2));\n }\n finally { if (e_2) throw e_2.error; }\n }\n if (key && chunks.length > 0) {\n const iv = chunks.subarray(0, IV_SIZE);\n const encryptedChunk = chunks.subarray(IV_SIZE, chunkSize);\n const decrypted = yield __await(crypto.subtle.decrypt({ name: 'AES-GCM', iv }, key, encryptedChunk));\n yield yield __await(Buffer.from(decrypted));\n }\n });\n};\n","/*!\n * mime-db\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015-2022 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n/**\n * Module exports.\n */\n\nmodule.exports = require('./db.json')\n","/*!\n * mime-types\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar db = require('mime-db')\nvar extname = require('path').extname\n\n/**\n * Module variables.\n * @private\n */\n\nvar EXTRACT_TYPE_REGEXP = /^\\s*([^;\\s]*)(?:;|\\s|$)/\nvar TEXT_TYPE_REGEXP = /^text\\//i\n\n/**\n * Module exports.\n * @public\n */\n\nexports.charset = charset\nexports.charsets = { lookup: charset }\nexports.contentType = contentType\nexports.extension = extension\nexports.extensions = Object.create(null)\nexports.lookup = lookup\nexports.types = Object.create(null)\n\n// Populate the extensions/types maps\npopulateMaps(exports.extensions, exports.types)\n\n/**\n * Get the default charset for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction charset (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n var mime = match && db[match[1].toLowerCase()]\n\n if (mime && mime.charset) {\n return mime.charset\n }\n\n // default text/* to utf-8\n if (match && TEXT_TYPE_REGEXP.test(match[1])) {\n return 'UTF-8'\n }\n\n return false\n}\n\n/**\n * Create a full Content-Type header given a MIME type or extension.\n *\n * @param {string} str\n * @return {boolean|string}\n */\n\nfunction contentType (str) {\n // TODO: should this even be in this module?\n if (!str || typeof str !== 'string') {\n return false\n }\n\n var mime = str.indexOf('/') === -1\n ? exports.lookup(str)\n : str\n\n if (!mime) {\n return false\n }\n\n // TODO: use content-type or other module\n if (mime.indexOf('charset') === -1) {\n var charset = exports.charset(mime)\n if (charset) mime += '; charset=' + charset.toLowerCase()\n }\n\n return mime\n}\n\n/**\n * Get the default extension for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction extension (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n\n // get extensions\n var exts = match && exports.extensions[match[1].toLowerCase()]\n\n if (!exts || !exts.length) {\n return false\n }\n\n return exts[0]\n}\n\n/**\n * Lookup the MIME type for a file path/extension.\n *\n * @param {string} path\n * @return {boolean|string}\n */\n\nfunction lookup (path) {\n if (!path || typeof path !== 'string') {\n return false\n }\n\n // get the extension (\"ext\" or \".ext\" or full path)\n var extension = extname('x.' + path)\n .toLowerCase()\n .substr(1)\n\n if (!extension) {\n return false\n }\n\n return exports.types[extension] || false\n}\n\n/**\n * Populate the extensions and types maps.\n * @private\n */\n\nfunction populateMaps (extensions, types) {\n // source preference (least -> most)\n var preference = ['nginx', 'apache', undefined, 'iana']\n\n Object.keys(db).forEach(function forEachMimeType (type) {\n var mime = db[type]\n var exts = mime.extensions\n\n if (!exts || !exts.length) {\n return\n }\n\n // mime -> extensions\n extensions[type] = exts\n\n // extension -> mime\n for (var i = 0; i < exts.length; i++) {\n var extension = exts[i]\n\n if (types[extension]) {\n var from = preference.indexOf(db[types[extension]].source)\n var to = preference.indexOf(mime.source)\n\n if (types[extension] !== 'application/octet-stream' &&\n (from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) {\n // skip the remapping\n continue\n }\n }\n\n // set the extension -> mime\n types[extension] = type\n }\n })\n}\n","export const asyncByChunk = async function* (\n asyncIterable: AsyncIterable<Buffer>,\n chunkSize: number,\n) {\n let buffer = Buffer.alloc(0)\n\n for await (const chunk of asyncIterable) {\n buffer = Buffer.concat([buffer, chunk])\n while (buffer.length >= chunkSize) {\n yield buffer.subarray(0, chunkSize)\n buffer = buffer.subarray(chunkSize)\n }\n }\n\n if (buffer.length > 0) {\n yield buffer\n }\n}\n\nexport const asyncFromStream = async function* (\n stream: ReadableStream<Uint8Array>,\n): AsyncIterable<Buffer> {\n const reader = stream.getReader()\n let result = await reader.read()\n while (!result.done) {\n yield Buffer.from(result.value)\n result = await reader.read()\n }\n}\n","import fs from 'fs/promises'\nimport path from 'path'\n\nexport const getFiles = async (folderPath: string): Promise<string[]> => {\n const stat = await fs.stat(folderPath)\n\n if (stat.isDirectory()) {\n const files = await fs.readdir(folderPath)\n const promises = files.map((file) => getFiles(path.join(folderPath, file)))\n const allFiles = await Promise.all(promises)\n return allFiles.flat()\n } else {\n return [folderPath]\n }\n}\n","import {\n compressFile,\n CompressionAlgorithm,\n decompressFile,\n decryptFile,\n encryptFile,\n EncryptionAlgorithm,\n} from '@autonomys/auto-dag-data'\nimport fs from 'fs'\nimport mime from 'mime-types'\nimport { asyncByChunk, asyncFromStream } from '../utils/async.js'\nimport { getFiles } from '../utils/folder.js'\nimport {\n completeUpload,\n createFileUpload,\n createFileUploadWithinFolderUpload,\n createFolderUpload,\n downloadObject,\n getObjectMetadata,\n uploadFileChunk,\n} from './calls/index.js'\nimport { AutoDriveApi } from './connection.js'\nimport { constructFromFileSystemEntries } from './models/folderTree.js'\n\ntype UploadFileOptions = {\n password?: string\n compression?: boolean\n}\n\nconst UPLOAD_FILE_CHUNK_SIZE = 1024 * 1024\n\nconst uploadFileChunks = async (\n api: AutoDriveApi,\n fileUploadId: string,\n asyncIterable: AsyncIterable<Buffer>,\n uploadChunkSize: number = UPLOAD_FILE_CHUNK_SIZE,\n) => {\n let index = 0\n for await (const chunk of asyncByChunk(asyncIterable, uploadChunkSize)) {\n await uploadFileChunk(api, { uploadId: fileUploadId, chunk, index })\n index++\n }\n}\n\n/**\n * Uploads a file to the server with optional encryption and compression.\n *\n * This function reads a file from the specified file path, optionally encrypts it\n * using the provided password, and compresses it using the ZLIB algorithm if specified.\n * It then uploads the file in chunks to the server, creating an upload session and\n * completing it once all chunks have been uploaded.\n *\n * @param {AutoDriveApi} api - The API instance used to send requests.\n * @param {string} filePath - The path to the file to be uploaded.\n * @param {UploadFileOptions} options - Options for the upload process.\n * @param {string} [options.password] - The password for encryption (optional).\n * @param {boolean} [options.compression=true] - Whether to compress the file (optional).\n * @returns {Promise<void>} - A promise that resolves when the upload is complete.\n * @throws {Error} - Throws an error if the upload fails at any stage.\n */\nexport const uploadFile = async (\n api: AutoDriveApi,\n filePath: string,\n { password, compression = true }: UploadFileOptions,\n uploadChunkSize?: number,\n) => {\n let asyncIterable: AsyncIterable<Buffer> = fs.createReadStream(filePath)\n\n if (compression) {\n asyncIterable = compressFile(asyncIterable, {\n level: 9,\n algorithm: CompressionAlgorithm.ZLIB,\n })\n }\n\n if (password) {\n asyncIterable = encryptFile(asyncIterable, password, {\n algorithm: EncryptionAlgorithm.AES_256_GCM,\n })\n }\n\n const uploadOptions = {\n compression: compression\n ? {\n level: 9,\n algorithm: CompressionAlgorithm.ZLIB,\n }\n : undefined,\n encryption: password\n ? {\n algorithm: EncryptionAlgorithm.AES_256_GCM,\n }\n : undefined,\n }\n const fileUpload = await createFileUpload(api, {\n mimeType: mime.lookup(filePath) || undefined,\n filename: filePath.split('/').pop()!,\n uploadOptions,\n })\n\n await uploadFileChunks(api, fileUpload.id, asyncIterable, uploadChunkSize)\n\n await completeUpload(api, { uploadId: fileUpload.id })\n}\n\n/**\n * Uploads an entire folder to the server.\n *\n * This function retrieves all files within the specified folder,\n * constructs a file tree representation, and initiates the upload\n * process. It also handles optional compression of the files during\n * the upload.\n *\n * @param {AutoDriveApi} api - The API instance used to send requests.\n * @param {string} folderPath - The path of the folder to be uploaded.\n * @returns {Promise<void>} - A promise that resolves when the folder upload is complete.\n * @throws {Error} - Throws an error if the upload fails at any stage.\n */\nexport const uploadFolder = async (\n api: AutoDriveApi,\n folderPath: string,\n uploadChunkSize?: number,\n) => {\n const files = await getFiles(folderPath)\n\n const fileTree = constructFromFileSystemEntries(files)\n\n const folderUpload = await createFolderUpload(api, {\n fileTree,\n uploadOptions: {\n compression: {\n algorithm: CompressionAlgorithm.ZLIB,\n level: 9,\n },\n },\n })\n\n for (const file of files) {\n await uploadFileWithinFolderUpload(api, folderUpload.id, file, uploadChunkSize)\n }\n\n await completeUpload(api, { uploadId: folderUpload.id })\n}\n\n/**\n * Uploads a file within an existing folder upload session.\n *\n * @param {AutoDriveApi} api - The API instance to interact with the AutoDrive service.\n * @param {string} uploadId - The ID of the folder upload session to which the file will be added.\n * @param {string} filepath - The path of the file to be uploaded.\n *\n * @returns {Promise<void>} A promise that resolves when the file upload is complete.\n */\nexport const uploadFileWithinFolderUpload = async (\n api: AutoDriveApi,\n uploadId: string,\n filepath: string,\n uploadChunkSize?: number,\n) => {\n const name = filepath.split('/').pop()!\n const fileUpload = await createFileUploadWithinFolderUpload(api, {\n uploadId,\n name,\n mimeType: mime.lookup(name) || undefined,\n relativeId: filepath,\n uploadOptions: {},\n })\n\n await uploadFileChunks(api, fileUpload.id, fs.createReadStream(filepath), uploadChunkSize)\n\n await completeUpload(api, { uploadId: fileUpload.id })\n}\n\n/**\n * Downloads a file from the AutoDrive service.\n *\n * @param {AutoDriveApi} api - The API instance to interact with the AutoDrive service.\n * @param {string} cid - The CID of the file to be downloaded.\n * @returns {Promise<ReadableStream<Uint8Array>>} A promise that resolves to a ReadableStream of the downloaded file.\n */\nexport const downloadFile = async (\n api: AutoDriveApi,\n cid: string,\n password?: string,\n): Promise<AsyncIterable<Buffer>> => {\n const metadata = await getObjectMetadata(api, { cid })\n\n let iterable = asyncFromStream(await downloadObject(api, { cid }))\n if (metadata.uploadOptions?.encryption) {\n if (!password) {\n throw new Error('Password is required to decrypt the file')\n }\n iterable = decryptFile(iterable, password, {\n algorithm: EncryptionAlgorithm.AES_256_GCM,\n })\n }\n\n if (metadata.uploadOptions?.compression) {\n iterable = decompressFile(iterable, {\n algorithm: CompressionAlgorithm.ZLIB,\n })\n }\n\n return iterable\n}\n\n/**\n * Downloads a folder from the AutoDrive service without encryption.\n *\n * @param {AutoDriveApi} api - The API instance to interact with the AutoDrive service.\n * @param {string} cid - The CID of the folder to be downloaded.\n *\n * @returns {Promise<ReadableStream<Uint8Array>>} A promise that resolves to a ReadableStream of the downloaded folder.\n *\n * @warning If the folder is encrypted, a warning will be logged, but the download will proceed without decryption.\n */\nexport const downloadFolderWithoutEncryption = async (\n api: AutoDriveApi,\n cid: string,\n): Promise<ReadableStream<Uint8Array>> => {\n const metadata = await getObjectMetadata(api, { cid })\n if (metadata.uploadOptions?.encryption) {\n console.warn(\n 'Downloading encrypted folder. Folder support encryption but it is not recommended.',\n )\n }\n\n return downloadObject(api, { cid })\n}\n","import { WriteStream } from 'fs'\n\nexport const createWriteStreamAdapter = (\n nodeWriteStream: WriteStream,\n): WritableStream<Uint8Array> => {\n return new WritableStream({\n write(chunk) {\n return new Promise((resolve, reject) => {\n nodeWriteStream.write(chunk, (err) => {\n if (err) {\n reject(err)\n } else {\n resolve()\n }\n })\n })\n },\n close() {\n nodeWriteStream.end()\n },\n abort(err) {\n nodeWriteStream.destroy(err)\n },\n })\n}\n"],"names":["coerce","require$$0","require$$1","require$$2","require","hashInstance","fromString","basex","decode","encode","this","__await","_a","zero","utf8.read","base2","base8","base10","base16","base32","base36","base64","base256emoji","createCodec","bases","utf8.length","utf8.write","uint8ArrayFromString","__asyncValues","__asyncGenerator","asyncByChunk","pvtsutils.BufferSourceConverter","pvtsutils.Convert","pvutils.utilToBase","pvutils.utilFromBase","pvutils.isEqualBuffer","pvutils.utilDecodeTC","Boolean","OctetString","BitString","pvutils.utilConcatView","pvutils.utilEncodeTC","ObjectIdentifier","Set","pvutils.padNumber","asn1js.Null","asn1js.fromBER","asn1js.Integer","asn1js.Enumerated","asn1js.BitString","asn1js.ObjectIdentifier","asn1js.Boolean","asn1js.OctetString","asn1js.Utf8String","asn1js.BmpString","asn1js.UniversalString","asn1js.NumericString","asn1js.PrintableString","asn1js.TeletexString","asn1js.VideotexString","asn1js.IA5String","asn1js.GraphicString","asn1js.VisibleString","asn1js.GeneralString","asn1js.CharacterString","asn1js.UTCTime","asn1js.GeneralizedTime","isConvertible","asn1js.Any","asn1js.Set","asn1js.Sequence","asn1js.Repeated","asn1js.Constructed","asn1js.Primitive","asn1js.Choice","schemaStorage","defaultConverter","converters.defaultConverter","asn1js.compareSchema","asn1js.BaseBlock","CryptoKey","EcdhProvider","asn1.Integer","RsaPrivateKey","RsaPublicKey","EcPublicKey","EcPrivateKey","EdPrivateKey","EdPublicKey","core.CryptoKey","core.AlgorithmError","crypto","core.OperationError","core.AesCbcProvider","core.AesCmacProvider","core.AesCtrProvider","core.AesGcmProvider","core.AesKwProvider","core.AesEcbProvider","core.DesProvider","core.asn1","core.RsaSsaProvider","core.RsaPssProvider","core.RsaOaepProvider","core.BufferSourceConverter","core.ProviderCrypto","core.EcUtils","core.EcCurves","core.CryptoError","core.EcdsaProvider","core.EcdhProvider","core.EdDsaProvider","core.EcdhEsProvider","core.PemConverter","core.Ed25519Provider","core.X25519Provider","core.Pbkdf2Provider","core.HmacProvider","core.HkdfProvider","BufferSourceConverter$1","core.Shake128Provider","core.Shake256Provider","core.SubtleCrypto","process","core.Crypto","fs","path"],"mappings":";;;;;;;AAGa,MAAA,cAAc,GAAG,OAC5B,GAAiB,EACjB,KAA6C,KACN;AACvC,IAAA,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,CAAA,SAAA,EAAY,KAAK,CAAC,GAAG,CAAA,SAAA,CAAW,EAAE;AACvE,QAAA,MAAM,EAAE,KAAK;AACd,KAAA,CAAC;AAEF,IAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,CAAA,yBAAA,EAA4B,QAAQ,CAAC,UAAU,CAAE,CAAA,CAAC;;AAGpE,IAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAClB,QAAA,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;;IAG3D,OAAO,QAAQ,CAAC,IAAI;AACtB;;AChBA;;;;;;;AAOG;AACU,MAAA,QAAQ,GAAG,OACtB,GAAiB,EACjB,KAA2C,KACf;IAC5B,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,WAAW,CACpC,wBAAwB,KAAK,CAAC,KAAK,CAAU,OAAA,EAAA,KAAK,CAAC,KAAK,CAAA,QAAA,EAAW,KAAK,CAAC,MAAM,EAAE,EACjF;AACE,QAAA,MAAM,EAAE,KAAK;AACd,KAAA,CACF;AAED,IAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,CAAA,qBAAA,EAAwB,QAAQ,CAAC,UAAU,CAAE,CAAA,CAAC;;AAGhE,IAAA,OAAO,QAAQ,CAAC,IAAI,EAAE;AACxB;AAEA;;;;;;;;;;AAUG;AACU,MAAA,eAAe,GAAG,OAC7B,GAAiB,EACjB,KAAyB,KACG;AAC5B,IAAA,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,WAAW,CACpC,CAAA,4BAAA,EAA+B,KAAK,CAAC,KAAK,CAAW,QAAA,EAAA,KAAK,CAAC,MAAM,EAAE,EACnE;AACE,QAAA,MAAM,EAAE,KAAK;AACd,KAAA,CACF;AAED,IAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,CAAA,8BAAA,EAAiC,QAAQ,CAAC,UAAU,CAAE,CAAA,CAAC;;AAGzE,IAAA,OAAO,QAAQ,CAAC,IAAI,EAAE;AACxB;AAEA;;;;;;;;;;AAUG;AACU,MAAA,UAAU,GAAG,OACxB,GAAiB,EACjB,KAAyB,KACG;AAC5B,IAAA,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,WAAW,CACpC,CAAA,6BAAA,EAAgC,KAAK,CAAC,KAAK,CAAW,QAAA,EAAA,KAAK,CAAC,MAAM,EAAE,EACpE;AACE,QAAA,MAAM,EAAE,KAAK;AACd,KAAA,CACF;AAED,IAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,CAAA,uBAAA,EAA0B,QAAQ,CAAC,UAAU,CAAE,CAAA,CAAC;;AAGlE,IAAA,OAAO,QAAQ,CAAC,IAAI,EAAE;AACxB;AAEA;;;;;;;;;;AAUG;AACU,MAAA,SAAS,GAAG,OACvB,GAAiB,EACjB,KAA6C,KACf;AAC9B,IAAA,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,CAAA,SAAA,EAAY,KAAK,CAAC,GAAG,CAAA,CAAE,EAAE;AAC9D,QAAA,MAAM,EAAE,KAAK;AACd,KAAA,CAAC;AAEF,IAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,CAAA,sBAAA,EAAyB,QAAQ,CAAC,UAAU,CAAE,CAAA,CAAC;;AAGjE,IAAA,OAAO,QAAQ,CAAC,IAAI,EAAE;AACxB;AAEA;;;;;;;;;;;AAWG;AACU,MAAA,qBAAqB,GAAG,OACnC,GAAiB,EACjB,KAA6C,KACC;AAC9C,IAAA,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,CAAA,SAAA,EAAY,KAAK,CAAC,GAAG,CAAA,OAAA,CAAS,EAAE;AACrE,QAAA,MAAM,EAAE,KAAK;AACd,KAAA,CAAC;AAEF,IAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,CAAA,sBAAA,EAAyB,QAAQ,CAAC,UAAU,CAAE,CAAA,CAAC;;AAGjE,IAAA,OAAO,QAAQ,CAAC,IAAI,EAAE;AACxB;AAEA;;;;;;;;;;;AAWG;AACU,MAAA,eAAe,GAAG,OAC7B,GAAiB,EACjB,KAA6C,KACL;AACxC,IAAA,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,CAAA,SAAA,EAAY,KAAK,CAAC,GAAG,CAAA,OAAA,CAAS,EAAE;AACrE,QAAA,MAAM,EAAE,KAAK;AACd,KAAA,CAAC;AAEF,IAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,CAAA,sBAAA,EAAyB,QAAQ,CAAC,UAAU,CAAE,CAAA,CAAC;;AAGjE,IAAA,OAAO,QAAQ,CAAC,IAAI,EAAE;AACxB;AAEA;;;;;;;;;;;AAWG;AACU,MAAA,iBAAiB,GAAG,OAC/B,GAAiB,EACjB,KAA6C,KACH;AAC1C,IAAA,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,CAAA,SAAA,EAAY,KAAK,CAAC,GAAG,CAAA,SAAA,CAAW,EAAE;AACvE,QAAA,MAAM,EAAE,KAAK;AACd,KAAA,CAAC;AAEF,IAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,CAAA,sBAAA,EAAyB,QAAQ,CAAC,UAAU,CAAE,CAAA,CAAC;;AAGjE,IAAA,OAAO,QAAQ,CAAC,IAAI,EAAE;AACxB;;AC3LA;;;;;;;;;;AAUG;AACU,MAAA,gBAAgB,GAAG,OAC9B,GAAiB,EACjB,EACE,QAAQ,EACR,QAAQ,EACR,aAAa,GAAG,EAAE,GAKlB,KACqB;IACvB,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,WAAW,CACpC,eAAe,EACf;AACE,QAAA,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,IAAI,OAAO,CAAC;AACnB,YAAA,cAAc,EAAE,kBAAkB;SACnC,CAAC;AACH,KAAA,EACD,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CACtD;AAED,IAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,CAAA,8BAAA,EAAiC,QAAQ,CAAC,UAAU,CAAE,CAAA,CAAC;;AAGzE,IAAA,OAAO,QAAQ,CAAC,IAAI,EAAE;AACxB;AAEA;;;;;;;;;AASG;AACI,MAAM,kBAAkB,GAAG,OAChC,GAAiB,EACjB,EACE,QAAQ,EACR,aAAa,GACqE,KAC3D;IACzB,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,WAAW,CACpC,iBAAiB,EACjB;AACE,QAAA,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,IAAI,OAAO,CAAC;AACnB,YAAA,cAAc,EAAE,kBAAkB;SACnC,CAAC;KACH,EACD,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAC5C;AAED,IAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,CAAA,gCAAA,EAAmC,QAAQ,CAAC,UAAU,CAAE,CAAA,CAAC;;AAG3E,IAAA,OAAO,QAAQ,CAAC,IAAI,EAAE;AACxB;AAEA;;;;;;;;;;;;AAYG;MACU,kCAAkC,GAAG,OAChD,GAAiB,EACjB,EACE,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,aAAa,GAAG,EAAE,GAOlB,KACqB;IACvB,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,WAAW,CACpC,CAAA,gBAAA,EAAmB,QAAQ,CAAA,KAAA,CAAO,EAClC;AACE,QAAA,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,IAAI,OAAO,CAAC;AACnB,YAAA,cAAc,EAAE,kBAAkB;SACnC,CAAC;AACH,KAAA,EACD,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAC9D;AAED,IAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,CAAA,mDAAA,EAAsD,QAAQ,CAAC,UAAU,CAAE,CAAA,CAAC;;AAG9F,IAAA,OAAO,QAAQ,CAAC,IAAI,EAAE;AACxB;AAEA;;;;;;;;;;;;;;;AAeG;AACU,MAAA,eAAe,GAAG,OAC7B,GAAiB,EACjB,EACE,QAAQ,EACR,KAAK,EACL,KAAK,GACqE,KAC3D;AACjB,IAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE;AAC/B,IAAA,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1C,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;IAE1C,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,WAAW,CACpC,CAAA,cAAA,EAAiB,QAAQ,CAAA,MAAA,CAAQ,EACjC;AACE,QAAA,MAAM,EAAE,MAAM;KACf,EACD,QAAQ,CACT;AAED,IAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,CAAA,6BAAA,EAAgC,QAAQ,CAAC,UAAU,CAAE,CAAA,CAAC;;AAE1E;AAEA;;;;;;;;;;;;;AAaG;AACI,MAAM,cAAc,GAAG,OAC5B,GAAiB,EACjB,EAAE,QAAQ,EAA+C,KACvD;IACF,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,CAAA,SAAA,EAAY,QAAQ,CAAA,SAAA,CAAW,EAAE;AACtE,QAAA,MAAM,EAAE,MAAM;AACf,KAAA,CAAC;AAEF,IAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,CAAA,2BAAA,EAA8B,QAAQ,CAAC,UAAU,CAAE,CAAA,CAAC;;AAGtE,IAAA,OAAO,QAAQ,CAAC,IAAI,EAAE;AACxB;;AClMA;;;;;;;;;;;AAWG;AACU,MAAA,WAAW,GAAG,OACzB,GAAiB,EACjB,KAA+D,KAC7D;AACF,IAAA,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,WAAW,CACpC,CAAA,SAAA,EAAY,KAAK,CAAC,GAAG,CAAA,MAAA,CAAQ,EAC7B;AACE,QAAA,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,IAAI,OAAO,CAAC;AACnB,YAAA,cAAc,EAAE,kBAAkB;SACnC,CAAC;AACH,KAAA,EACD,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAC7C;AAED,IAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,CAAA,wBAAA,EAA2B,QAAQ,CAAC,UAAU,CAAE,CAAA,CAAC;;AAGnE,IAAA,OAAO,QAAQ,CAAC,IAAI,EAAE;AACxB;AAEA;;;;;;;;;;;AAWG;AACU,MAAA,mBAAmB,GAAG,OACjC,GAAiB,EACjB,KAA6C,KAC5B;AACjB,IAAA,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,CAAA,SAAA,EAAY,KAAK,CAAC,GAAG,CAAA,OAAA,CAAS,EAAE;AACrE,QAAA,MAAM,EAAE,MAAM;AACf,KAAA,CAAC;AAEF,IAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,CAAA,kCAAA,EAAqC,QAAQ,CAAC,UAAU,CAAE,CAAA,CAAC;;AAE/E;AAEA;;;;;;;;;;;AAWG;AACU,MAAA,aAAa,GAAG,OAC3B,GAAiB,EACjB,KAA6C,KAC5B;AACjB,IAAA,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,CAAA,SAAA,EAAY,KAAK,CAAC,GAAG,CAAA,QAAA,CAAU,EAAE;AACtE,QAAA,MAAM,EAAE,MAAM;AACf,KAAA,CAAC;AAEF,IAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,CAAA,0BAAA,EAA6B,QAAQ,CAAC,UAAU,CAAE,CAAA,CAAC;;AAGrE,IAAA,OAAO,QAAQ,CAAC,IAAI,EAAE;AACxB;;AC/EO,MAAM,kBAAkB,GAAG,CAAC,EACjC,MAAM,EACN,GAAG,GAAG,uCAAuC,GAI9C,KAAkB;IACjB,OAAO;QACL,WAAW,EAAE,OAAO,WAAmB,EAAE,OAAyB,EAAE,IAAe,KAAI;AACrF,YAAA,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;AAC1B,gBAAA,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACvD,gBAAA,iBAAiB,EAAE,QAAQ;gBAC3B,aAAa,EAAE,CAAU,OAAA,EAAA,MAAM,CAAE,CAAA;AAClC,aAAA,CAAC;AACF,YAAA,MAAM,WAAW,GAAG;AAClB,gBAAA,GAAG,OAAO;AACV,gBAAA,OAAO,EAAE,IAAI,OAAO,CAAC,OAAO,CAAC;gBAC7B,IAAI;aACL;YAED,OAAO,KAAK,CAAC,CAAA,EAAG,GAAG,CAAA,EAAG,WAAW,CAAE,CAAA,EAAE,WAAW,CAAC;SAClD;KACF;AACH;;IC7BY;AAAZ,CAAA,UAAY,KAAK,EAAA;AACf,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACf,CAAC,EAHW,KAAK,KAAL,KAAK,GAGhB,EAAA,CAAA,CAAA;IAOW;AAAZ,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACnB,CAAC,EAHW,SAAS,KAAT,SAAS,GAGpB,EAAA,CAAA,CAAA;;ACfD,IAAI,IAAI;AACR,CAAC,UAAU,IAAI,EAAE;AACjB,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,KAAK,GAAG;AACnC,IAAI,SAAS,QAAQ,CAAC,IAAI,EAAE;AAC5B,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAC5B,IAAI,SAAS,WAAW,CAAC,EAAE,EAAE;AAC7B,QAAQ,MAAM,IAAI,KAAK,EAAE;AACzB;AACA,IAAI,IAAI,CAAC,WAAW,GAAG,WAAW;AAClC,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,KAAK,KAAK;AAClC,QAAQ,MAAM,GAAG,GAAG,EAAE;AACtB,QAAQ,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAClC,YAAY,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI;AAC5B;AACA,QAAQ,OAAO,GAAG;AAClB,KAAK;AACL,IAAI,IAAI,CAAC,kBAAkB,GAAG,CAAC,GAAG,KAAK;AACvC,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;AAC7F,QAAQ,MAAM,QAAQ,GAAG,EAAE;AAC3B,QAAQ,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE;AACnC,YAAY,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAChC;AACA,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;AAC1C,KAAK;AACL,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,KAAK;AACjC,QAAQ,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;AACrD,YAAY,OAAO,GAAG,CAAC,CAAC,CAAC;AACzB,SAAS,CAAC;AACV,KAAK;AACL,IAAI,IAAI,CAAC,UAAU,GAAG,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU;AACvD,UAAU,CAAC,GAAG,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AACnC,UAAU,CAAC,MAAM,KAAK;AACtB,YAAY,MAAM,IAAI,GAAG,EAAE;AAC3B,YAAY,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;AACtC,gBAAgB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;AACvE,oBAAoB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAClC;AACA;AACA,YAAY,OAAO,IAAI;AACvB,SAAS;AACT,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK;AAClC,QAAQ,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;AAChC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;AAC7B,gBAAgB,OAAO,IAAI;AAC3B;AACA,QAAQ,OAAO,SAAS;AACxB,KAAK;AACL,IAAI,IAAI,CAAC,SAAS,GAAG,OAAO,MAAM,CAAC,SAAS,KAAK;AACjD,UAAU,CAAC,GAAG,KAAK,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC;AACxC,UAAU,CAAC,GAAG,KAAK,OAAO,GAAG,KAAK,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG;AACtF,IAAI,SAAS,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,EAAE;AAClD,QAAQ,OAAO;AACf,aAAa,GAAG,CAAC,CAAC,GAAG,MAAM,OAAO,GAAG,KAAK,QAAQ,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACtE,aAAa,IAAI,CAAC,SAAS,CAAC;AAC5B;AACA,IAAI,IAAI,CAAC,UAAU,GAAG,UAAU;AAChC,IAAI,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC,EAAE,KAAK,KAAK;AAC/C,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACvC,YAAY,OAAO,KAAK,CAAC,QAAQ,EAAE;AACnC;AACA,QAAQ,OAAO,KAAK;AACpB,KAAK;AACL,CAAC,EAAE,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC;AACvB,IAAI,UAAU;AACd,CAAC,UAAU,UAAU,EAAE;AACvB,IAAI,UAAU,CAAC,WAAW,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK;AAChD,QAAQ,OAAO;AACf,YAAY,GAAG,KAAK;AACpB,YAAY,GAAG,MAAM;AACrB,SAAS;AACT,KAAK;AACL,CAAC,EAAE,UAAU,KAAK,UAAU,GAAG,EAAE,CAAC,CAAC;AACnC,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC;AACvC,IAAI,QAAQ;AACZ,IAAI,KAAK;AACT,IAAI,QAAQ;AACZ,IAAI,SAAS;AACb,IAAI,OAAO;AACX,IAAI,SAAS;AACb,IAAI,MAAM;AACV,IAAI,QAAQ;AACZ,IAAI,QAAQ;AACZ,IAAI,UAAU;AACd,IAAI,WAAW;AACf,IAAI,MAAM;AACV,IAAI,OAAO;AACX,IAAI,QAAQ;AACZ,IAAI,SAAS;AACb,IAAI,SAAS;AACb,IAAI,MAAM;AACV,IAAI,OAAO;AACX,IAAI,KAAK;AACT,IAAI,KAAK;AACT,CAAC,CAAC;AACF,MAAM,aAAa,GAAG,CAAC,IAAI,KAAK;AAChC,IAAI,MAAM,CAAC,GAAG,OAAO,IAAI;AACzB,IAAI,QAAQ,CAAC;AACb,QAAQ,KAAK,WAAW;AACxB,YAAY,OAAO,aAAa,CAAC,SAAS;AAC1C,QAAQ,KAAK,QAAQ;AACrB,YAAY,OAAO,aAAa,CAAC,MAAM;AACvC,QAAQ,KAAK,QAAQ;AACrB,YAAY,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,GAAG,GAAG,aAAa,CAAC,MAAM;AACzE,QAAQ,KAAK,SAAS;AACtB,YAAY,OAAO,aAAa,CAAC,OAAO;AACxC,QAAQ,KAAK,UAAU;AACvB,YAAY,OAAO,aAAa,CAAC,QAAQ;AACzC,QAAQ,KAAK,QAAQ;AACrB,YAAY,OAAO,aAAa,CAAC,MAAM;AACvC,QAAQ,KAAK,QAAQ;AACrB,YAAY,OAAO,aAAa,CAAC,MAAM;AACvC,QAAQ,KAAK,QAAQ;AACrB,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACrC,gBAAgB,OAAO,aAAa,CAAC,KAAK;AAC1C;AACA,YAAY,IAAI,IAAI,KAAK,IAAI,EAAE;AAC/B,gBAAgB,OAAO,aAAa,CAAC,IAAI;AACzC;AACA,YAAY,IAAI,IAAI,CAAC,IAAI;AACzB,gBAAgB,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU;AAC/C,gBAAgB,IAAI,CAAC,KAAK;AAC1B,gBAAgB,OAAO,IAAI,CAAC,KAAK,KAAK,UAAU,EAAE;AAClD,gBAAgB,OAAO,aAAa,CAAC,OAAO;AAC5C;AACA,YAAY,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,IAAI,YAAY,GAAG,EAAE;AACnE,gBAAgB,OAAO,aAAa,CAAC,GAAG;AACxC;AACA,YAAY,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,IAAI,YAAY,GAAG,EAAE;AACnE,gBAAgB,OAAO,aAAa,CAAC,GAAG;AACxC;AACA,YAAY,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,YAAY,IAAI,EAAE;AACrE,gBAAgB,OAAO,aAAa,CAAC,IAAI;AACzC;AACA,YAAY,OAAO,aAAa,CAAC,MAAM;AACvC,QAAQ;AACR,YAAY,OAAO,aAAa,CAAC,OAAO;AACxC;AACA,CAAC;;AAED,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC;AACtC,IAAI,cAAc;AAClB,IAAI,iBAAiB;AACrB,IAAI,QAAQ;AACZ,IAAI,eAAe;AACnB,IAAI,6BAA6B;AACjC,IAAI,oBAAoB;AACxB,IAAI,mBAAmB;AACvB,IAAI,mBAAmB;AACvB,IAAI,qBAAqB;AACzB,IAAI,cAAc;AAClB,IAAI,gBAAgB;AACpB,IAAI,WAAW;AACf,IAAI,SAAS;AACb,IAAI,4BAA4B;AAChC,IAAI,iBAAiB;AACrB,IAAI,YAAY;AAChB,CAAC,CAAC;AACF,MAAM,aAAa,GAAG,CAAC,GAAG,KAAK;AAC/B,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7C,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC;AAC7C,CAAC;AACD,MAAM,QAAQ,SAAS,KAAK,CAAC;AAC7B,IAAI,WAAW,CAAC,MAAM,EAAE;AACxB,QAAQ,KAAK,EAAE;AACf,QAAQ,IAAI,CAAC,MAAM,GAAG,EAAE;AACxB,QAAQ,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,KAAK;AACjC,YAAY,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC;AAC/C,SAAS;AACT,QAAQ,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,GAAG,EAAE,KAAK;AACxC,YAAY,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;AACnD,SAAS;AACT,QAAQ,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS;AAChD,QAAQ,IAAI,MAAM,CAAC,cAAc,EAAE;AACnC;AACA,YAAY,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC;AACpD;AACA,aAAa;AACb,YAAY,IAAI,CAAC,SAAS,GAAG,WAAW;AACxC;AACA,QAAQ,IAAI,CAAC,IAAI,GAAG,UAAU;AAC9B,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B;AACA,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,MAAM;AAC1B;AACA,IAAI,MAAM,CAAC,OAAO,EAAE;AACpB,QAAQ,MAAM,MAAM,GAAG,OAAO;AAC9B,YAAY,UAAU,KAAK,EAAE;AAC7B,gBAAgB,OAAO,KAAK,CAAC,OAAO;AACpC,aAAa;AACb,QAAQ,MAAM,WAAW,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;AAC3C,QAAQ,MAAM,YAAY,GAAG,CAAC,KAAK,KAAK;AACxC,YAAY,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;AAC9C,gBAAgB,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE;AACpD,oBAAoB,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC;AACvD;AACA,qBAAqB,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,EAAE;AAC/D,oBAAoB,YAAY,CAAC,KAAK,CAAC,eAAe,CAAC;AACvD;AACA,qBAAqB,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,EAAE;AAC7D,oBAAoB,YAAY,CAAC,KAAK,CAAC,cAAc,CAAC;AACtD;AACA,qBAAqB,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAClD,oBAAoB,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3D;AACA,qBAAqB;AACrB,oBAAoB,IAAI,IAAI,GAAG,WAAW;AAC1C,oBAAoB,IAAI,CAAC,GAAG,CAAC;AAC7B,oBAAoB,OAAO,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE;AAClD,wBAAwB,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAChD,wBAAwB,MAAM,QAAQ,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;AACpE,wBAAwB,IAAI,CAAC,QAAQ,EAAE;AACvC,4BAA4B,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,4BAA4B,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;AAClE,4BAA4B,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE;AACA,wBAAwB,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;AACvC,wBAAwB,CAAC,EAAE;AAC3B;AACA;AACA;AACA,SAAS;AACT,QAAQ,YAAY,CAAC,IAAI,CAAC;AAC1B,QAAQ,OAAO,WAAW;AAC1B;AACA,IAAI,OAAO,MAAM,CAAC,KAAK,EAAE;AACzB,QAAQ,IAAI,EAAE,KAAK,YAAY,QAAQ,CAAC,EAAE;AAC1C,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC;AACvD;AACA;AACA,IAAI,QAAQ,GAAG;AACf,QAAQ,OAAO,IAAI,CAAC,OAAO;AAC3B;AACA,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;AACzE;AACA,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;AACvC;AACA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,EAAE;AAC/C,QAAQ,MAAM,WAAW,GAAG,EAAE;AAC9B,QAAQ,MAAM,UAAU,GAAG,EAAE;AAC7B,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE;AACvC,YAAY,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACrC,gBAAgB,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACzE,gBAAgB,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D;AACA,iBAAiB;AACjB,gBAAgB,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC5C;AACA;AACA,QAAQ,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE;AAC1C;AACA,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,IAAI,CAAC,OAAO,EAAE;AAC7B;AACA;AACA,QAAQ,CAAC,MAAM,GAAG,CAAC,MAAM,KAAK;AAC9B,IAAI,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC;AACtC,IAAI,OAAO,KAAK;AAChB,CAAC;;AAED,MAAM,QAAQ,GAAG,CAAC,KAAK,EAAE,IAAI,KAAK;AAClC,IAAI,IAAI,OAAO;AACf,IAAI,QAAQ,KAAK,CAAC,IAAI;AACtB,QAAQ,KAAK,YAAY,CAAC,YAAY;AACtC,YAAY,IAAI,KAAK,CAAC,QAAQ,KAAK,aAAa,CAAC,SAAS,EAAE;AAC5D,gBAAgB,OAAO,GAAG,UAAU;AACpC;AACA,iBAAiB;AACjB,gBAAgB,OAAO,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;AAClF;AACA,YAAY;AACZ,QAAQ,KAAK,YAAY,CAAC,eAAe;AACzC,YAAY,OAAO,GAAG,CAAC,gCAAgC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;AACrH,YAAY;AACZ,QAAQ,KAAK,YAAY,CAAC,iBAAiB;AAC3C,YAAY,OAAO,GAAG,CAAC,+BAA+B,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3F,YAAY;AACZ,QAAQ,KAAK,YAAY,CAAC,aAAa;AACvC,YAAY,OAAO,GAAG,CAAC,aAAa,CAAC;AACrC,YAAY;AACZ,QAAQ,KAAK,YAAY,CAAC,2BAA2B;AACrD,YAAY,OAAO,GAAG,CAAC,sCAAsC,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/F,YAAY;AACZ,QAAQ,KAAK,YAAY,CAAC,kBAAkB;AAC5C,YAAY,OAAO,GAAG,CAAC,6BAA6B,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpH,YAAY;AACZ,QAAQ,KAAK,YAAY,CAAC,iBAAiB;AAC3C,YAAY,OAAO,GAAG,CAAC,0BAA0B,CAAC;AAClD,YAAY;AACZ,QAAQ,KAAK,YAAY,CAAC,mBAAmB;AAC7C,YAAY,OAAO,GAAG,CAAC,4BAA4B,CAAC;AACpD,YAAY;AACZ,QAAQ,KAAK,YAAY,CAAC,YAAY;AACtC,YAAY,OAAO,GAAG,CAAC,YAAY,CAAC;AACpC,YAAY;AACZ,QAAQ,KAAK,YAAY,CAAC,cAAc;AACxC,YAAY,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,EAAE;AACtD,gBAAgB,IAAI,UAAU,IAAI,KAAK,CAAC,UAAU,EAAE;AACpD,oBAAoB,OAAO,GAAG,CAAC,6BAA6B,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC1F,oBAAoB,IAAI,OAAO,KAAK,CAAC,UAAU,CAAC,QAAQ,KAAK,QAAQ,EAAE;AACvE,wBAAwB,OAAO,GAAG,CAAC,EAAE,OAAO,CAAC,mDAAmD,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC7H;AACA;AACA,qBAAqB,IAAI,YAAY,IAAI,KAAK,CAAC,UAAU,EAAE;AAC3D,oBAAoB,OAAO,GAAG,CAAC,gCAAgC,EAAE,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;AAC/F;AACA,qBAAqB,IAAI,UAAU,IAAI,KAAK,CAAC,UAAU,EAAE;AACzD,oBAAoB,OAAO,GAAG,CAAC,8BAA8B,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3F;AACA,qBAAqB;AACrB,oBAAoB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC;AACtD;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,UAAU,KAAK,OAAO,EAAE;AACnD,gBAAgB,OAAO,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;AACvD;AACA,iBAAiB;AACjB,gBAAgB,OAAO,GAAG,SAAS;AACnC;AACA,YAAY;AACZ,QAAQ,KAAK,YAAY,CAAC,SAAS;AACnC,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;AACtC,gBAAgB,OAAO,GAAG,CAAC,mBAAmB,EAAE,KAAK,CAAC,KAAK,GAAG,SAAS,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;AAClJ,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;AAC5C,gBAAgB,OAAO,GAAG,CAAC,oBAAoB,EAAE,KAAK,CAAC,KAAK,GAAG,SAAS,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;AAChJ,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;AAC5C,gBAAgB,OAAO,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC;AAClD,sBAAsB,CAAC,iBAAiB;AACxC,sBAAsB,KAAK,CAAC;AAC5B,0BAA0B,CAAC,yBAAyB;AACpD,0BAA0B,CAAC,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;AAC3D,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;AAC1C,gBAAgB,OAAO,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC;AAChD,sBAAsB,CAAC,iBAAiB;AACxC,sBAAsB,KAAK,CAAC;AAC5B,0BAA0B,CAAC,yBAAyB;AACpD,0BAA0B,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC7E;AACA,gBAAgB,OAAO,GAAG,eAAe;AACzC,YAAY;AACZ,QAAQ,KAAK,YAAY,CAAC,OAAO;AACjC,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;AACtC,gBAAgB,OAAO,GAAG,CAAC,mBAAmB,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;AACjJ,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;AAC5C,gBAAgB,OAAO,GAAG,CAAC,oBAAoB,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;AAChJ,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;AAC5C,gBAAgB,OAAO,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC;AAClD,sBAAsB,CAAC,OAAO;AAC9B,sBAAsB,KAAK,CAAC;AAC5B,0BAA0B,CAAC,qBAAqB;AAChD,0BAA0B,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;AACxD,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;AAC5C,gBAAgB,OAAO,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC;AAClD,sBAAsB,CAAC,OAAO;AAC9B,sBAAsB,KAAK,CAAC;AAC5B,0BAA0B,CAAC,qBAAqB;AAChD,0BAA0B,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;AACxD,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;AAC1C,gBAAgB,OAAO,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC;AAChD,sBAAsB,CAAC,OAAO;AAC9B,sBAAsB,KAAK,CAAC;AAC5B,0BAA0B,CAAC,wBAAwB;AACnD,0BAA0B,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC7E;AACA,gBAAgB,OAAO,GAAG,eAAe;AACzC,YAAY;AACZ,QAAQ,KAAK,YAAY,CAAC,MAAM;AAChC,YAAY,OAAO,GAAG,CAAC,aAAa,CAAC;AACrC,YAAY;AACZ,QAAQ,KAAK,YAAY,CAAC,0BAA0B;AACpD,YAAY,OAAO,GAAG,CAAC,wCAAwC,CAAC;AAChE,YAAY;AACZ,QAAQ,KAAK,YAAY,CAAC,eAAe;AACzC,YAAY,OAAO,GAAG,CAAC,6BAA6B,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;AACxE,YAAY;AACZ,QAAQ,KAAK,YAAY,CAAC,UAAU;AACpC,YAAY,OAAO,GAAG,uBAAuB;AAC7C,YAAY;AACZ,QAAQ;AACR,YAAY,OAAO,GAAG,IAAI,CAAC,YAAY;AACvC,YAAY,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AACnC;AACA,IAAI,OAAO,EAAE,OAAO,EAAE;AACtB,CAAC;;AAED,IAAI,gBAAgB,GAAG,QAAQ;AAC/B,SAAS,WAAW,CAAC,GAAG,EAAE;AAC1B,IAAI,gBAAgB,GAAG,GAAG;AAC1B;AACA,SAAS,WAAW,GAAG;AACvB,IAAI,OAAO,gBAAgB;AAC3B;;AAEA,MAAM,SAAS,GAAG,CAAC,MAAM,KAAK;AAC9B,IAAI,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,MAAM;AACvD,IAAI,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,EAAE,IAAI,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AACzD,IAAI,MAAM,SAAS,GAAG;AACtB,QAAQ,GAAG,SAAS;AACpB,QAAQ,IAAI,EAAE,QAAQ;AACtB,KAAK;AACL,IAAI,IAAI,SAAS,CAAC,OAAO,KAAK,SAAS,EAAE;AACzC,QAAQ,OAAO;AACf,YAAY,GAAG,SAAS;AACxB,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,OAAO,EAAE,SAAS,CAAC,OAAO;AACtC,SAAS;AACT;AACA,IAAI,IAAI,YAAY,GAAG,EAAE;AACzB,IAAI,MAAM,IAAI,GAAG;AACjB,SAAS,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1B,SAAS,KAAK;AACd,SAAS,OAAO,EAAE;AAClB,IAAI,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AAC5B,QAAQ,YAAY,GAAG,GAAG,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO;AACnF;AACA,IAAI,OAAO;AACX,QAAQ,GAAG,SAAS;AACpB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,OAAO,EAAE,YAAY;AAC7B,KAAK;AACL,CAAC;AACD,MAAM,UAAU,GAAG,EAAE;AACrB,SAAS,iBAAiB,CAAC,GAAG,EAAE,SAAS,EAAE;AAC3C,IAAI,MAAM,WAAW,GAAG,WAAW,EAAE;AACrC,IAAI,MAAM,KAAK,GAAG,SAAS,CAAC;AAC5B,QAAQ,SAAS,EAAE,SAAS;AAC5B,QAAQ,IAAI,EAAE,GAAG,CAAC,IAAI;AACtB,QAAQ,IAAI,EAAE,GAAG,CAAC,IAAI;AACtB,QAAQ,SAAS,EAAE;AACnB,YAAY,GAAG,CAAC,MAAM,CAAC,kBAAkB;AACzC,YAAY,GAAG,CAAC,cAAc;AAC9B,YAAY,WAAW;AACvB,YAAY,WAAW,KAAK,QAAQ,GAAG,SAAS,GAAG,QAAQ;AAC3D,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5B,KAAK,CAAC;AACN,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACjC;AACA,MAAM,WAAW,CAAC;AAClB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,KAAK,GAAG,OAAO;AAC5B;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO;AAClC,YAAY,IAAI,CAAC,KAAK,GAAG,OAAO;AAChC;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;AACpC,YAAY,IAAI,CAAC,KAAK,GAAG,SAAS;AAClC;AACA,IAAI,OAAO,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE;AACvC,QAAQ,MAAM,UAAU,GAAG,EAAE;AAC7B,QAAQ,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE;AACjC,YAAY,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS;AACtC,gBAAgB,OAAO,OAAO;AAC9B,YAAY,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO;AACpC,gBAAgB,MAAM,CAAC,KAAK,EAAE;AAC9B,YAAY,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AACpC;AACA,QAAQ,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE;AAC1D;AACA,IAAI,aAAa,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE;AACjD,QAAQ,MAAM,SAAS,GAAG,EAAE;AAC5B,QAAQ,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAClC,YAAY,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG;AACtC,YAAY,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK;AAC1C,YAAY,SAAS,CAAC,IAAI,CAAC;AAC3B,gBAAgB,GAAG;AACnB,gBAAgB,KAAK;AACrB,aAAa,CAAC;AACd;AACA,QAAQ,OAAO,WAAW,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC;AAC7D;AACA,IAAI,OAAO,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE;AAC1C,QAAQ,MAAM,WAAW,GAAG,EAAE;AAC9B,QAAQ,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAClC,YAAY,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;AACvC,YAAY,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;AACxC,gBAAgB,OAAO,OAAO;AAC9B,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;AAC1C,gBAAgB,OAAO,OAAO;AAC9B,YAAY,IAAI,GAAG,CAAC,MAAM,KAAK,OAAO;AACtC,gBAAgB,MAAM,CAAC,KAAK,EAAE;AAC9B,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO;AACxC,gBAAgB,MAAM,CAAC,KAAK,EAAE;AAC9B,YAAY,IAAI,GAAG,CAAC,KAAK,KAAK,WAAW;AACzC,iBAAiB,OAAO,KAAK,CAAC,KAAK,KAAK,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE;AACxE,gBAAgB,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK;AACpD;AACA;AACA,QAAQ,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE;AAC3D;AACA;AACA,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;AAC9B,IAAI,MAAM,EAAE,SAAS;AACrB,CAAC,CAAC;AACF,MAAM,KAAK,GAAG,CAAC,KAAK,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACrD,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAClD,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,SAAS;AAC/C,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,OAAO;AAC3C,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,OAAO;AAC3C,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,OAAO,OAAO,KAAK,WAAW,IAAI,CAAC,YAAY,OAAO;;AAE7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE;AAE1D,IAAI,IAAI,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC,0EAA0E,CAAC,CAAC;AACvL,IAAI,OAA0E,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAClG,CAAC;AACD;AACA,SAAS,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE;AAGjE,IAAI,IAAI,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC,yEAAyE,CAAC,CAAC;AACtL,IAAI,OAAO,CAAgE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC;AAC9G,CAAC;AACD;AACA,OAAO,eAAe,KAAK,UAAU,GAAG,eAAe,GAAG,UAAU,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE;AAChG,IAAI,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AAC/B,IAAI,OAAO,CAAC,CAAC,IAAI,GAAG,iBAAiB,EAAE,CAAC,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC,CAAC;AACrF,CAAC;;AAED,IAAI,SAAS;AACb,CAAC,UAAU,SAAS,EAAE;AACtB,IAAI,SAAS,CAAC,QAAQ,GAAG,CAAC,OAAO,KAAK,OAAO,OAAO,KAAK,QAAQ,GAAG,EAAE,OAAO,EAAE,GAAG,OAAO,IAAI,EAAE;AAC/F,IAAI,SAAS,CAAC,QAAQ,GAAG,CAAC,OAAO,KAAK,OAAO,OAAO,KAAK,QAAQ,GAAG,OAAO,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO;AAC/I,CAAC,EAAE,SAAS,KAAK,SAAS,GAAG,EAAE,CAAC,CAAC;;AAEjC,IAAI,cAAc,EAAE,oBAAoB;AACxC,MAAM,kBAAkB,CAAC;AACzB,IAAI,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE;AAC1C,QAAQ,IAAI,CAAC,WAAW,GAAG,EAAE;AAC7B,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,QAAQ,IAAI,CAAC,IAAI,GAAG,KAAK;AACzB,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI;AACzB,QAAQ,IAAI,CAAC,IAAI,GAAG,GAAG;AACvB;AACA,IAAI,IAAI,IAAI,GAAG;AACf,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;AACtC,YAAY,IAAI,IAAI,CAAC,IAAI,YAAY,KAAK,EAAE;AAC5C,gBAAgB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;AAClE;AACA,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC;AAC/D;AACA;AACA,QAAQ,OAAO,IAAI,CAAC,WAAW;AAC/B;AACA;AACA,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK;AACtC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE;AACzB,QAAQ,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE;AACpD;AACA,SAAS;AACT,QAAQ,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AACvC,YAAY,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC;AACxE;AACA,QAAQ,OAAO;AACf,YAAY,OAAO,EAAE,KAAK;AAC1B,YAAY,IAAI,KAAK,GAAG;AACxB,gBAAgB,IAAI,IAAI,CAAC,MAAM;AAC/B,oBAAoB,OAAO,IAAI,CAAC,MAAM;AACtC,gBAAgB,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;AAC7D,gBAAgB,IAAI,CAAC,MAAM,GAAG,KAAK;AACnC,gBAAgB,OAAO,IAAI,CAAC,MAAM;AAClC,aAAa;AACb,SAAS;AACT;AACA,CAAC;AACD,SAAS,mBAAmB,CAAC,MAAM,EAAE;AACrC,IAAI,IAAI,CAAC,MAAM;AACf,QAAQ,OAAO,EAAE;AACjB,IAAI,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,MAAM;AAChF,IAAI,IAAI,QAAQ,KAAK,kBAAkB,IAAI,cAAc,CAAC,EAAE;AAC5D,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,wFAAwF,CAAC,CAAC;AACnH;AACA,IAAI,IAAI,QAAQ;AAChB,QAAQ,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE;AAClD,IAAI,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK;AACpC,QAAQ,IAAI,EAAE,EAAE,EAAE;AAClB,QAAQ,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM;AAClC,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,oBAAoB,EAAE;AAC/C,YAAY,OAAO,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,GAAG,OAAO,GAAG,GAAG,CAAC,YAAY,EAAE;AACnG;AACA,QAAQ,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE;AAC7C,YAAY,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,GAAG,OAAO,GAAG,cAAc,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,YAAY,EAAE;AAC1J;AACA,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc;AACvC,YAAY,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,YAAY,EAAE;AAChD,QAAQ,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,GAAG,OAAO,GAAG,kBAAkB,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,YAAY,EAAE;AAC1J,KAAK;AACL,IAAI,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE;AAC/C;AACA,MAAM,OAAO,CAAC;AACd,IAAI,WAAW,CAAC,GAAG,EAAE;AACrB;AACA,QAAQ,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc;AACtC,QAAQ,IAAI,CAAC,IAAI,GAAG,GAAG;AACvB,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1C,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;AAClD,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;AACpD,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5D,QAAQ,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AACtC,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5C,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;AACpD,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;AACtD,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AAChD,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AAChD,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAC9C,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1C,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAC9C,QAAQ,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;AACpC,QAAQ,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AACtC,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;AAClD,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1C,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAC9C,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1C,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AAChD,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AAChD,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;AACpD,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;AACpD;AACA,IAAI,IAAI,WAAW,GAAG;AACtB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW;AACpC;AACA,IAAI,QAAQ,CAAC,KAAK,EAAE;AACpB,QAAQ,OAAO,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC;AACxC;AACA,IAAI,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE;AAChC,QAAQ,QAAQ,GAAG,IAAI;AACvB,YAAY,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;AACvC,YAAY,IAAI,EAAE,KAAK,CAAC,IAAI;AAC5B,YAAY,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC;AACjD,YAAY,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;AAC9C,YAAY,IAAI,EAAE,KAAK,CAAC,IAAI;AAC5B,YAAY,MAAM,EAAE,KAAK,CAAC,MAAM;AAChC,SAAS;AACT;AACA,IAAI,mBAAmB,CAAC,KAAK,EAAE;AAC/B,QAAQ,OAAO;AACf,YAAY,MAAM,EAAE,IAAI,WAAW,EAAE;AACrC,YAAY,GAAG,EAAE;AACjB,gBAAgB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;AAC3C,gBAAgB,IAAI,EAAE,KAAK,CAAC,IAAI;AAChC,gBAAgB,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC;AACrD,gBAAgB,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;AAClD,gBAAgB,IAAI,EAAE,KAAK,CAAC,IAAI;AAChC,gBAAgB,MAAM,EAAE,KAAK,CAAC,MAAM;AACpC,aAAa;AACb,SAAS;AACT;AACA,IAAI,UAAU,CAAC,KAAK,EAAE;AACtB,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AACzC,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE;AAC7B,YAAY,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;AACrE;AACA,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,WAAW,CAAC,KAAK,EAAE;AACvB,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AACzC,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;AACtC;AACA,IAAI,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE;AACxB,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;AACnD,QAAQ,IAAI,MAAM,CAAC,OAAO;AAC1B,YAAY,OAAO,MAAM,CAAC,IAAI;AAC9B,QAAQ,MAAM,MAAM,CAAC,KAAK;AAC1B;AACA,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE;AAC5B,QAAQ,IAAI,EAAE;AACd,QAAQ,MAAM,GAAG,GAAG;AACpB,YAAY,MAAM,EAAE;AACpB,gBAAgB,MAAM,EAAE,EAAE;AAC1B,gBAAgB,KAAK,EAAE,CAAC,EAAE,GAAG,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,KAAK;AACjI,gBAAgB,kBAAkB,EAAE,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ;AACnG,aAAa;AACb,YAAY,IAAI,EAAE,CAAC,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,KAAK,EAAE;AACrF,YAAY,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;AAC9C,YAAY,MAAM,EAAE,IAAI;AACxB,YAAY,IAAI;AAChB,YAAY,UAAU,EAAE,aAAa,CAAC,IAAI,CAAC;AAC3C,SAAS;AACT,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC7E,QAAQ,OAAO,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC;AACxC;AACA,IAAI,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE;AACnC,QAAQ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC;AAC9D,QAAQ,IAAI,MAAM,CAAC,OAAO;AAC1B,YAAY,OAAO,MAAM,CAAC,IAAI;AAC9B,QAAQ,MAAM,MAAM,CAAC,KAAK;AAC1B;AACA,IAAI,MAAM,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE;AACvC,QAAQ,MAAM,GAAG,GAAG;AACpB,YAAY,MAAM,EAAE;AACpB,gBAAgB,MAAM,EAAE,EAAE;AAC1B,gBAAgB,kBAAkB,EAAE,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ;AACnG,gBAAgB,KAAK,EAAE,IAAI;AAC3B,aAAa;AACb,YAAY,IAAI,EAAE,CAAC,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,KAAK,EAAE;AACrF,YAAY,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;AAC9C,YAAY,MAAM,EAAE,IAAI;AACxB,YAAY,IAAI;AAChB,YAAY,UAAU,EAAE,aAAa,CAAC,IAAI,CAAC;AAC3C,SAAS;AACT,QAAQ,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACnF,QAAQ,MAAM,MAAM,GAAG,OAAO,OAAO,CAAC,gBAAgB;AACtD,cAAc;AACd,cAAc,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAChD,QAAQ,OAAO,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC;AACxC;AACA,IAAI,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE;AAC3B,QAAQ,MAAM,kBAAkB,GAAG,CAAC,GAAG,KAAK;AAC5C,YAAY,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;AAC/E,gBAAgB,OAAO,EAAE,OAAO,EAAE;AAClC;AACA,iBAAiB,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;AACpD,gBAAgB,OAAO,OAAO,CAAC,GAAG,CAAC;AACnC;AACA,iBAAiB;AACjB,gBAAgB,OAAO,OAAO;AAC9B;AACA,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK;AAC9C,YAAY,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC;AACrC,YAAY,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC;AAChD,gBAAgB,IAAI,EAAE,YAAY,CAAC,MAAM;AACzC,gBAAgB,GAAG,kBAAkB,CAAC,GAAG,CAAC;AAC1C,aAAa,CAAC;AACd,YAAY,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,MAAM,YAAY,OAAO,EAAE;AAC7E,gBAAgB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;AAC7C,oBAAoB,IAAI,CAAC,IAAI,EAAE;AAC/B,wBAAwB,QAAQ,EAAE;AAClC,wBAAwB,OAAO,KAAK;AACpC;AACA,yBAAyB;AACzB,wBAAwB,OAAO,IAAI;AACnC;AACA,iBAAiB,CAAC;AAClB;AACA,YAAY,IAAI,CAAC,MAAM,EAAE;AACzB,gBAAgB,QAAQ,EAAE;AAC1B,gBAAgB,OAAO,KAAK;AAC5B;AACA,iBAAiB;AACjB,gBAAgB,OAAO,IAAI;AAC3B;AACA,SAAS,CAAC;AACV;AACA,IAAI,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE;AACtC,QAAQ,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK;AAC9C,YAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AAC7B,gBAAgB,GAAG,CAAC,QAAQ,CAAC,OAAO,cAAc,KAAK;AACvD,sBAAsB,cAAc,CAAC,GAAG,EAAE,GAAG;AAC7C,sBAAsB,cAAc,CAAC;AACrC,gBAAgB,OAAO,KAAK;AAC5B;AACA,iBAAiB;AACjB,gBAAgB,OAAO,IAAI;AAC3B;AACA,SAAS,CAAC;AACV;AACA,IAAI,WAAW,CAAC,UAAU,EAAE;AAC5B,QAAQ,OAAO,IAAI,UAAU,CAAC;AAC9B,YAAY,MAAM,EAAE,IAAI;AACxB,YAAY,QAAQ,EAAE,qBAAqB,CAAC,UAAU;AACtD,YAAY,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE;AACtD,SAAS,CAAC;AACV;AACA,IAAI,WAAW,CAAC,UAAU,EAAE;AAC5B,QAAQ,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;AAC3C;AACA,IAAI,QAAQ,GAAG;AACf,QAAQ,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;AAClD;AACA,IAAI,QAAQ,GAAG;AACf,QAAQ,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;AAClD;AACA,IAAI,OAAO,GAAG;AACd,QAAQ,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;AACzC;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;AAC/C;AACA,IAAI,OAAO,GAAG;AACd,QAAQ,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;AACjD;AACA,IAAI,EAAE,CAAC,MAAM,EAAE;AACf,QAAQ,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC;AACzD;AACA,IAAI,GAAG,CAAC,QAAQ,EAAE;AAClB,QAAQ,OAAO,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC;AAChE;AACA,IAAI,SAAS,CAAC,SAAS,EAAE;AACzB,QAAQ,OAAO,IAAI,UAAU,CAAC;AAC9B,YAAY,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7C,YAAY,MAAM,EAAE,IAAI;AACxB,YAAY,QAAQ,EAAE,qBAAqB,CAAC,UAAU;AACtD,YAAY,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE;AACpD,SAAS,CAAC;AACV;AACA,IAAI,OAAO,CAAC,GAAG,EAAE;AACjB,QAAQ,MAAM,gBAAgB,GAAG,OAAO,GAAG,KAAK,UAAU,GAAG,GAAG,GAAG,MAAM,GAAG;AAC5E,QAAQ,OAAO,IAAI,UAAU,CAAC;AAC9B,YAAY,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7C,YAAY,SAAS,EAAE,IAAI;AAC3B,YAAY,YAAY,EAAE,gBAAgB;AAC1C,YAAY,QAAQ,EAAE,qBAAqB,CAAC,UAAU;AACtD,SAAS,CAAC;AACV;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,OAAO,IAAI,UAAU,CAAC;AAC9B,YAAY,QAAQ,EAAE,qBAAqB,CAAC,UAAU;AACtD,YAAY,IAAI,EAAE,IAAI;AACtB,YAAY,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7C,SAAS,CAAC;AACV;AACA,IAAI,KAAK,CAAC,GAAG,EAAE;AACf,QAAQ,MAAM,cAAc,GAAG,OAAO,GAAG,KAAK,UAAU,GAAG,GAAG,GAAG,MAAM,GAAG;AAC1E,QAAQ,OAAO,IAAI,QAAQ,CAAC;AAC5B,YAAY,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7C,YAAY,SAAS,EAAE,IAAI;AAC3B,YAAY,UAAU,EAAE,cAAc;AACtC,YAAY,QAAQ,EAAE,qBAAqB,CAAC,QAAQ;AACpD,SAAS,CAAC;AACV;AACA,IAAI,QAAQ,CAAC,WAAW,EAAE;AAC1B,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW;AACrC,QAAQ,OAAO,IAAI,IAAI,CAAC;AACxB,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,WAAW;AACvB,SAAS,CAAC;AACV;AACA,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,QAAQ,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;AAC/C;AACA,IAAI,QAAQ,GAAG;AACf,QAAQ,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;AACvC;AACA,IAAI,UAAU,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO;AAChD;AACA,IAAI,UAAU,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO;AAC3C;AACA;AACA,MAAM,SAAS,GAAG,gBAAgB;AAClC,MAAM,UAAU,GAAG,aAAa;AAChC,MAAM,SAAS,GAAG,0BAA0B;AAC5C;AACA;AACA,MAAM,SAAS,GAAG,wFAAwF;AAC1G,MAAM,WAAW,GAAG,mBAAmB;AACvC,MAAM,aAAa,GAAG,0SAA0S;AAChU;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,UAAU,GAAG,oFAAoF;AACvG;AACA;AACA;AACA,MAAM,WAAW,GAAG,CAAC,oDAAoD,CAAC;AAC1E,IAAI,UAAU;AACd;AACA,MAAM,SAAS,GAAG,qHAAqH;AACvI,MAAM,SAAS,GAAG,8XAA8X;AAChZ;AACA,MAAM,WAAW,GAAG,kEAAkE;AACtF;AACA;AACA;AACA;AACA;AACA,MAAM,eAAe,GAAG,CAAC,iMAAiM,CAAC;AAC3N,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;AACpD,SAAS,eAAe,CAAC,IAAI,EAAE;AAC/B;AACA,IAAI,IAAI,KAAK,GAAG,CAAC,kCAAkC,CAAC;AACpD,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE;AACxB,QAAQ,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AACnD;AACA,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;AACrC,QAAQ,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC;AACpC;AACA,IAAI,OAAO,KAAK;AAChB;AACA,SAAS,SAAS,CAAC,IAAI,EAAE;AACzB,IAAI,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD;AACA;AACA,SAAS,aAAa,CAAC,IAAI,EAAE;AAC7B,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7D,IAAI,MAAM,IAAI,GAAG,EAAE;AACnB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACtC,IAAI,IAAI,IAAI,CAAC,MAAM;AACnB,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC;AACzC,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACzC,IAAI,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC;AACA,SAAS,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE;AAChC,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;AAC9D,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;AAC9D,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,OAAO,KAAK;AAChB;AACA,MAAM,SAAS,SAAS,OAAO,CAAC;AAChC,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC9B,YAAY,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AAC3C;AACA,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC/C,QAAQ,IAAI,UAAU,KAAK,aAAa,CAAC,MAAM,EAAE;AACjD,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AACnD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,gBAAgB,QAAQ,EAAE,aAAa,CAAC,MAAM;AAC9C,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE;AACxC,QAAQ,IAAI,GAAG,GAAG,SAAS;AAC3B,QAAQ,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC9C,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;AACtC,gBAAgB,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE;AACrD,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,SAAS;AACpD,wBAAwB,OAAO,EAAE,KAAK,CAAC,KAAK;AAC5C,wBAAwB,IAAI,EAAE,QAAQ;AACtC,wBAAwB,SAAS,EAAE,IAAI;AACvC,wBAAwB,KAAK,EAAE,KAAK;AACpC,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;AAC3C,gBAAgB,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE;AACrD,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,OAAO;AAClD,wBAAwB,OAAO,EAAE,KAAK,CAAC,KAAK;AAC5C,wBAAwB,IAAI,EAAE,QAAQ;AACtC,wBAAwB,SAAS,EAAE,IAAI;AACvC,wBAAwB,KAAK,EAAE,KAAK;AACpC,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC9C,gBAAgB,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK;AAC9D,gBAAgB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK;AAChE,gBAAgB,IAAI,MAAM,IAAI,QAAQ,EAAE;AACxC,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,IAAI,MAAM,EAAE;AAChC,wBAAwB,iBAAiB,CAAC,GAAG,EAAE;AAC/C,4BAA4B,IAAI,EAAE,YAAY,CAAC,OAAO;AACtD,4BAA4B,OAAO,EAAE,KAAK,CAAC,KAAK;AAChD,4BAA4B,IAAI,EAAE,QAAQ;AAC1C,4BAA4B,SAAS,EAAE,IAAI;AAC3C,4BAA4B,KAAK,EAAE,IAAI;AACvC,4BAA4B,OAAO,EAAE,KAAK,CAAC,OAAO;AAClD,yBAAyB,CAAC;AAC1B;AACA,yBAAyB,IAAI,QAAQ,EAAE;AACvC,wBAAwB,iBAAiB,CAAC,GAAG,EAAE;AAC/C,4BAA4B,IAAI,EAAE,YAAY,CAAC,SAAS;AACxD,4BAA4B,OAAO,EAAE,KAAK,CAAC,KAAK;AAChD,4BAA4B,IAAI,EAAE,QAAQ;AAC1C,4BAA4B,SAAS,EAAE,IAAI;AAC3C,4BAA4B,KAAK,EAAE,IAAI;AACvC,4BAA4B,OAAO,EAAE,KAAK,CAAC,OAAO;AAClD,yBAAyB,CAAC;AAC1B;AACA,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;AAC7C,gBAAgB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AAClD,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,UAAU,EAAE,OAAO;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;AAC7C,gBAAgB,IAAI,CAAC,UAAU,EAAE;AACjC,oBAAoB,UAAU,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC;AAC7D;AACA,gBAAgB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AAClD,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,UAAU,EAAE,OAAO;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;AAC5C,gBAAgB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACjD,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,UAAU,EAAE,MAAM;AAC1C,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC9C,gBAAgB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACnD,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,UAAU,EAAE,QAAQ;AAC5C,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;AAC5C,gBAAgB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACjD,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,UAAU,EAAE,MAAM;AAC1C,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;AAC7C,gBAAgB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AAClD,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,UAAU,EAAE,OAAO;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;AAC5C,gBAAgB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACjD,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,UAAU,EAAE,MAAM;AAC1C,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;AAC3C,gBAAgB,IAAI;AACpB,oBAAoB,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;AACvC;AACA,gBAAgB,OAAO,EAAE,EAAE;AAC3B,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,UAAU,EAAE,KAAK;AACzC,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;AAC7C,gBAAgB,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC;AACzC,gBAAgB,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAC/D,gBAAgB,IAAI,CAAC,UAAU,EAAE;AACjC,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,UAAU,EAAE,OAAO;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;AAC5C,gBAAgB,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;AAC9C;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE;AAChD,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AACvE,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,UAAU,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE;AACvF,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE;AACnD,gBAAgB,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE;AACrD;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE;AACnD,gBAAgB,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE;AACrD;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;AAClD,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AACzD,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,UAAU,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,KAAK,EAAE;AAC/D,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE;AAChD,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AACvD,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,UAAU,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE;AAC7D,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE;AAChD,gBAAgB,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;AAClD,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AAC7C,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,UAAU,EAAE,UAAU;AAC9C,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;AAC5C,gBAAgB,MAAM,KAAK,GAAG,SAAS;AACvC,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AAC7C,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,UAAU,EAAE,MAAM;AAC1C,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;AAC5C,gBAAgB,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;AAC9C,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AAC7C,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,UAAU,EAAE,MAAM;AAC1C,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE;AAChD,gBAAgB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACrD,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,UAAU,EAAE,UAAU;AAC9C,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE;AAC1C,gBAAgB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC3D,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,UAAU,EAAE,IAAI;AACxC,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC9C,gBAAgB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACnD,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,UAAU,EAAE,QAAQ;AAC5C,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AACvC;AACA;AACA,QAAQ,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;AAC1D;AACA,IAAI,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE;AACvC,QAAQ,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC3D,YAAY,UAAU;AACtB,YAAY,IAAI,EAAE,YAAY,CAAC,cAAc;AAC7C,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC1C,SAAS,CAAC;AACV;AACA,IAAI,SAAS,CAAC,KAAK,EAAE;AACrB,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,KAAK,CAAC,OAAO,EAAE;AACnB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;AAChF;AACA,IAAI,GAAG,CAAC,OAAO,EAAE;AACjB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;AAC9E;AACA,IAAI,KAAK,CAAC,OAAO,EAAE;AACnB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;AAChF;AACA,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;AAC/E;AACA,IAAI,MAAM,CAAC,OAAO,EAAE;AACpB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;AACjF;AACA,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;AAC/E;AACA,IAAI,KAAK,CAAC,OAAO,EAAE;AACnB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;AAChF;AACA,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;AAC/E;AACA,IAAI,MAAM,CAAC,OAAO,EAAE;AACpB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;AACjF;AACA,IAAI,EAAE,CAAC,OAAO,EAAE;AAChB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;AAC7E;AACA,IAAI,QAAQ,CAAC,OAAO,EAAE;AACtB,QAAQ,IAAI,EAAE,EAAE,EAAE;AAClB,QAAQ,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACzC,YAAY,OAAO,IAAI,CAAC,SAAS,CAAC;AAClC,gBAAgB,IAAI,EAAE,UAAU;AAChC,gBAAgB,SAAS,EAAE,IAAI;AAC/B,gBAAgB,MAAM,EAAE,KAAK;AAC7B,gBAAgB,KAAK,EAAE,KAAK;AAC5B,gBAAgB,OAAO,EAAE,OAAO;AAChC,aAAa,CAAC;AACd;AACA,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,SAAS,EAAE,QAAQ,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,WAAW,GAAG,IAAI,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,SAAS;AAChM,YAAY,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,KAAK;AAClI,YAAY,KAAK,EAAE,CAAC,EAAE,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,KAAK;AAChI,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;AACpG,SAAS,CAAC;AACV;AACA,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACxD;AACA,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACzC,YAAY,OAAO,IAAI,CAAC,SAAS,CAAC;AAClC,gBAAgB,IAAI,EAAE,MAAM;AAC5B,gBAAgB,SAAS,EAAE,IAAI;AAC/B,gBAAgB,OAAO,EAAE,OAAO;AAChC,aAAa,CAAC;AACd;AACA,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,MAAM;AACxB,YAAY,SAAS,EAAE,QAAQ,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,WAAW,GAAG,IAAI,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,SAAS;AAChM,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;AACpG,SAAS,CAAC;AACV;AACA,IAAI,QAAQ,CAAC,OAAO,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;AACnF;AACA,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,OAAO;AACzB,YAAY,KAAK,EAAE,KAAK;AACxB,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC1C,SAAS,CAAC;AACV;AACA,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE;AAC7B,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,KAAK,EAAE,KAAK;AACxB,YAAY,QAAQ,EAAE,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,QAAQ;AACxF,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;AACpG,SAAS,CAAC;AACV;AACA,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE;AAC/B,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,YAAY;AAC9B,YAAY,KAAK,EAAE,KAAK;AACxB,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC1C,SAAS,CAAC;AACV;AACA,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE;AAC7B,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,KAAK,EAAE,KAAK;AACxB,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC1C,SAAS,CAAC;AACV;AACA,IAAI,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE;AAC5B,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,KAAK,EAAE,SAAS;AAC5B,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC1C,SAAS,CAAC;AACV;AACA,IAAI,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE;AAC5B,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,KAAK,EAAE,SAAS;AAC5B,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC1C,SAAS,CAAC;AACV;AACA,IAAI,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE;AACzB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,KAAK,EAAE,GAAG;AACtB,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC1C,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,OAAO,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACvD;AACA,IAAI,IAAI,GAAG;AACX,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC3D,SAAS,CAAC;AACV;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;AAClE,SAAS,CAAC;AACV;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;AAClE,SAAS,CAAC;AACV;AACA,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,UAAU,CAAC;AACtE;AACA,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC;AAClE;AACA,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC;AAClE;AACA,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,UAAU,CAAC;AACtE;AACA,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC;AACnE;AACA,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC;AACjE;AACA,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC;AACnE;AACA,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC;AAClE;AACA,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC;AACpE;AACA,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC;AAClE;AACA,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC;AACnE;AACA,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC;AAClE;AACA,IAAI,IAAI,IAAI,GAAG;AACf,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC;AAChE;AACA,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC;AACpE;AACA,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,IAAI,GAAG,GAAG,IAAI;AACtB,QAAQ,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC3C,YAAY,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE;AACnC,gBAAgB,IAAI,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC,KAAK,GAAG,GAAG;AAClD,oBAAoB,GAAG,GAAG,EAAE,CAAC,KAAK;AAClC;AACA;AACA,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,IAAI,GAAG,GAAG,IAAI;AACtB,QAAQ,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC3C,YAAY,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE;AACnC,gBAAgB,IAAI,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC,KAAK,GAAG,GAAG;AAClD,oBAAoB,GAAG,GAAG,EAAE,CAAC,KAAK;AAClC;AACA;AACA,QAAQ,OAAO,GAAG;AAClB;AACA;AACA,SAAS,CAAC,MAAM,GAAG,CAAC,MAAM,KAAK;AAC/B,IAAI,IAAI,EAAE;AACV,IAAI,OAAO,IAAI,SAAS,CAAC;AACzB,QAAQ,MAAM,EAAE,EAAE;AAClB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,SAAS;AACjD,QAAQ,MAAM,EAAE,CAAC,EAAE,GAAG,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,KAAK;AAC3H,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD;AACA,SAAS,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE;AACvC,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,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACnE,IAAI,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACrE,IAAI,OAAO,CAAC,MAAM,GAAG,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC;AACtD;AACA,MAAM,SAAS,SAAS,OAAO,CAAC;AAChC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;AAC3B,QAAQ,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU;AACnC;AACA,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC9B,YAAY,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AAC3C;AACA,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC/C,QAAQ,IAAI,UAAU,KAAK,aAAa,CAAC,MAAM,EAAE;AACjD,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AACnD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,gBAAgB,QAAQ,EAAE,aAAa,CAAC,MAAM;AAC9C,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,IAAI,GAAG,GAAG,SAAS;AAC3B,QAAQ,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE;AACxC,QAAQ,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC9C,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;AACtC,gBAAgB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACjD,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,YAAY;AACvD,wBAAwB,QAAQ,EAAE,SAAS;AAC3C,wBAAwB,QAAQ,EAAE,OAAO;AACzC,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;AAC3C,gBAAgB,MAAM,QAAQ,GAAG,KAAK,CAAC;AACvC,sBAAsB,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;AACzC,sBAAsB,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK;AAC/C,gBAAgB,IAAI,QAAQ,EAAE;AAC9B,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,SAAS;AACpD,wBAAwB,OAAO,EAAE,KAAK,CAAC,KAAK;AAC5C,wBAAwB,IAAI,EAAE,QAAQ;AACtC,wBAAwB,SAAS,EAAE,KAAK,CAAC,SAAS;AAClD,wBAAwB,KAAK,EAAE,KAAK;AACpC,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;AAC3C,gBAAgB,MAAM,MAAM,GAAG,KAAK,CAAC;AACrC,sBAAsB,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;AACzC,sBAAsB,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK;AAC/C,gBAAgB,IAAI,MAAM,EAAE;AAC5B,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,OAAO;AAClD,wBAAwB,OAAO,EAAE,KAAK,CAAC,KAAK;AAC5C,wBAAwB,IAAI,EAAE,QAAQ;AACtC,wBAAwB,SAAS,EAAE,KAAK,CAAC,SAAS;AAClD,wBAAwB,KAAK,EAAE,KAAK;AACpC,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;AAClD,gBAAgB,IAAI,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AACvE,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,eAAe;AAC1D,wBAAwB,UAAU,EAAE,KAAK,CAAC,KAAK;AAC/C,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC9C,gBAAgB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AAClD,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,UAAU;AACrD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AACvC;AACA;AACA,QAAQ,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;AAC1D;AACA,IAAI,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE;AACxB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC7E;AACA,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE;AACvB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC9E;AACA,IAAI,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE;AACxB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC7E;AACA,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE;AACvB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC9E;AACA,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE;AAC9C,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,MAAM,EAAE;AACpB,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM;AACnC,gBAAgB;AAChB,oBAAoB,IAAI;AACxB,oBAAoB,KAAK;AACzB,oBAAoB,SAAS;AAC7B,oBAAoB,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AACxD,iBAAiB;AACjB,aAAa;AACb,SAAS,CAAC;AACV;AACA,IAAI,SAAS,CAAC,KAAK,EAAE;AACrB,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,GAAG,CAAC,OAAO,EAAE;AACjB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,QAAQ,CAAC,OAAO,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,KAAK,EAAE,CAAC;AACpB,YAAY,SAAS,EAAE,KAAK;AAC5B,YAAY,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,QAAQ,CAAC,OAAO,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,KAAK,EAAE,CAAC;AACpB,YAAY,SAAS,EAAE,KAAK;AAC5B,YAAY,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,KAAK,EAAE,CAAC;AACpB,YAAY,SAAS,EAAE,IAAI;AAC3B,YAAY,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,KAAK,EAAE,CAAC;AACpB,YAAY,SAAS,EAAE,IAAI;AAC3B,YAAY,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE;AAC/B,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,YAAY;AAC9B,YAAY,KAAK,EAAE,KAAK;AACxB,YAAY,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,MAAM,CAAC,OAAO,EAAE;AACpB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,SAAS,EAAE,IAAI;AAC3B,YAAY,KAAK,EAAE,MAAM,CAAC,gBAAgB;AAC1C,YAAY,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChD,SAAS,CAAC,CAAC,SAAS,CAAC;AACrB,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,SAAS,EAAE,IAAI;AAC3B,YAAY,KAAK,EAAE,MAAM,CAAC,gBAAgB;AAC1C,YAAY,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,IAAI,GAAG,GAAG,IAAI;AACtB,QAAQ,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC3C,YAAY,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE;AACnC,gBAAgB,IAAI,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC,KAAK,GAAG,GAAG;AAClD,oBAAoB,GAAG,GAAG,EAAE,CAAC,KAAK;AAClC;AACA;AACA,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,IAAI,GAAG,GAAG,IAAI;AACtB,QAAQ,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC3C,YAAY,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE;AACnC,gBAAgB,IAAI,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC,KAAK,GAAG,GAAG;AAClD,oBAAoB,GAAG,GAAG,EAAE,CAAC,KAAK;AAClC;AACA;AACA,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,KAAK;AAChE,aAAa,EAAE,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACnE;AACA,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,IAAI,GAAG,GAAG,IAAI,EAAE,GAAG,GAAG,IAAI;AAClC,QAAQ,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC3C,YAAY,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ;AACpC,gBAAgB,EAAE,CAAC,IAAI,KAAK,KAAK;AACjC,gBAAgB,EAAE,CAAC,IAAI,KAAK,YAAY,EAAE;AAC1C,gBAAgB,OAAO,IAAI;AAC3B;AACA,iBAAiB,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE;AACxC,gBAAgB,IAAI,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC,KAAK,GAAG,GAAG;AAClD,oBAAoB,GAAG,GAAG,EAAE,CAAC,KAAK;AAClC;AACA,iBAAiB,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE;AACxC,gBAAgB,IAAI,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC,KAAK,GAAG,GAAG;AAClD,oBAAoB,GAAG,GAAG,EAAE,CAAC,KAAK;AAClC;AACA;AACA,QAAQ,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC3D;AACA;AACA,SAAS,CAAC,MAAM,GAAG,CAAC,MAAM,KAAK;AAC/B,IAAI,OAAO,IAAI,SAAS,CAAC;AACzB,QAAQ,MAAM,EAAE,EAAE;AAClB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,SAAS;AACjD,QAAQ,MAAM,EAAE,CAAC,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,KAAK,KAAK;AACxF,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD,MAAM,SAAS,SAAS,OAAO,CAAC;AAChC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;AAC3B,QAAQ,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;AAC3B;AACA,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC9B,YAAY,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AAC3C;AACA,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC/C,QAAQ,IAAI,UAAU,KAAK,aAAa,CAAC,MAAM,EAAE;AACjD,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AACnD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,gBAAgB,QAAQ,EAAE,aAAa,CAAC,MAAM;AAC9C,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,IAAI,GAAG,GAAG,SAAS;AAC3B,QAAQ,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE;AACxC,QAAQ,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC9C,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;AACtC,gBAAgB,MAAM,QAAQ,GAAG,KAAK,CAAC;AACvC,sBAAsB,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;AACzC,sBAAsB,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK;AAC/C,gBAAgB,IAAI,QAAQ,EAAE;AAC9B,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,SAAS;AACpD,wBAAwB,IAAI,EAAE,QAAQ;AACtC,wBAAwB,OAAO,EAAE,KAAK,CAAC,KAAK;AAC5C,wBAAwB,SAAS,EAAE,KAAK,CAAC,SAAS;AAClD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;AAC3C,gBAAgB,MAAM,MAAM,GAAG,KAAK,CAAC;AACrC,sBAAsB,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;AACzC,sBAAsB,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK;AAC/C,gBAAgB,IAAI,MAAM,EAAE;AAC5B,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,OAAO;AAClD,wBAAwB,IAAI,EAAE,QAAQ;AACtC,wBAAwB,OAAO,EAAE,KAAK,CAAC,KAAK;AAC5C,wBAAwB,SAAS,EAAE,KAAK,CAAC,SAAS;AAClD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;AAClD,gBAAgB,IAAI,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE;AAC5D,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,eAAe;AAC1D,wBAAwB,UAAU,EAAE,KAAK,CAAC,KAAK;AAC/C,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AACvC;AACA;AACA,QAAQ,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;AAC1D;AACA,IAAI,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE;AACxB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC7E;AACA,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE;AACvB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC9E;AACA,IAAI,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE;AACxB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC7E;AACA,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE;AACvB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC9E;AACA,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE;AAC9C,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,MAAM,EAAE;AACpB,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM;AACnC,gBAAgB;AAChB,oBAAoB,IAAI;AACxB,oBAAoB,KAAK;AACzB,oBAAoB,SAAS;AAC7B,oBAAoB,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AACxD,iBAAiB;AACjB,aAAa;AACb,SAAS,CAAC;AACV;AACA,IAAI,SAAS,CAAC,KAAK,EAAE;AACrB,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,QAAQ,CAAC,OAAO,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAC5B,YAAY,SAAS,EAAE,KAAK;AAC5B,YAAY,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,QAAQ,CAAC,OAAO,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAC5B,YAAY,SAAS,EAAE,KAAK;AAC5B,YAAY,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAC5B,YAAY,SAAS,EAAE,IAAI;AAC3B,YAAY,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAC5B,YAAY,SAAS,EAAE,IAAI;AAC3B,YAAY,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE;AAC/B,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,YAAY;AAC9B,YAAY,KAAK;AACjB,YAAY,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,IAAI,GAAG,GAAG,IAAI;AACtB,QAAQ,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC3C,YAAY,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE;AACnC,gBAAgB,IAAI,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC,KAAK,GAAG,GAAG;AAClD,oBAAoB,GAAG,GAAG,EAAE,CAAC,KAAK;AAClC;AACA;AACA,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,IAAI,GAAG,GAAG,IAAI;AACtB,QAAQ,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC3C,YAAY,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE;AACnC,gBAAgB,IAAI,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC,KAAK,GAAG,GAAG;AAClD,oBAAoB,GAAG,GAAG,EAAE,CAAC,KAAK;AAClC;AACA;AACA,QAAQ,OAAO,GAAG;AAClB;AACA;AACA,SAAS,CAAC,MAAM,GAAG,CAAC,MAAM,KAAK;AAC/B,IAAI,IAAI,EAAE;AACV,IAAI,OAAO,IAAI,SAAS,CAAC;AACzB,QAAQ,MAAM,EAAE,EAAE;AAClB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,SAAS;AACjD,QAAQ,MAAM,EAAE,CAAC,EAAE,GAAG,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,KAAK;AAC3H,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD,MAAM,UAAU,SAAS,OAAO,CAAC;AACjC,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC9B,YAAY,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;AAC5C;AACA,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC/C,QAAQ,IAAI,UAAU,KAAK,aAAa,CAAC,OAAO,EAAE;AAClD,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AACnD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,gBAAgB,QAAQ,EAAE,aAAa,CAAC,OAAO;AAC/C,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B;AACA;AACA,UAAU,CAAC,MAAM,GAAG,CAAC,MAAM,KAAK;AAChC,IAAI,OAAO,IAAI,UAAU,CAAC;AAC1B,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,UAAU;AAClD,QAAQ,MAAM,EAAE,CAAC,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,KAAK,KAAK;AACxF,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD,MAAM,OAAO,SAAS,OAAO,CAAC;AAC9B,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC9B,YAAY,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7C;AACA,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC/C,QAAQ,IAAI,UAAU,KAAK,aAAa,CAAC,IAAI,EAAE;AAC/C,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AACnD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,gBAAgB,QAAQ,EAAE,aAAa,CAAC,IAAI;AAC5C,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE;AACzC,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AACnD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE;AACxC,QAAQ,IAAI,GAAG,GAAG,SAAS;AAC3B,QAAQ,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC9C,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;AACtC,gBAAgB,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE;AACxD,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,SAAS;AACpD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,wBAAwB,SAAS,EAAE,IAAI;AACvC,wBAAwB,KAAK,EAAE,KAAK;AACpC,wBAAwB,OAAO,EAAE,KAAK,CAAC,KAAK;AAC5C,wBAAwB,IAAI,EAAE,MAAM;AACpC,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;AAC3C,gBAAgB,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE;AACxD,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,OAAO;AAClD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,wBAAwB,SAAS,EAAE,IAAI;AACvC,wBAAwB,KAAK,EAAE,KAAK;AACpC,wBAAwB,OAAO,EAAE,KAAK,CAAC,KAAK;AAC5C,wBAAwB,IAAI,EAAE,MAAM;AACpC,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AACvC;AACA;AACA,QAAQ,OAAO;AACf,YAAY,MAAM,EAAE,MAAM,CAAC,KAAK;AAChC,YAAY,KAAK,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;AACjD,SAAS;AACT;AACA,IAAI,SAAS,CAAC,KAAK,EAAE;AACrB,QAAQ,OAAO,IAAI,OAAO,CAAC;AAC3B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE;AACpC,YAAY,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE;AACpC,YAAY,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,IAAI,GAAG,GAAG,IAAI;AACtB,QAAQ,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC3C,YAAY,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE;AACnC,gBAAgB,IAAI,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC,KAAK,GAAG,GAAG;AAClD,oBAAoB,GAAG,GAAG,EAAE,CAAC,KAAK;AAClC;AACA;AACA,QAAQ,OAAO,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI;AACjD;AACA,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,IAAI,GAAG,GAAG,IAAI;AACtB,QAAQ,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC3C,YAAY,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE;AACnC,gBAAgB,IAAI,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC,KAAK,GAAG,GAAG;AAClD,oBAAoB,GAAG,GAAG,EAAE,CAAC,KAAK;AAClC;AACA;AACA,QAAQ,OAAO,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI;AACjD;AACA;AACA,OAAO,CAAC,MAAM,GAAG,CAAC,MAAM,KAAK;AAC7B,IAAI,OAAO,IAAI,OAAO,CAAC;AACvB,QAAQ,MAAM,EAAE,EAAE;AAClB,QAAQ,MAAM,EAAE,CAAC,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,KAAK,KAAK;AACxF,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,OAAO;AAC/C,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD,MAAM,SAAS,SAAS,OAAO,CAAC;AAChC,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC/C,QAAQ,IAAI,UAAU,KAAK,aAAa,CAAC,MAAM,EAAE;AACjD,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AACnD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,gBAAgB,QAAQ,EAAE,aAAa,CAAC,MAAM;AAC9C,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B;AACA;AACA,SAAS,CAAC,MAAM,GAAG,CAAC,MAAM,KAAK;AAC/B,IAAI,OAAO,IAAI,SAAS,CAAC;AACzB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,SAAS;AACjD,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD,MAAM,YAAY,SAAS,OAAO,CAAC;AACnC,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC/C,QAAQ,IAAI,UAAU,KAAK,aAAa,CAAC,SAAS,EAAE;AACpD,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AACnD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,gBAAgB,QAAQ,EAAE,aAAa,CAAC,SAAS;AACjD,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B;AACA;AACA,YAAY,CAAC,MAAM,GAAG,CAAC,MAAM,KAAK;AAClC,IAAI,OAAO,IAAI,YAAY,CAAC;AAC5B,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,YAAY;AACpD,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD,MAAM,OAAO,SAAS,OAAO,CAAC;AAC9B,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC/C,QAAQ,IAAI,UAAU,KAAK,aAAa,CAAC,IAAI,EAAE;AAC/C,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AACnD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,gBAAgB,QAAQ,EAAE,aAAa,CAAC,IAAI;AAC5C,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B;AACA;AACA,OAAO,CAAC,MAAM,GAAG,CAAC,MAAM,KAAK;AAC7B,IAAI,OAAO,IAAI,OAAO,CAAC;AACvB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,OAAO;AAC/C,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD,MAAM,MAAM,SAAS,OAAO,CAAC;AAC7B,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B;AACA,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB;AACA,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B;AACA;AACA,MAAM,CAAC,MAAM,GAAG,CAAC,MAAM,KAAK;AAC5B,IAAI,OAAO,IAAI,MAAM,CAAC;AACtB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,MAAM;AAC9C,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD,MAAM,UAAU,SAAS,OAAO,CAAC;AACjC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B;AACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI;AAC5B;AACA,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B;AACA;AACA,UAAU,CAAC,MAAM,GAAG,CAAC,MAAM,KAAK;AAChC,IAAI,OAAO,IAAI,UAAU,CAAC;AAC1B,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,UAAU;AAClD,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD,MAAM,QAAQ,SAAS,OAAO,CAAC;AAC/B,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AAC/C,QAAQ,iBAAiB,CAAC,GAAG,EAAE;AAC/B,YAAY,IAAI,EAAE,YAAY,CAAC,YAAY;AAC3C,YAAY,QAAQ,EAAE,aAAa,CAAC,KAAK;AACzC,YAAY,QAAQ,EAAE,GAAG,CAAC,UAAU;AACpC,SAAS,CAAC;AACV,QAAQ,OAAO,OAAO;AACtB;AACA;AACA,QAAQ,CAAC,MAAM,GAAG,CAAC,MAAM,KAAK;AAC9B,IAAI,OAAO,IAAI,QAAQ,CAAC;AACxB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,QAAQ;AAChD,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD,MAAM,OAAO,SAAS,OAAO,CAAC;AAC9B,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC/C,QAAQ,IAAI,UAAU,KAAK,aAAa,CAAC,SAAS,EAAE;AACpD,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AACnD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,gBAAgB,QAAQ,EAAE,aAAa,CAAC,IAAI;AAC5C,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B;AACA;AACA,OAAO,CAAC,MAAM,GAAG,CAAC,MAAM,KAAK;AAC7B,IAAI,OAAO,IAAI,OAAO,CAAC;AACvB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,OAAO;AAC/C,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD,MAAM,QAAQ,SAAS,OAAO,CAAC;AAC/B,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AAC/D,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI;AAC7B,QAAQ,IAAI,GAAG,CAAC,UAAU,KAAK,aAAa,CAAC,KAAK,EAAE;AACpD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,gBAAgB,QAAQ,EAAE,aAAa,CAAC,KAAK;AAC7C,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,IAAI,GAAG,CAAC,WAAW,KAAK,IAAI,EAAE;AACtC,YAAY,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,WAAW,CAAC,KAAK;AAClE,YAAY,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,WAAW,CAAC,KAAK;AACpE,YAAY,IAAI,MAAM,IAAI,QAAQ,EAAE;AACpC,gBAAgB,iBAAiB,CAAC,GAAG,EAAE;AACvC,oBAAoB,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC,OAAO,GAAG,YAAY,CAAC,SAAS;AAChF,oBAAoB,OAAO,GAAG,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAC,KAAK,GAAG,SAAS,CAAC;AAC3E,oBAAoB,OAAO,GAAG,MAAM,GAAG,GAAG,CAAC,WAAW,CAAC,KAAK,GAAG,SAAS,CAAC;AACzE,oBAAoB,IAAI,EAAE,OAAO;AACjC,oBAAoB,SAAS,EAAE,IAAI;AACnC,oBAAoB,KAAK,EAAE,IAAI;AAC/B,oBAAoB,OAAO,EAAE,GAAG,CAAC,WAAW,CAAC,OAAO;AACpD,iBAAiB,CAAC;AAClB,gBAAgB,MAAM,CAAC,KAAK,EAAE;AAC9B;AACA;AACA,QAAQ,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI,EAAE;AACpC,YAAY,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE;AACvD,gBAAgB,iBAAiB,CAAC,GAAG,EAAE;AACvC,oBAAoB,IAAI,EAAE,YAAY,CAAC,SAAS;AAChD,oBAAoB,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,KAAK;AAChD,oBAAoB,IAAI,EAAE,OAAO;AACjC,oBAAoB,SAAS,EAAE,IAAI;AACnC,oBAAoB,KAAK,EAAE,KAAK;AAChC,oBAAoB,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,OAAO;AAClD,iBAAiB,CAAC;AAClB,gBAAgB,MAAM,CAAC,KAAK,EAAE;AAC9B;AACA;AACA,QAAQ,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI,EAAE;AACpC,YAAY,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE;AACvD,gBAAgB,iBAAiB,CAAC,GAAG,EAAE;AACvC,oBAAoB,IAAI,EAAE,YAAY,CAAC,OAAO;AAC9C,oBAAoB,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,KAAK;AAChD,oBAAoB,IAAI,EAAE,OAAO;AACjC,oBAAoB,SAAS,EAAE,IAAI;AACnC,oBAAoB,KAAK,EAAE,KAAK;AAChC,oBAAoB,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,OAAO;AAClD,iBAAiB,CAAC;AAClB,gBAAgB,MAAM,CAAC,KAAK,EAAE;AAC9B;AACA;AACA,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE;AAC9B,YAAY,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK;AAC9D,gBAAgB,OAAO,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC3F,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK;AACjC,gBAAgB,OAAO,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC;AAC7D,aAAa,CAAC;AACd;AACA,QAAQ,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK;AACtD,YAAY,OAAO,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACtF,SAAS,CAAC;AACV,QAAQ,OAAO,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC;AACrD;AACA,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI;AAC7B;AACA,IAAI,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE;AAC5B,QAAQ,OAAO,IAAI,QAAQ,CAAC;AAC5B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AACjF,SAAS,CAAC;AACV;AACA,IAAI,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE;AAC5B,QAAQ,OAAO,IAAI,QAAQ,CAAC;AAC5B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AACjF,SAAS,CAAC;AACV;AACA,IAAI,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE;AACzB,QAAQ,OAAO,IAAI,QAAQ,CAAC;AAC5B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC7E,SAAS,CAAC;AACV;AACA,IAAI,QAAQ,CAAC,OAAO,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC;AACnC;AACA;AACA,QAAQ,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK;AACtC,IAAI,OAAO,IAAI,QAAQ,CAAC;AACxB,QAAQ,IAAI,EAAE,MAAM;AACpB,QAAQ,SAAS,EAAE,IAAI;AACvB,QAAQ,SAAS,EAAE,IAAI;AACvB,QAAQ,WAAW,EAAE,IAAI;AACzB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,QAAQ;AAChD,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD,SAAS,cAAc,CAAC,MAAM,EAAE;AAChC,IAAI,IAAI,MAAM,YAAY,SAAS,EAAE;AACrC,QAAQ,MAAM,QAAQ,GAAG,EAAE;AAC3B,QAAQ,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE;AACxC,YAAY,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AACjD,YAAY,QAAQ,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;AAC3E;AACA,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,GAAG,MAAM,CAAC,IAAI;AAC1B,YAAY,KAAK,EAAE,MAAM,QAAQ;AACjC,SAAS,CAAC;AACV;AACA,SAAS,IAAI,MAAM,YAAY,QAAQ,EAAE;AACzC,QAAQ,OAAO,IAAI,QAAQ,CAAC;AAC5B,YAAY,GAAG,MAAM,CAAC,IAAI;AAC1B,YAAY,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC;AAChD,SAAS,CAAC;AACV;AACA,SAAS,IAAI,MAAM,YAAY,WAAW,EAAE;AAC5C,QAAQ,OAAO,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AAClE;AACA,SAAS,IAAI,MAAM,YAAY,WAAW,EAAE;AAC5C,QAAQ,OAAO,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AAClE;AACA,SAAS,IAAI,MAAM,YAAY,QAAQ,EAAE;AACzC,QAAQ,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;AAChF;AACA,SAAS;AACT,QAAQ,OAAO,MAAM;AACrB;AACA;AACA,MAAM,SAAS,SAAS,OAAO,CAAC;AAChC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI;AAC3B;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW;AACzC;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,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM;AAClC;AACA,IAAI,UAAU,GAAG;AACjB,QAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI;AACjC,YAAY,OAAO,IAAI,CAAC,OAAO;AAC/B,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACvC,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AAC3C,QAAQ,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE;AAC9C;AACA,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC/C,QAAQ,IAAI,UAAU,KAAK,aAAa,CAAC,MAAM,EAAE;AACjD,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AACnD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,gBAAgB,QAAQ,EAAE,aAAa,CAAC,MAAM;AAC9C,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AAC/D,QAAQ,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE;AAC5D,QAAQ,MAAM,SAAS,GAAG,EAAE;AAC5B,QAAQ,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,YAAY,QAAQ;AACpD,YAAY,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,OAAO,CAAC,EAAE;AAChD,YAAY,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE;AACxC,gBAAgB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC9C,oBAAoB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;AACvC;AACA;AACA;AACA,QAAQ,MAAM,KAAK,GAAG,EAAE;AACxB,QAAQ,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE;AACrC,YAAY,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC;AAC3C,YAAY,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;AACvC,YAAY,KAAK,CAAC,IAAI,CAAC;AACvB,gBAAgB,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE;AACpD,gBAAgB,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC7F,gBAAgB,SAAS,EAAE,GAAG,IAAI,GAAG,CAAC,IAAI;AAC1C,aAAa,CAAC;AACd;AACA,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,YAAY,QAAQ,EAAE;AACpD,YAAY,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW;AACrD,YAAY,IAAI,WAAW,KAAK,aAAa,EAAE;AAC/C,gBAAgB,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE;AAC7C,oBAAoB,KAAK,CAAC,IAAI,CAAC;AAC/B,wBAAwB,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE;AAC5D,wBAAwB,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AACxE,qBAAqB,CAAC;AACtB;AACA;AACA,iBAAiB,IAAI,WAAW,KAAK,QAAQ,EAAE;AAC/C,gBAAgB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AAC1C,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,iBAAiB;AAC5D,wBAAwB,IAAI,EAAE,SAAS;AACvC,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,WAAW,KAAK,OAAO,EAAE;AAC9C,iBAAiB;AACjB,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,oDAAoD,CAAC,CAAC;AACvF;AACA;AACA,aAAa;AACb;AACA,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ;AAC/C,YAAY,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE;AACzC,gBAAgB,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;AAC3C,gBAAgB,KAAK,CAAC,IAAI,CAAC;AAC3B,oBAAoB,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE;AACxD,oBAAoB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC;AAC5F,qBAAqB;AACrB,oBAAoB,SAAS,EAAE,GAAG,IAAI,GAAG,CAAC,IAAI;AAC9C,iBAAiB,CAAC;AAClB;AACA;AACA,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE;AAC9B,YAAY,OAAO,OAAO,CAAC,OAAO;AAClC,iBAAiB,IAAI,CAAC,YAAY;AAClC,gBAAgB,MAAM,SAAS,GAAG,EAAE;AACpC,gBAAgB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAC1C,oBAAoB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG;AAC9C,oBAAoB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK;AAClD,oBAAoB,SAAS,CAAC,IAAI,CAAC;AACnC,wBAAwB,GAAG;AAC3B,wBAAwB,KAAK;AAC7B,wBAAwB,SAAS,EAAE,IAAI,CAAC,SAAS;AACjD,qBAAqB,CAAC;AACtB;AACA,gBAAgB,OAAO,SAAS;AAChC,aAAa;AACb,iBAAiB,IAAI,CAAC,CAAC,SAAS,KAAK;AACrC,gBAAgB,OAAO,WAAW,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC;AACrE,aAAa,CAAC;AACd;AACA,aAAa;AACb,YAAY,OAAO,WAAW,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC;AAC7D;AACA;AACA,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChC;AACA,IAAI,MAAM,CAAC,OAAO,EAAE;AACpB,QAAQ,SAAS,CAAC,QAAQ;AAC1B,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,WAAW,EAAE,QAAQ;AACjC,YAAY,IAAI,OAAO,KAAK;AAC5B,kBAAkB;AAClB,oBAAoB,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK;AAC9C,wBAAwB,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC1C,wBAAwB,MAAM,YAAY,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,YAAY;AAC3M,wBAAwB,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB;AAC9D,4BAA4B,OAAO;AACnC,gCAAgC,OAAO,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,YAAY;AACjI,6BAA6B;AAC7B,wBAAwB,OAAO;AAC/B,4BAA4B,OAAO,EAAE,YAAY;AACjD,yBAAyB;AACzB,qBAAqB;AACrB;AACA,kBAAkB,EAAE,CAAC;AACrB,SAAS,CAAC;AACV;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,WAAW,EAAE,OAAO;AAChC,SAAS,CAAC;AACV;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,WAAW,EAAE,aAAa;AACtC,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,YAAY,EAAE;AACzB,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,KAAK,EAAE,OAAO;AAC1B,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACpC,gBAAgB,GAAG,YAAY;AAC/B,aAAa,CAAC;AACd,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,OAAO,EAAE;AACnB,QAAQ,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;AACrC,YAAY,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW;AACjD,YAAY,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ;AAC3C,YAAY,KAAK,EAAE,OAAO;AAC1B,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACpC,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE;AACvC,aAAa,CAAC;AACd,YAAY,QAAQ,EAAE,qBAAqB,CAAC,SAAS;AACrD,SAAS,CAAC;AACV,QAAQ,OAAO,MAAM;AACrB;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,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE;AACxB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,MAAM,EAAE,CAAC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,KAAK,EAAE;AACpB,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,QAAQ,EAAE,KAAK;AAC3B,SAAS,CAAC;AACV;AACA,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,QAAQ,MAAM,KAAK,GAAG,EAAE;AACxB,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AAC/C,YAAY,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AAC9C,gBAAgB,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAC5C;AACA,SAAS,CAAC;AACV,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,KAAK,EAAE,MAAM,KAAK;AAC9B,SAAS,CAAC;AACV;AACA,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,QAAQ,MAAM,KAAK,GAAG,EAAE;AACxB,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AACrD,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AAC5B,gBAAgB,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAC5C;AACA,SAAS,CAAC;AACV,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,KAAK,EAAE,MAAM,KAAK;AAC9B,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,OAAO,cAAc,CAAC,IAAI,CAAC;AACnC;AACA,IAAI,OAAO,CAAC,IAAI,EAAE;AAClB,QAAQ,MAAM,QAAQ,GAAG,EAAE;AAC3B,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AACrD,YAAY,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAC/C,YAAY,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AACpC,gBAAgB,QAAQ,CAAC,GAAG,CAAC,GAAG,WAAW;AAC3C;AACA,iBAAiB;AACjB,gBAAgB,QAAQ,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,QAAQ,EAAE;AACtD;AACA,SAAS,CAAC;AACV,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,KAAK,EAAE,MAAM,QAAQ;AACjC,SAAS,CAAC;AACV;AACA,IAAI,QAAQ,CAAC,IAAI,EAAE;AACnB,QAAQ,MAAM,QAAQ,GAAG,EAAE;AAC3B,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AACrD,YAAY,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AACpC,gBAAgB,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAC/C;AACA,iBAAiB;AACjB,gBAAgB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AACnD,gBAAgB,IAAI,QAAQ,GAAG,WAAW;AAC1C,gBAAgB,OAAO,QAAQ,YAAY,WAAW,EAAE;AACxD,oBAAoB,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS;AACtD;AACA,gBAAgB,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ;AACxC;AACA,SAAS,CAAC;AACV,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,KAAK,EAAE,MAAM,QAAQ;AACjC,SAAS,CAAC;AACV;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,OAAO,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzD;AACA;AACA,SAAS,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK;AACtC,IAAI,OAAO,IAAI,SAAS,CAAC;AACzB,QAAQ,KAAK,EAAE,MAAM,KAAK;AAC1B,QAAQ,WAAW,EAAE,OAAO;AAC5B,QAAQ,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE;AACnC,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,SAAS;AACjD,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD,SAAS,CAAC,YAAY,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK;AAC5C,IAAI,OAAO,IAAI,SAAS,CAAC;AACzB,QAAQ,KAAK,EAAE,MAAM,KAAK;AAC1B,QAAQ,WAAW,EAAE,QAAQ;AAC7B,QAAQ,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE;AACnC,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,SAAS;AACjD,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD,SAAS,CAAC,UAAU,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK;AAC1C,IAAI,OAAO,IAAI,SAAS,CAAC;AACzB,QAAQ,KAAK;AACb,QAAQ,WAAW,EAAE,OAAO;AAC5B,QAAQ,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE;AACnC,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,SAAS;AACjD,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD,MAAM,QAAQ,SAAS,OAAO,CAAC;AAC/B,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AACvD,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO;AACzC,QAAQ,SAAS,aAAa,CAAC,OAAO,EAAE;AACxC;AACA,YAAY,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AAC1C,gBAAgB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE;AACtD,oBAAoB,OAAO,MAAM,CAAC,MAAM;AACxC;AACA;AACA,YAAY,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AAC1C,gBAAgB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE;AACtD;AACA,oBAAoB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;AACvE,oBAAoB,OAAO,MAAM,CAAC,MAAM;AACxC;AACA;AACA;AACA,YAAY,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/F,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,aAAa;AAChD,gBAAgB,WAAW;AAC3B,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE;AAC9B,YAAY,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,MAAM,KAAK;AAC7D,gBAAgB,MAAM,QAAQ,GAAG;AACjC,oBAAoB,GAAG,GAAG;AAC1B,oBAAoB,MAAM,EAAE;AAC5B,wBAAwB,GAAG,GAAG,CAAC,MAAM;AACrC,wBAAwB,MAAM,EAAE,EAAE;AAClC,qBAAqB;AACrB,oBAAoB,MAAM,EAAE,IAAI;AAChC,iBAAiB;AACjB,gBAAgB,OAAO;AACvB,oBAAoB,MAAM,EAAE,MAAM,MAAM,CAAC,WAAW,CAAC;AACrD,wBAAwB,IAAI,EAAE,GAAG,CAAC,IAAI;AACtC,wBAAwB,IAAI,EAAE,GAAG,CAAC,IAAI;AACtC,wBAAwB,MAAM,EAAE,QAAQ;AACxC,qBAAqB,CAAC;AACtB,oBAAoB,GAAG,EAAE,QAAQ;AACjC,iBAAiB;AACjB,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;AACnC;AACA,aAAa;AACb,YAAY,IAAI,KAAK,GAAG,SAAS;AACjC,YAAY,MAAM,MAAM,GAAG,EAAE;AAC7B,YAAY,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AAC1C,gBAAgB,MAAM,QAAQ,GAAG;AACjC,oBAAoB,GAAG,GAAG;AAC1B,oBAAoB,MAAM,EAAE;AAC5B,wBAAwB,GAAG,GAAG,CAAC,MAAM;AACrC,wBAAwB,MAAM,EAAE,EAAE;AAClC,qBAAqB;AACrB,oBAAoB,MAAM,EAAE,IAAI;AAChC,iBAAiB;AACjB,gBAAgB,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;AACjD,oBAAoB,IAAI,EAAE,GAAG,CAAC,IAAI;AAClC,oBAAoB,IAAI,EAAE,GAAG,CAAC,IAAI;AAClC,oBAAoB,MAAM,EAAE,QAAQ;AACpC,iBAAiB,CAAC;AAClB,gBAAgB,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE;AAC/C,oBAAoB,OAAO,MAAM;AACjC;AACA,qBAAqB,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,KAAK,EAAE;AAC9D,oBAAoB,KAAK,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE;AACrD;AACA,gBAAgB,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AACnD,oBAAoB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;AACvD;AACA;AACA,YAAY,IAAI,KAAK,EAAE;AACvB,gBAAgB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;AAClE,gBAAgB,OAAO,KAAK,CAAC,MAAM;AACnC;AACA,YAAY,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC5E,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,aAAa;AAChD,gBAAgB,WAAW;AAC3B,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA;AACA,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO;AAChC;AACA;AACA,QAAQ,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK;AACrC,IAAI,OAAO,IAAI,QAAQ,CAAC;AACxB,QAAQ,OAAO,EAAE,KAAK;AACtB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,QAAQ;AAChD,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gBAAgB,GAAG,CAAC,IAAI,KAAK;AACnC,IAAI,IAAI,IAAI,YAAY,OAAO,EAAE;AACjC,QAAQ,OAAO,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC;AAC5C;AACA,SAAS,IAAI,IAAI,YAAY,UAAU,EAAE;AACzC,QAAQ,OAAO,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;AACjD;AACA,SAAS,IAAI,IAAI,YAAY,UAAU,EAAE;AACzC,QAAQ,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3B;AACA,SAAS,IAAI,IAAI,YAAY,OAAO,EAAE;AACtC,QAAQ,OAAO,IAAI,CAAC,OAAO;AAC3B;AACA,SAAS,IAAI,IAAI,YAAY,aAAa,EAAE;AAC5C;AACA,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3C;AACA,SAAS,IAAI,IAAI,YAAY,UAAU,EAAE;AACzC,QAAQ,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AACpD;AACA,SAAS,IAAI,IAAI,YAAY,YAAY,EAAE;AAC3C,QAAQ,OAAO,CAAC,SAAS,CAAC;AAC1B;AACA,SAAS,IAAI,IAAI,YAAY,OAAO,EAAE;AACtC,QAAQ,OAAO,CAAC,IAAI,CAAC;AACrB;AACA,SAAS,IAAI,IAAI,YAAY,WAAW,EAAE;AAC1C,QAAQ,OAAO,CAAC,SAAS,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AAC9D;AACA,SAAS,IAAI,IAAI,YAAY,WAAW,EAAE;AAC1C,QAAQ,OAAO,CAAC,IAAI,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AACzD;AACA,SAAS,IAAI,IAAI,YAAY,UAAU,EAAE;AACzC,QAAQ,OAAO,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;AAC9C;AACA,SAAS,IAAI,IAAI,YAAY,WAAW,EAAE;AAC1C,QAAQ,OAAO,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;AAC9C;AACA,SAAS,IAAI,IAAI,YAAY,QAAQ,EAAE;AACvC,QAAQ,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AACpD;AACA,SAAS;AACT,QAAQ,OAAO,EAAE;AACjB;AACA,CAAC;AACD,MAAM,qBAAqB,SAAS,OAAO,CAAC;AAC5C,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AACvD,QAAQ,IAAI,GAAG,CAAC,UAAU,KAAK,aAAa,CAAC,MAAM,EAAE;AACrD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,gBAAgB,QAAQ,EAAE,aAAa,CAAC,MAAM;AAC9C,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa;AAChD,QAAQ,MAAM,kBAAkB,GAAG,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC;AAC1D,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,kBAAkB,CAAC;AAC9D,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,2BAA2B;AAC9D,gBAAgB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;AAC3D,gBAAgB,IAAI,EAAE,CAAC,aAAa,CAAC;AACrC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE;AAC9B,YAAY,OAAO,MAAM,CAAC,WAAW,CAAC;AACtC,gBAAgB,IAAI,EAAE,GAAG,CAAC,IAAI;AAC9B,gBAAgB,IAAI,EAAE,GAAG,CAAC,IAAI;AAC9B,gBAAgB,MAAM,EAAE,GAAG;AAC3B,aAAa,CAAC;AACd;AACA,aAAa;AACb,YAAY,OAAO,MAAM,CAAC,UAAU,CAAC;AACrC,gBAAgB,IAAI,EAAE,GAAG,CAAC,IAAI;AAC9B,gBAAgB,IAAI,EAAE,GAAG,CAAC,IAAI;AAC9B,gBAAgB,MAAM,EAAE,GAAG;AAC3B,aAAa,CAAC;AACd;AACA;AACA,IAAI,IAAI,aAAa,GAAG;AACxB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa;AACtC;AACA,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO;AAChC;AACA,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE;AAClD;AACA,QAAQ,MAAM,UAAU,GAAG,IAAI,GAAG,EAAE;AACpC;AACA,QAAQ,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE;AACpC,YAAY,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AACnF,YAAY,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE;AAC7C,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,gCAAgC,EAAE,aAAa,CAAC,iDAAiD,CAAC,CAAC;AACpI;AACA,YAAY,KAAK,MAAM,KAAK,IAAI,mBAAmB,EAAE;AACrD,gBAAgB,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AAC3C,oBAAoB,MAAM,IAAI,KAAK,CAAC,CAAC,uBAAuB,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,qBAAqB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3H;AACA,gBAAgB,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC;AAC3C;AACA;AACA,QAAQ,OAAO,IAAI,qBAAqB,CAAC;AACzC,YAAY,QAAQ,EAAE,qBAAqB,CAAC,qBAAqB;AACjE,YAAY,aAAa;AACzB,YAAY,OAAO;AACnB,YAAY,UAAU;AACtB,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC;AAC1C,SAAS,CAAC;AACV;AACA;AACA,SAAS,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE;AAC3B,IAAI,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC;AAClC,IAAI,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC;AAClC,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;AACjB,QAAQ,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE;AACvC;AACA,SAAS,IAAI,KAAK,KAAK,aAAa,CAAC,MAAM,IAAI,KAAK,KAAK,aAAa,CAAC,MAAM,EAAE;AAC/E,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AACxC,QAAQ,MAAM,UAAU,GAAG;AAC3B,aAAa,UAAU,CAAC,CAAC;AACzB,aAAa,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACvD,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,EAAE,KAAK,EAAE,KAAK,EAAE;AACvC;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,SAAS,IAAI,KAAK,KAAK,aAAa,CAAC,KAAK,IAAI,KAAK,KAAK,aAAa,CAAC,KAAK,EAAE;AAC7E,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE;AACnC,YAAY,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE;AACnC;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,EAAE,KAAK,EAAE,KAAK,EAAE;AACvC;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,SAAS,IAAI,KAAK,KAAK,aAAa,CAAC,IAAI;AACzC,QAAQ,KAAK,KAAK,aAAa,CAAC,IAAI;AACpC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AACnB,QAAQ,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE;AACvC;AACA,SAAS;AACT,QAAQ,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE;AAC/B;AACA;AACA,MAAM,eAAe,SAAS,OAAO,CAAC;AACtC,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AAC/D,QAAQ,MAAM,YAAY,GAAG,CAAC,UAAU,EAAE,WAAW,KAAK;AAC1D,YAAY,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,WAAW,CAAC,EAAE;AACjE,gBAAgB,OAAO,OAAO;AAC9B;AACA,YAAY,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC;AAC3E,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AAC/B,gBAAgB,iBAAiB,CAAC,GAAG,EAAE;AACvC,oBAAoB,IAAI,EAAE,YAAY,CAAC,0BAA0B;AACjE,iBAAiB,CAAC;AAClB,gBAAgB,OAAO,OAAO;AAC9B;AACA,YAAY,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE;AAC7D,gBAAgB,MAAM,CAAC,KAAK,EAAE;AAC9B;AACA,YAAY,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE;AAC/D,SAAS;AACT,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE;AAC9B,YAAY,OAAO,OAAO,CAAC,GAAG,CAAC;AAC/B,gBAAgB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;AAC3C,oBAAoB,IAAI,EAAE,GAAG,CAAC,IAAI;AAClC,oBAAoB,IAAI,EAAE,GAAG,CAAC,IAAI;AAClC,oBAAoB,MAAM,EAAE,GAAG;AAC/B,iBAAiB,CAAC;AAClB,gBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;AAC5C,oBAAoB,IAAI,EAAE,GAAG,CAAC,IAAI;AAClC,oBAAoB,IAAI,EAAE,GAAG,CAAC,IAAI;AAClC,oBAAoB,MAAM,EAAE,GAAG;AAC/B,iBAAiB,CAAC;AAClB,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACjE;AACA,aAAa;AACb,YAAY,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAC1D,gBAAgB,IAAI,EAAE,GAAG,CAAC,IAAI;AAC9B,gBAAgB,IAAI,EAAE,GAAG,CAAC,IAAI;AAC9B,gBAAgB,MAAM,EAAE,GAAG;AAC3B,aAAa,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AAC3C,gBAAgB,IAAI,EAAE,GAAG,CAAC,IAAI;AAC9B,gBAAgB,IAAI,EAAE,GAAG,CAAC,IAAI;AAC9B,gBAAgB,MAAM,EAAE,GAAG;AAC3B,aAAa,CAAC,CAAC;AACf;AACA;AACA;AACA,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK;AAClD,IAAI,OAAO,IAAI,eAAe,CAAC;AAC/B,QAAQ,IAAI,EAAE,IAAI;AAClB,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,eAAe;AACvD,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD,MAAM,QAAQ,SAAS,OAAO,CAAC;AAC/B,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AAC/D,QAAQ,IAAI,GAAG,CAAC,UAAU,KAAK,aAAa,CAAC,KAAK,EAAE;AACpD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,gBAAgB,QAAQ,EAAE,aAAa,CAAC,KAAK;AAC7C,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACtD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,SAAS;AAC5C,gBAAgB,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;AAC/C,gBAAgB,SAAS,EAAE,IAAI;AAC/B,gBAAgB,KAAK,EAAE,KAAK;AAC5B,gBAAgB,IAAI,EAAE,OAAO;AAC7B,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI;AACnC,QAAQ,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AAC/D,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,OAAO;AAC1C,gBAAgB,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;AAC/C,gBAAgB,SAAS,EAAE,IAAI;AAC/B,gBAAgB,KAAK,EAAE,KAAK;AAC5B,gBAAgB,IAAI,EAAE,OAAO;AAC7B,aAAa,CAAC;AACd,YAAY,MAAM,CAAC,KAAK,EAAE;AAC1B;AACA,QAAQ,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI;AAClC,aAAa,GAAG,CAAC,CAAC,IAAI,EAAE,SAAS,KAAK;AACtC,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI;AACvE,YAAY,IAAI,CAAC,MAAM;AACvB,gBAAgB,OAAO,IAAI;AAC3B,YAAY,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACxF,SAAS;AACT,aAAa,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE;AAC9B,YAAY,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK;AACxD,gBAAgB,OAAO,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC;AAC9D,aAAa,CAAC;AACd;AACA,aAAa;AACb,YAAY,OAAO,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC;AACxD;AACA;AACA,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK;AAC9B;AACA,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,QAAQ,OAAO,IAAI,QAAQ,CAAC;AAC5B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,IAAI;AAChB,SAAS,CAAC;AACV;AACA;AACA,QAAQ,CAAC,MAAM,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK;AACvC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AACjC,QAAQ,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC;AAChF;AACA,IAAI,OAAO,IAAI,QAAQ,CAAC;AACxB,QAAQ,KAAK,EAAE,OAAO;AACtB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,QAAQ;AAChD,QAAQ,IAAI,EAAE,IAAI;AAClB,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD,MAAM,SAAS,SAAS,OAAO,CAAC;AAChC,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO;AAChC;AACA,IAAI,IAAI,WAAW,GAAG;AACtB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS;AAClC;AACA,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AAC/D,QAAQ,IAAI,GAAG,CAAC,UAAU,KAAK,aAAa,CAAC,MAAM,EAAE;AACrD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,gBAAgB,QAAQ,EAAE,aAAa,CAAC,MAAM;AAC9C,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,MAAM,KAAK,GAAG,EAAE;AACxB,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO;AACzC,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS;AAC7C,QAAQ,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE;AACpC,YAAY,KAAK,CAAC,IAAI,CAAC;AACvB,gBAAgB,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACpF,gBAAgB,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAClG,gBAAgB,SAAS,EAAE,GAAG,IAAI,GAAG,CAAC,IAAI;AAC1C,aAAa,CAAC;AACd;AACA,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE;AAC9B,YAAY,OAAO,WAAW,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC;AAC9D;AACA,aAAa;AACb,YAAY,OAAO,WAAW,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC;AAC7D;AACA;AACA,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS;AAClC;AACA,IAAI,OAAO,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;AACxC,QAAQ,IAAI,MAAM,YAAY,OAAO,EAAE;AACvC,YAAY,OAAO,IAAI,SAAS,CAAC;AACjC,gBAAgB,OAAO,EAAE,KAAK;AAC9B,gBAAgB,SAAS,EAAE,MAAM;AACjC,gBAAgB,QAAQ,EAAE,qBAAqB,CAAC,SAAS;AACzD,gBAAgB,GAAG,mBAAmB,CAAC,KAAK,CAAC;AAC7C,aAAa,CAAC;AACd;AACA,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE;AACvC,YAAY,SAAS,EAAE,KAAK;AAC5B,YAAY,QAAQ,EAAE,qBAAqB,CAAC,SAAS;AACrD,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC;AAC1C,SAAS,CAAC;AACV;AACA;AACA,MAAM,MAAM,SAAS,OAAO,CAAC;AAC7B,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO;AAChC;AACA,IAAI,IAAI,WAAW,GAAG;AACtB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS;AAClC;AACA,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AAC/D,QAAQ,IAAI,GAAG,CAAC,UAAU,KAAK,aAAa,CAAC,GAAG,EAAE;AAClD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,gBAAgB,QAAQ,EAAE,aAAa,CAAC,GAAG;AAC3C,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO;AACzC,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS;AAC7C,QAAQ,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,KAAK,KAAK;AAC3E,YAAY,OAAO;AACnB,gBAAgB,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/F,gBAAgB,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AACvG,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE;AAC9B,YAAY,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAE;AACtC,YAAY,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,YAAY;AACtD,gBAAgB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAC1C,oBAAoB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG;AAC9C,oBAAoB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK;AAClD,oBAAoB,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE;AAChF,wBAAwB,OAAO,OAAO;AACtC;AACA,oBAAoB,IAAI,GAAG,CAAC,MAAM,KAAK,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,EAAE;AAC5E,wBAAwB,MAAM,CAAC,KAAK,EAAE;AACtC;AACA,oBAAoB,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;AACxD;AACA,gBAAgB,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE;AAChE,aAAa,CAAC;AACd;AACA,aAAa;AACb,YAAY,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAE;AACtC,YAAY,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACtC,gBAAgB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG;AACpC,gBAAgB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;AACxC,gBAAgB,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE;AAC5E,oBAAoB,OAAO,OAAO;AAClC;AACA,gBAAgB,IAAI,GAAG,CAAC,MAAM,KAAK,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,EAAE;AACxE,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA,gBAAgB,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;AACpD;AACA,YAAY,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE;AAC5D;AACA;AACA;AACA,MAAM,CAAC,MAAM,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK;AAChD,IAAI,OAAO,IAAI,MAAM,CAAC;AACtB,QAAQ,SAAS;AACjB,QAAQ,OAAO;AACf,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,MAAM;AAC9C,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD,MAAM,MAAM,SAAS,OAAO,CAAC;AAC7B,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AAC/D,QAAQ,IAAI,GAAG,CAAC,UAAU,KAAK,aAAa,CAAC,GAAG,EAAE;AAClD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,gBAAgB,QAAQ,EAAE,aAAa,CAAC,GAAG;AAC3C,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI;AAC7B,QAAQ,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,EAAE;AAClC,YAAY,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE;AACnD,gBAAgB,iBAAiB,CAAC,GAAG,EAAE;AACvC,oBAAoB,IAAI,EAAE,YAAY,CAAC,SAAS;AAChD,oBAAoB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK;AAC9C,oBAAoB,IAAI,EAAE,KAAK;AAC/B,oBAAoB,SAAS,EAAE,IAAI;AACnC,oBAAoB,KAAK,EAAE,KAAK;AAChC,oBAAoB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO;AAChD,iBAAiB,CAAC;AAClB,gBAAgB,MAAM,CAAC,KAAK,EAAE;AAC9B;AACA;AACA,QAAQ,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,EAAE;AAClC,YAAY,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE;AACnD,gBAAgB,iBAAiB,CAAC,GAAG,EAAE;AACvC,oBAAoB,IAAI,EAAE,YAAY,CAAC,OAAO;AAC9C,oBAAoB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK;AAC9C,oBAAoB,IAAI,EAAE,KAAK;AAC/B,oBAAoB,SAAS,EAAE,IAAI;AACnC,oBAAoB,KAAK,EAAE,KAAK;AAChC,oBAAoB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO;AAChD,iBAAiB,CAAC;AAClB,gBAAgB,MAAM,CAAC,KAAK,EAAE;AAC9B;AACA;AACA,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS;AAC7C,QAAQ,SAAS,WAAW,CAAC,QAAQ,EAAE;AACvC,YAAY,MAAM,SAAS,GAAG,IAAI,GAAG,EAAE;AACvC,YAAY,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;AAC5C,gBAAgB,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;AAChD,oBAAoB,OAAO,OAAO;AAClC,gBAAgB,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO;AAC9C,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC,gBAAgB,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;AAC5C;AACA,YAAY,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE;AAC7D;AACA,QAAQ,MAAM,QAAQ,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,SAAS,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAClI,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE;AAC9B,YAAY,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClF;AACA,aAAa;AACb,YAAY,OAAO,WAAW,CAAC,QAAQ,CAAC;AACxC;AACA;AACA,IAAI,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,MAAM,CAAC;AAC1B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC7E,SAAS,CAAC;AACV;AACA,IAAI,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,MAAM,CAAC;AAC1B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC7E,SAAS,CAAC;AACV;AACA,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE;AACxB,QAAQ,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC;AACzD;AACA,IAAI,QAAQ,CAAC,OAAO,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC;AACnC;AACA;AACA,MAAM,CAAC,MAAM,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK;AACvC,IAAI,OAAO,IAAI,MAAM,CAAC;AACtB,QAAQ,SAAS;AACjB,QAAQ,OAAO,EAAE,IAAI;AACrB,QAAQ,OAAO,EAAE,IAAI;AACrB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,MAAM;AAC9C,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD,MAAM,WAAW,SAAS,OAAO,CAAC;AAClC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS;AACtC;AACA,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AACvD,QAAQ,IAAI,GAAG,CAAC,UAAU,KAAK,aAAa,CAAC,QAAQ,EAAE;AACvD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,gBAAgB,QAAQ,EAAE,aAAa,CAAC,QAAQ;AAChD,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,SAAS,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE;AAC5C,YAAY,OAAO,SAAS,CAAC;AAC7B,gBAAgB,IAAI,EAAE,IAAI;AAC1B,gBAAgB,IAAI,EAAE,GAAG,CAAC,IAAI;AAC9B,gBAAgB,SAAS,EAAE;AAC3B,oBAAoB,GAAG,CAAC,MAAM,CAAC,kBAAkB;AACjD,oBAAoB,GAAG,CAAC,cAAc;AACtC,oBAAoB,WAAW,EAAE;AACjC,oBAAoB,QAAQ;AAC5B,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpC,gBAAgB,SAAS,EAAE;AAC3B,oBAAoB,IAAI,EAAE,YAAY,CAAC,iBAAiB;AACxD,oBAAoB,cAAc,EAAE,KAAK;AACzC,iBAAiB;AACjB,aAAa,CAAC;AACd;AACA,QAAQ,SAAS,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE;AAClD,YAAY,OAAO,SAAS,CAAC;AAC7B,gBAAgB,IAAI,EAAE,OAAO;AAC7B,gBAAgB,IAAI,EAAE,GAAG,CAAC,IAAI;AAC9B,gBAAgB,SAAS,EAAE;AAC3B,oBAAoB,GAAG,CAAC,MAAM,CAAC,kBAAkB;AACjD,oBAAoB,GAAG,CAAC,cAAc;AACtC,oBAAoB,WAAW,EAAE;AACjC,oBAAoB,QAAQ;AAC5B,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpC,gBAAgB,SAAS,EAAE;AAC3B,oBAAoB,IAAI,EAAE,YAAY,CAAC,mBAAmB;AAC1D,oBAAoB,eAAe,EAAE,KAAK;AAC1C,iBAAiB;AACjB,aAAa,CAAC;AACd;AACA,QAAQ,MAAM,MAAM,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,kBAAkB,EAAE;AAClE,QAAQ,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI;AAC3B,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,YAAY,UAAU,EAAE;AACrD;AACA;AACA;AACA,YAAY,MAAM,EAAE,GAAG,IAAI;AAC3B,YAAY,OAAO,EAAE,CAAC,gBAAgB,GAAG,IAAI,EAAE;AAC/C,gBAAgB,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,EAAE,CAAC;AAC9C,gBAAgB,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC;AACjD,qBAAqB,UAAU,CAAC,IAAI,EAAE,MAAM;AAC5C,qBAAqB,KAAK,CAAC,CAAC,CAAC,KAAK;AAClC,oBAAoB,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC1D,oBAAoB,MAAM,KAAK;AAC/B,iBAAiB,CAAC;AAClB,gBAAgB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC;AACxE,gBAAgB,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AACjE,qBAAqB,UAAU,CAAC,MAAM,EAAE,MAAM;AAC9C,qBAAqB,KAAK,CAAC,CAAC,CAAC,KAAK;AAClC,oBAAoB,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAC/D,oBAAoB,MAAM,KAAK;AAC/B,iBAAiB,CAAC;AAClB,gBAAgB,OAAO,aAAa;AACpC,aAAa,CAAC;AACd;AACA,aAAa;AACb;AACA;AACA;AACA,YAAY,MAAM,EAAE,GAAG,IAAI;AAC3B,YAAY,OAAO,EAAE,CAAC,UAAU,GAAG,IAAI,EAAE;AACzC,gBAAgB,MAAM,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;AACvE,gBAAgB,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AACzC,oBAAoB,MAAM,IAAI,QAAQ,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/E;AACA,gBAAgB,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC;AACvE,gBAAgB,MAAM,aAAa,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;AAC/E,gBAAgB,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;AAC5C,oBAAoB,MAAM,IAAI,QAAQ,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;AACvF;AACA,gBAAgB,OAAO,aAAa,CAAC,IAAI;AACzC,aAAa,CAAC;AACd;AACA;AACA,IAAI,UAAU,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI;AAC7B;AACA,IAAI,UAAU,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO;AAChC;AACA,IAAI,IAAI,CAAC,GAAG,KAAK,EAAE;AACnB,QAAQ,OAAO,IAAI,WAAW,CAAC;AAC/B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;AAClE,SAAS,CAAC;AACV;AACA,IAAI,OAAO,CAAC,UAAU,EAAE;AACxB,QAAQ,OAAO,IAAI,WAAW,CAAC;AAC/B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,OAAO,EAAE,UAAU;AAC/B,SAAS,CAAC;AACV;AACA,IAAI,SAAS,CAAC,IAAI,EAAE;AACpB,QAAQ,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAC9C,QAAQ,OAAO,aAAa;AAC5B;AACA,IAAI,eAAe,CAAC,IAAI,EAAE;AAC1B,QAAQ,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAC9C,QAAQ,OAAO,aAAa;AAC5B;AACA,IAAI,OAAO,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE;AACzC,QAAQ,OAAO,IAAI,WAAW,CAAC;AAC/B,YAAY,IAAI,GAAG;AACnB,kBAAkB;AAClB,kBAAkB,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;AAChE,YAAY,OAAO,EAAE,OAAO,IAAI,UAAU,CAAC,MAAM,EAAE;AACnD,YAAY,QAAQ,EAAE,qBAAqB,CAAC,WAAW;AACvD,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC;AAC1C,SAAS,CAAC;AACV;AACA;AACA,MAAM,OAAO,SAAS,OAAO,CAAC;AAC9B,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACjC;AACA,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AACvD,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC7C,QAAQ,OAAO,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACjF;AACA;AACA,OAAO,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK;AACrC,IAAI,OAAO,IAAI,OAAO,CAAC;AACvB,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,OAAO;AAC/C,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD,MAAM,UAAU,SAAS,OAAO,CAAC;AACjC,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAC5C,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AACnD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,QAAQ,EAAE,GAAG,CAAC,IAAI;AAClC,gBAAgB,IAAI,EAAE,YAAY,CAAC,eAAe;AAClD,gBAAgB,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;AACzC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;AACrD;AACA,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK;AAC9B;AACA;AACA,UAAU,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK;AACvC,IAAI,OAAO,IAAI,UAAU,CAAC;AAC1B,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,UAAU;AAClD,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD,SAAS,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE;AACvC,IAAI,OAAO,IAAI,OAAO,CAAC;AACvB,QAAQ,MAAM;AACd,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,OAAO;AAC/C,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN;AACA,MAAM,OAAO,SAAS,OAAO,CAAC;AAC9B,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACxC;AACA,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC5C,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AACnD,YAAY,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM;AACnD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;AACzD,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,cAAmB,CAAC,EAAE;AAChE,YAAY,sBAAsB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAM,CAAC;AACxF;AACA,QAAQ,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,cAAmB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AAChF,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AACnD,YAAY,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM;AACnD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,QAAQ,EAAE,GAAG,CAAC,IAAI;AAClC,gBAAgB,IAAI,EAAE,YAAY,CAAC,kBAAkB;AACrD,gBAAgB,OAAO,EAAE,cAAc;AACvC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B;AACA,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM;AAC/B;AACA,IAAI,IAAI,IAAI,GAAG;AACf,QAAQ,MAAM,UAAU,GAAG,EAAE;AAC7B,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC5C,YAAY,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG;AACjC;AACA,QAAQ,OAAO,UAAU;AACzB;AACA,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,MAAM,UAAU,GAAG,EAAE;AAC7B,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC5C,YAAY,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG;AACjC;AACA,QAAQ,OAAO,UAAU;AACzB;AACA,IAAI,IAAI,IAAI,GAAG;AACf,QAAQ,MAAM,UAAU,GAAG,EAAE;AAC7B,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC5C,YAAY,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG;AACjC;AACA,QAAQ,OAAO,UAAU;AACzB;AACA,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE;AACxC,QAAQ,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;AACtC,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,GAAG,MAAM;AACrB,SAAS,CAAC;AACV;AACA,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE;AACxC,QAAQ,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;AACnF,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,GAAG,MAAM;AACrB,SAAS,CAAC;AACV;AACA;AACA,cAAc,GAAG,IAAI,OAAO,EAAE;AAC9B,OAAO,CAAC,MAAM,GAAG,aAAa;AAC9B,MAAM,aAAa,SAAS,OAAO,CAAC;AACpC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,oBAAoB,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC9C;AACA,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AAC1E,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AAC/C,QAAQ,IAAI,GAAG,CAAC,UAAU,KAAK,aAAa,CAAC,MAAM;AACnD,YAAY,GAAG,CAAC,UAAU,KAAK,aAAa,CAAC,MAAM,EAAE;AACrD,YAAY,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC;AACtE,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;AACzD,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,oBAAyB,CAAC,EAAE;AACtE,YAAY,sBAAsB,CAAC,IAAI,EAAE,oBAAoB,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAM,CAAC;AACvH;AACA,QAAQ,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,oBAAyB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACtF,YAAY,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC;AACtE,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,QAAQ,EAAE,GAAG,CAAC,IAAI;AAClC,gBAAgB,IAAI,EAAE,YAAY,CAAC,kBAAkB;AACrD,gBAAgB,OAAO,EAAE,cAAc;AACvC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B;AACA,IAAI,IAAI,IAAI,GAAG;AACf,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM;AAC/B;AACA;AACA,oBAAoB,GAAG,IAAI,OAAO,EAAE;AACpC,aAAa,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK;AAC3C,IAAI,OAAO,IAAI,aAAa,CAAC;AAC7B,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,aAAa;AACrD,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD,MAAM,UAAU,SAAS,OAAO,CAAC;AACjC,IAAI,MAAM,GAAG;AACb,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI;AAC7B;AACA,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AACvD,QAAQ,IAAI,GAAG,CAAC,UAAU,KAAK,aAAa,CAAC,OAAO;AACpD,YAAY,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,EAAE;AACxC,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,gBAAgB,QAAQ,EAAE,aAAa,CAAC,OAAO;AAC/C,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,MAAM,WAAW,GAAG,GAAG,CAAC,UAAU,KAAK,aAAa,CAAC;AAC7D,cAAc,GAAG,CAAC;AAClB,cAAc,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AACvC,QAAQ,OAAO,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;AAC7C,YAAY,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;AACnD,gBAAgB,IAAI,EAAE,GAAG,CAAC,IAAI;AAC9B,gBAAgB,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,kBAAkB;AACvD,aAAa,CAAC;AACd,SAAS,CAAC,CAAC;AACX;AACA;AACA,UAAU,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK;AACxC,IAAI,OAAO,IAAI,UAAU,CAAC;AAC1B,QAAQ,IAAI,EAAE,MAAM;AACpB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,UAAU;AAClD,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD,MAAM,UAAU,SAAS,OAAO,CAAC;AACjC,IAAI,SAAS,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM;AAC/B;AACA,IAAI,UAAU,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,qBAAqB,CAAC;AACxE,cAAc,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;AACzC,cAAc,IAAI,CAAC,IAAI,CAAC,MAAM;AAC9B;AACA,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AAC/D,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI;AAC/C,QAAQ,MAAM,QAAQ,GAAG;AACzB,YAAY,QAAQ,EAAE,CAAC,GAAG,KAAK;AAC/B,gBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC;AAC3C,gBAAgB,IAAI,GAAG,CAAC,KAAK,EAAE;AAC/B,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA,qBAAqB;AACrB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA,aAAa;AACb,YAAY,IAAI,IAAI,GAAG;AACvB,gBAAgB,OAAO,GAAG,CAAC,IAAI;AAC/B,aAAa;AACb,SAAS;AACT,QAAQ,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC5D,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE;AAC1C,YAAY,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC;AAClE,YAAY,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE;AAClC,gBAAgB,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,SAAS,KAAK;AAC5E,oBAAoB,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;AAClD,wBAAwB,OAAO,OAAO;AACtC,oBAAoB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;AACtE,wBAAwB,IAAI,EAAE,SAAS;AACvC,wBAAwB,IAAI,EAAE,GAAG,CAAC,IAAI;AACtC,wBAAwB,MAAM,EAAE,GAAG;AACnC,qBAAqB,CAAC;AACtB,oBAAoB,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;AACnD,wBAAwB,OAAO,OAAO;AACtC,oBAAoB,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO;AACjD,wBAAwB,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AAClD,oBAAoB,IAAI,MAAM,CAAC,KAAK,KAAK,OAAO;AAChD,wBAAwB,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AAClD,oBAAoB,OAAO,MAAM;AACjC,iBAAiB,CAAC;AAClB;AACA,iBAAiB;AACjB,gBAAgB,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;AAC9C,oBAAoB,OAAO,OAAO;AAClC,gBAAgB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;AAC3D,oBAAoB,IAAI,EAAE,SAAS;AACnC,oBAAoB,IAAI,EAAE,GAAG,CAAC,IAAI;AAClC,oBAAoB,MAAM,EAAE,GAAG;AAC/B,iBAAiB,CAAC;AAClB,gBAAgB,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;AAC/C,oBAAoB,OAAO,OAAO;AAClC,gBAAgB,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO;AAC7C,oBAAoB,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AAC9C,gBAAgB,IAAI,MAAM,CAAC,KAAK,KAAK,OAAO;AAC5C,oBAAoB,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AAC9C,gBAAgB,OAAO,MAAM;AAC7B;AACA;AACA,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE;AAC1C,YAAY,MAAM,iBAAiB,GAAG,CAAC,GAAG,KAAK;AAC/C,gBAAgB,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC/D,gBAAgB,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE;AACtC,oBAAoB,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;AAClD;AACA,gBAAgB,IAAI,MAAM,YAAY,OAAO,EAAE;AAC/C,oBAAoB,MAAM,IAAI,KAAK,CAAC,2FAA2F,CAAC;AAChI;AACA,gBAAgB,OAAO,GAAG;AAC1B,aAAa;AACb,YAAY,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,EAAE;AAC5C,gBAAgB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;AAC1D,oBAAoB,IAAI,EAAE,GAAG,CAAC,IAAI;AAClC,oBAAoB,IAAI,EAAE,GAAG,CAAC,IAAI;AAClC,oBAAoB,MAAM,EAAE,GAAG;AAC/B,iBAAiB,CAAC;AAClB,gBAAgB,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;AAC9C,oBAAoB,OAAO,OAAO;AAClC,gBAAgB,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO;AAC5C,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA,gBAAgB,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC;AAC9C,gBAAgB,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;AACnE;AACA,iBAAiB;AACjB,gBAAgB,OAAO,IAAI,CAAC,IAAI,CAAC;AACjC,qBAAqB,WAAW,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;AAChF,qBAAqB,IAAI,CAAC,CAAC,KAAK,KAAK;AACrC,oBAAoB,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;AAClD,wBAAwB,OAAO,OAAO;AACtC,oBAAoB,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO;AAChD,wBAAwB,MAAM,CAAC,KAAK,EAAE;AACtC,oBAAoB,OAAO,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM;AACrE,wBAAwB,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;AAC3E,qBAAqB,CAAC;AACtB,iBAAiB,CAAC;AAClB;AACA;AACA,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE;AACzC,YAAY,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,EAAE;AAC5C,gBAAgB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;AACzD,oBAAoB,IAAI,EAAE,GAAG,CAAC,IAAI;AAClC,oBAAoB,IAAI,EAAE,GAAG,CAAC,IAAI;AAClC,oBAAoB,MAAM,EAAE,GAAG;AAC/B,iBAAiB,CAAC;AAClB,gBAAgB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAClC,oBAAoB,OAAO,IAAI;AAC/B,gBAAgB,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC;AACrE,gBAAgB,IAAI,MAAM,YAAY,OAAO,EAAE;AAC/C,oBAAoB,MAAM,IAAI,KAAK,CAAC,CAAC,+FAA+F,CAAC,CAAC;AACtI;AACA,gBAAgB,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE;AAC9D;AACA,iBAAiB;AACjB,gBAAgB,OAAO,IAAI,CAAC,IAAI,CAAC;AACjC,qBAAqB,WAAW,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;AAChF,qBAAqB,IAAI,CAAC,CAAC,IAAI,KAAK;AACpC,oBAAoB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AACtC,wBAAwB,OAAO,IAAI;AACnC,oBAAoB,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AAC9I,iBAAiB,CAAC;AAClB;AACA;AACA,QAAQ,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;AAChC;AACA;AACA,UAAU,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK;AAChD,IAAI,OAAO,IAAI,UAAU,CAAC;AAC1B,QAAQ,MAAM;AACd,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,UAAU;AAClD,QAAQ,MAAM;AACd,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD,UAAU,CAAC,oBAAoB,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,KAAK;AAClE,IAAI,OAAO,IAAI,UAAU,CAAC;AAC1B,QAAQ,MAAM;AACd,QAAQ,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE;AAC7D,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,UAAU;AAClD,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD,MAAM,WAAW,SAAS,OAAO,CAAC;AAClC,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC/C,QAAQ,IAAI,UAAU,KAAK,aAAa,CAAC,SAAS,EAAE;AACpD,YAAY,OAAO,EAAE,CAAC,SAAS,CAAC;AAChC;AACA,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;AAChD;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS;AAClC;AACA;AACA,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK;AACvC,IAAI,OAAO,IAAI,WAAW,CAAC;AAC3B,QAAQ,SAAS,EAAE,IAAI;AACvB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,WAAW;AACnD,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD,MAAM,WAAW,SAAS,OAAO,CAAC;AAClC,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC/C,QAAQ,IAAI,UAAU,KAAK,aAAa,CAAC,IAAI,EAAE;AAC/C,YAAY,OAAO,EAAE,CAAC,IAAI,CAAC;AAC3B;AACA,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;AAChD;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS;AAClC;AACA;AACA,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK;AACvC,IAAI,OAAO,IAAI,WAAW,CAAC;AAC3B,QAAQ,SAAS,EAAE,IAAI;AACvB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,WAAW;AACnD,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD,MAAM,UAAU,SAAS,OAAO,CAAC;AACjC,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AACvD,QAAQ,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI;AAC3B,QAAQ,IAAI,GAAG,CAAC,UAAU,KAAK,aAAa,CAAC,SAAS,EAAE;AACxD,YAAY,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AAC3C;AACA,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;AAC1C,YAAY,IAAI;AAChB,YAAY,IAAI,EAAE,GAAG,CAAC,IAAI;AAC1B,YAAY,MAAM,EAAE,GAAG;AACvB,SAAS,CAAC;AACV;AACA,IAAI,aAAa,GAAG;AACpB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS;AAClC;AACA;AACA,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK;AACtC,IAAI,OAAO,IAAI,UAAU,CAAC;AAC1B,QAAQ,SAAS,EAAE,IAAI;AACvB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,UAAU;AAClD,QAAQ,YAAY,EAAE,OAAO,MAAM,CAAC,OAAO,KAAK;AAChD,cAAc,MAAM,CAAC;AACrB,cAAc,MAAM,MAAM,CAAC,OAAO;AAClC,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD,MAAM,QAAQ,SAAS,OAAO,CAAC;AAC/B,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AACvD;AACA,QAAQ,MAAM,MAAM,GAAG;AACvB,YAAY,GAAG,GAAG;AAClB,YAAY,MAAM,EAAE;AACpB,gBAAgB,GAAG,GAAG,CAAC,MAAM;AAC7B,gBAAgB,MAAM,EAAE,EAAE;AAC1B,aAAa;AACb,SAAS;AACT,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;AAClD,YAAY,IAAI,EAAE,MAAM,CAAC,IAAI;AAC7B,YAAY,IAAI,EAAE,MAAM,CAAC,IAAI;AAC7B,YAAY,MAAM,EAAE;AACpB,gBAAgB,GAAG,MAAM;AACzB,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE;AAC7B,YAAY,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK;AAC3C,gBAAgB,OAAO;AACvB,oBAAoB,MAAM,EAAE,OAAO;AACnC,oBAAoB,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK;AAC7C,0BAA0B,MAAM,CAAC;AACjC,0BAA0B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAC/C,4BAA4B,IAAI,KAAK,GAAG;AACxC,gCAAgC,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;AACzE,6BAA6B;AAC7B,4BAA4B,KAAK,EAAE,MAAM,CAAC,IAAI;AAC9C,yBAAyB,CAAC;AAC1B,iBAAiB;AACjB,aAAa,CAAC;AACd;AACA,aAAa;AACb,YAAY,OAAO;AACnB,gBAAgB,MAAM,EAAE,OAAO;AAC/B,gBAAgB,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK;AACzC,sBAAsB,MAAM,CAAC;AAC7B,sBAAsB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAC3C,wBAAwB,IAAI,KAAK,GAAG;AACpC,4BAA4B,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;AACrE,yBAAyB;AACzB,wBAAwB,KAAK,EAAE,MAAM,CAAC,IAAI;AAC1C,qBAAqB,CAAC;AACtB,aAAa;AACb;AACA;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS;AAClC;AACA;AACA,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK;AACpC,IAAI,OAAO,IAAI,QAAQ,CAAC;AACxB,QAAQ,SAAS,EAAE,IAAI;AACvB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,QAAQ;AAChD,QAAQ,UAAU,EAAE,OAAO,MAAM,CAAC,KAAK,KAAK,UAAU,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,MAAM,CAAC,KAAK;AAC1F,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD,MAAM,MAAM,SAAS,OAAO,CAAC;AAC7B,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC/C,QAAQ,IAAI,UAAU,KAAK,aAAa,CAAC,GAAG,EAAE;AAC9C,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AACnD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,gBAAgB,QAAQ,EAAE,aAAa,CAAC,GAAG;AAC3C,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;AACrD;AACA;AACA,MAAM,CAAC,MAAM,GAAG,CAAC,MAAM,KAAK;AAC5B,IAAI,OAAO,IAAI,MAAM,CAAC;AACtB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,MAAM;AAC9C,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC;AACjC,MAAM,UAAU,SAAS,OAAO,CAAC;AACjC,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AACvD,QAAQ,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI;AAC7B,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AACrC,YAAY,IAAI;AAChB,YAAY,IAAI,EAAE,GAAG,CAAC,IAAI;AAC1B,YAAY,MAAM,EAAE,GAAG;AACvB,SAAS,CAAC;AACV;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI;AAC7B;AACA;AACA,MAAM,WAAW,SAAS,OAAO,CAAC;AAClC,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AAC/D,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE;AAC9B,YAAY,MAAM,WAAW,GAAG,YAAY;AAC5C,gBAAgB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC;AAChE,oBAAoB,IAAI,EAAE,GAAG,CAAC,IAAI;AAClC,oBAAoB,IAAI,EAAE,GAAG,CAAC,IAAI;AAClC,oBAAoB,MAAM,EAAE,GAAG;AAC/B,iBAAiB,CAAC;AAClB,gBAAgB,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;AACjD,oBAAoB,OAAO,OAAO;AAClC,gBAAgB,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE;AACjD,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC,oBAAoB,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;AAChD;AACA,qBAAqB;AACrB,oBAAoB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;AACrD,wBAAwB,IAAI,EAAE,QAAQ,CAAC,KAAK;AAC5C,wBAAwB,IAAI,EAAE,GAAG,CAAC,IAAI;AACtC,wBAAwB,MAAM,EAAE,GAAG;AACnC,qBAAqB,CAAC;AACtB;AACA,aAAa;AACb,YAAY,OAAO,WAAW,EAAE;AAChC;AACA,aAAa;AACb,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC;AACrD,gBAAgB,IAAI,EAAE,GAAG,CAAC,IAAI;AAC9B,gBAAgB,IAAI,EAAE,GAAG,CAAC,IAAI;AAC9B,gBAAgB,MAAM,EAAE,GAAG;AAC3B,aAAa,CAAC;AACd,YAAY,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;AAC7C,gBAAgB,OAAO,OAAO;AAC9B,YAAY,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE;AAC7C,gBAAgB,MAAM,CAAC,KAAK,EAAE;AAC9B,gBAAgB,OAAO;AACvB,oBAAoB,MAAM,EAAE,OAAO;AACnC,oBAAoB,KAAK,EAAE,QAAQ,CAAC,KAAK;AACzC,iBAAiB;AACjB;AACA,iBAAiB;AACjB,gBAAgB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;AAChD,oBAAoB,IAAI,EAAE,QAAQ,CAAC,KAAK;AACxC,oBAAoB,IAAI,EAAE,GAAG,CAAC,IAAI;AAClC,oBAAoB,MAAM,EAAE,GAAG;AAC/B,iBAAiB,CAAC;AAClB;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;AACxB,QAAQ,OAAO,IAAI,WAAW,CAAC;AAC/B,YAAY,EAAE,EAAE,CAAC;AACjB,YAAY,GAAG,EAAE,CAAC;AAClB,YAAY,QAAQ,EAAE,qBAAqB,CAAC,WAAW;AACvD,SAAS,CAAC;AACV;AACA;AACA,MAAM,WAAW,SAAS,OAAO,CAAC;AAClC,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;AACxD,QAAQ,MAAM,MAAM,GAAG,CAAC,IAAI,KAAK;AACjC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE;AAC/B,gBAAgB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACtD;AACA,YAAY,OAAO,IAAI;AACvB,SAAS;AACT,QAAQ,OAAO,OAAO,CAAC,MAAM;AAC7B,cAAc,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC;AAChD,cAAc,MAAM,CAAC,MAAM,CAAC;AAC5B;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS;AAClC;AACA;AACA,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK;AACvC,IAAI,OAAO,IAAI,WAAW,CAAC;AAC3B,QAAQ,SAAS,EAAE,IAAI;AACvB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,WAAW;AACnD,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD,SAAS,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,EAAE;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,EAAE;AACP,IAAI,IAAI,KAAK;AACb,QAAQ,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK;AAC1D,YAAY,IAAI,EAAE,EAAE,EAAE;AACtB,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AAC9B,gBAAgB,MAAM,CAAC,GAAG,OAAO,MAAM,KAAK;AAC5C,sBAAsB,MAAM,CAAC,IAAI;AACjC,sBAAsB,OAAO,MAAM,KAAK;AACxC,0BAA0B,EAAE,OAAO,EAAE,MAAM;AAC3C,0BAA0B,MAAM;AAChC,gBAAgB,MAAM,MAAM,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI;AACjI,gBAAgB,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,QAAQ,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC;AACrE,gBAAgB,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACtE;AACA,SAAS,CAAC;AACV,IAAI,OAAO,MAAM,CAAC,MAAM,EAAE;AAC1B;AACA,MAAM,IAAI,GAAG;AACb,IAAI,MAAM,EAAE,SAAS,CAAC,UAAU;AAChC,CAAC;AACD,IAAI,qBAAqB;AACzB,CAAC,UAAU,qBAAqB,EAAE;AAClC,IAAI,qBAAqB,CAAC,WAAW,CAAC,GAAG,WAAW;AACpD,IAAI,qBAAqB,CAAC,WAAW,CAAC,GAAG,WAAW;AACpD,IAAI,qBAAqB,CAAC,QAAQ,CAAC,GAAG,QAAQ;AAC9C,IAAI,qBAAqB,CAAC,WAAW,CAAC,GAAG,WAAW;AACpD,IAAI,qBAAqB,CAAC,YAAY,CAAC,GAAG,YAAY;AACtD,IAAI,qBAAqB,CAAC,SAAS,CAAC,GAAG,SAAS;AAChD,IAAI,qBAAqB,CAAC,WAAW,CAAC,GAAG,WAAW;AACpD,IAAI,qBAAqB,CAAC,cAAc,CAAC,GAAG,cAAc;AAC1D,IAAI,qBAAqB,CAAC,SAAS,CAAC,GAAG,SAAS;AAChD,IAAI,qBAAqB,CAAC,QAAQ,CAAC,GAAG,QAAQ;AAC9C,IAAI,qBAAqB,CAAC,YAAY,CAAC,GAAG,YAAY;AACtD,IAAI,qBAAqB,CAAC,UAAU,CAAC,GAAG,UAAU;AAClD,IAAI,qBAAqB,CAAC,SAAS,CAAC,GAAG,SAAS;AAChD,IAAI,qBAAqB,CAAC,UAAU,CAAC,GAAG,UAAU;AAClD,IAAI,qBAAqB,CAAC,WAAW,CAAC,GAAG,WAAW;AACpD,IAAI,qBAAqB,CAAC,UAAU,CAAC,GAAG,UAAU;AAClD,IAAI,qBAAqB,CAAC,uBAAuB,CAAC,GAAG,uBAAuB;AAC5E,IAAI,qBAAqB,CAAC,iBAAiB,CAAC,GAAG,iBAAiB;AAChE,IAAI,qBAAqB,CAAC,UAAU,CAAC,GAAG,UAAU;AAClD,IAAI,qBAAqB,CAAC,WAAW,CAAC,GAAG,WAAW;AACpD,IAAI,qBAAqB,CAAC,QAAQ,CAAC,GAAG,QAAQ;AAC9C,IAAI,qBAAqB,CAAC,QAAQ,CAAC,GAAG,QAAQ;AAC9C,IAAI,qBAAqB,CAAC,aAAa,CAAC,GAAG,aAAa;AACxD,IAAI,qBAAqB,CAAC,SAAS,CAAC,GAAG,SAAS;AAChD,IAAI,qBAAqB,CAAC,YAAY,CAAC,GAAG,YAAY;AACtD,IAAI,qBAAqB,CAAC,SAAS,CAAC,GAAG,SAAS;AAChD,IAAI,qBAAqB,CAAC,YAAY,CAAC,GAAG,YAAY;AACtD,IAAI,qBAAqB,CAAC,eAAe,CAAC,GAAG,eAAe;AAC5D,IAAI,qBAAqB,CAAC,aAAa,CAAC,GAAG,aAAa;AACxD,IAAI,qBAAqB,CAAC,aAAa,CAAC,GAAG,aAAa;AACxD,IAAI,qBAAqB,CAAC,YAAY,CAAC,GAAG,YAAY;AACtD,IAAI,qBAAqB,CAAC,UAAU,CAAC,GAAG,UAAU;AAClD,IAAI,qBAAqB,CAAC,YAAY,CAAC,GAAG,YAAY;AACtD,IAAI,qBAAqB,CAAC,YAAY,CAAC,GAAG,YAAY;AACtD,IAAI,qBAAqB,CAAC,aAAa,CAAC,GAAG,aAAa;AACxD,IAAI,qBAAqB,CAAC,aAAa,CAAC,GAAG,aAAa;AACxD,CAAC,EAAE,qBAAqB,KAAK,qBAAqB,GAAG,EAAE,CAAC,CAAC;AACzD,MAAM,cAAc,GAAG;AACvB;AACA,GAAG,EAAE,MAAM,GAAG;AACd,IAAI,OAAO,EAAE,CAAC,sBAAsB,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAChD,CAAC,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,YAAY,GAAG,EAAE,MAAM,CAAC;AACnD,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM;AACnC,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM;AACnC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM;AAC7B,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM;AACnC,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM;AACrC,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM;AAC/B,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM;AACnC,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM;AACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM;AAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM;AAC7B,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM;AACrC,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM;AACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM;AAC/B,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM;AACjC,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM;AACnC,MAAM,gBAAgB,GAAG,SAAS,CAAC,YAAY;AAC/C,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM;AACjC,MAAM,sBAAsB,GAAG,qBAAqB,CAAC,MAAM;AAC3D,MAAM,gBAAgB,GAAG,eAAe,CAAC,MAAM;AAC/C,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM;AACjC,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM;AACnC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM;AAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM;AAC7B,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM;AACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM;AAC/B,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM;AACrC,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM;AAC/B,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM;AAC3C,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM;AACrC,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM;AACrC,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM;AACvC,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM;AACvC,MAAM,cAAc,GAAG,UAAU,CAAC,oBAAoB;AACtD,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM;AACvC,MAAM,OAAO,GAAG,MAAM,UAAU,EAAE,CAAC,QAAQ,EAAE;AAC7C,MAAM,OAAO,GAAG,MAAM,UAAU,EAAE,CAAC,QAAQ,EAAE;AAC7C,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC,QAAQ,EAAE;AAC/C,MAAMA,QAAM,GAAG;AACf,IAAI,MAAM,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AACjE,IAAI,MAAM,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AACjE,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,UAAU,CAAC,MAAM,CAAC;AACzC,QAAQ,GAAG,GAAG;AACd,QAAQ,MAAM,EAAE,IAAI;AACpB,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AACjE,IAAI,IAAI,GAAG,CAAC,GAAG,KAAK,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7D,CAAC;AACD,MAAM,KAAK,GAAG,OAAO;;AAErB,IAAI,CAAC,gBAAgB,MAAM,CAAC,MAAM,CAAC;AACnC,IAAI,SAAS,EAAE,IAAI;AACnB,IAAI,eAAe,EAAE,QAAQ;AAC7B,IAAI,WAAW,EAAE,WAAW;AAC5B,IAAI,WAAW,EAAE,WAAW;AAC5B,IAAI,SAAS,EAAE,SAAS;AACxB,IAAI,UAAU,EAAE,UAAU;AAC1B,IAAI,iBAAiB,EAAE,iBAAiB;AACxC,IAAI,WAAW,EAAE,WAAW;AAC5B,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,SAAS,EAAE,SAAS;AACxB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,OAAO,IAAI,CAAC,EAAE;AAChC,IAAI,IAAI,UAAU,CAAC,GAAG,EAAE,OAAO,UAAU,CAAC,EAAE;AAC5C,IAAI,aAAa,EAAE,aAAa;AAChC,IAAI,aAAa,EAAE,aAAa;AAChC,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,aAAa,EAAE,aAAa;AAChC,IAAI,SAAS,EAAE,SAAS;AACxB,IAAI,SAAS,EAAE,SAAS;AACxB,IAAI,SAAS,EAAE,SAAS;AACxB,IAAI,UAAU,EAAE,UAAU;AAC1B,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,SAAS,EAAE,SAAS;AACxB,IAAI,YAAY,EAAE,YAAY;AAC9B,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,UAAU,EAAE,UAAU;AAC1B,IAAI,QAAQ,EAAE,QAAQ;AACtB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,QAAQ,EAAE,QAAQ;AACtB,IAAI,SAAS,EAAE,SAAS;AACxB,IAAI,QAAQ,EAAE,QAAQ;AACtB,IAAI,qBAAqB,EAAE,qBAAqB;AAChD,IAAI,eAAe,EAAE,eAAe;AACpC,IAAI,QAAQ,EAAE,QAAQ;AACtB,IAAI,SAAS,EAAE,SAAS;AACxB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,WAAW,EAAE,WAAW;AAC5B,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,UAAU,EAAE,UAAU;AAC1B,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,aAAa,EAAE,aAAa;AAChC,IAAI,UAAU,EAAE,UAAU;AAC1B,IAAI,UAAU,EAAE,UAAU;AAC1B,IAAI,cAAc,EAAE,UAAU;AAC9B,IAAI,WAAW,EAAE,WAAW;AAC5B,IAAI,WAAW,EAAE,WAAW;AAC5B,IAAI,UAAU,EAAE,UAAU;AAC1B,IAAI,QAAQ,EAAE,QAAQ;AACtB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,UAAU,EAAE,UAAU;AAC1B,IAAI,WAAW,EAAE,WAAW;AAC5B,IAAI,WAAW,EAAE,WAAW;AAC5B,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,SAAS,EAAE,OAAO;AACtB,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,IAAI,qBAAqB,CAAC,GAAG,EAAE,OAAO,qBAAqB,CAAC,EAAE;AAClE,IAAI,MAAM,EAAEA,QAAM;AAClB,IAAI,GAAG,EAAE,OAAO;AAChB,IAAI,KAAK,EAAE,SAAS;AACpB,IAAI,MAAM,EAAE,UAAU;AACtB,IAAI,OAAO,EAAE,WAAW;AACxB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,kBAAkB,EAAE,sBAAsB;AAC9C,IAAI,MAAM,EAAE,WAAW;AACvB,IAAI,MAAM,EAAE,QAAQ;AACpB,IAAI,UAAU,EAAE,YAAY;AAC5B,IAAI,YAAY,EAAE,cAAc;AAChC,IAAI,YAAY,EAAE,gBAAgB;AAClC,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,OAAO,EAAE,WAAW;AACxB,IAAI,GAAG,EAAE,OAAO;AAChB,IAAI,GAAG,EAAE,OAAO;AAChB,IAAI,UAAU,EAAE,cAAc;AAC9B,IAAI,KAAK,EAAE,SAAS;AACpB,IAAI,MAAM,EAAE,QAAQ;AACpB,IAAI,QAAQ,EAAE,YAAY;AAC1B,IAAI,MAAM,EAAE,UAAU;AACtB,IAAI,MAAM,EAAE,UAAU;AACtB,IAAI,QAAQ,EAAE,QAAQ;AACtB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,QAAQ,EAAE,YAAY;AAC1B,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,QAAQ,EAAE,YAAY;AAC1B,IAAI,UAAU,EAAE,cAAc;AAC9B,IAAI,OAAO,EAAE,WAAW;AACxB,IAAI,MAAM,EAAE,UAAU;AACtB,IAAI,GAAG,EAAE,OAAO;AAChB,IAAI,YAAY,EAAE,gBAAgB;AAClC,IAAI,MAAM,EAAE,UAAU;AACtB,IAAI,MAAM,EAAE,UAAU;AACtB,IAAI,WAAW,EAAE,WAAW;AAC5B,IAAI,KAAK,EAAE,SAAS;AACpB,IAAI,WAAW,EAAE,aAAa;AAC9B,IAAI,KAAK,EAAE,SAAS;AACpB,IAAI,OAAO,EAAE,WAAW;AACxB,IAAI,MAAM,EAAE,QAAQ;AACpB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,YAAY,EAAE,YAAY;AAC9B,IAAI,aAAa,EAAE,aAAa;AAChC,IAAI,QAAQ,EAAE;AACd,CAAC,CAAC;;ACznIK,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;AAC7C,IAAA,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;AAChB,IAAA,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;AACzB,IAAA,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,gBAAgB,CAAC,CAAC;AACjD,IAAA,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;AACf,CAAA,CAAC;AAEK,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;AAC3C,IAAA,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;AAChB,IAAA,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;AACvB,IAAA,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;AACf,CAAA,CAAC;AAEK,MAAM,gBAAgB,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC3D,sBAAsB;IACtB,oBAAoB;AACrB,CAAA,CAAC;AAEK,MAAM,8BAA8B,GAAG,CAAC,OAAiB,KAAgB;AAC9E,IAAA,MAAM,IAAI,GAAqB;AAC7B,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,EAAE,EAAE,MAAM;KACX;AAED,IAAA,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;AAC3B,QAAA,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAClD,IAAI,aAAa,GAAG,IAAI;AAExB,QAAA,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE;;AAE3D,YAAA,IAAI,cAAc,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;YAEhF,IAAI,CAAC,cAAc,EAAE;;gBAEnB,IAAI,KAAK,KAAK,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AAClC,oBAAA,MAAM,QAAQ,GAAmB;AAC/B,wBAAA,IAAI,EAAE,IAAI;AACV,wBAAA,IAAI,EAAE,MAAM;AACZ,wBAAA,EAAE,EAAE,KAAK;qBACV;AACD,oBAAA,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;;qBAChC;;AAEL,oBAAA,MAAM,UAAU,GAAqB;AACnC,wBAAA,IAAI,EAAE,IAAI;AACV,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,QAAQ,EAAE,EAAE;wBACZ,EAAE,EAAE,GAAG,aAAa,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAI,CAAA,EAAA,IAAI,CAAE,CAAA;qBAChE;AACD,oBAAA,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;oBACvC,cAAc,GAAG,UAAU;;;AAG/B,YAAA,aAAa,GAAG,cAAkC,CAAA;;;IAItD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;AAC7D,CAAC;;ICxEW;AAAZ,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACnB,CAAC,EAHW,UAAU,KAAV,UAAU,GAGrB,EAAA,CAAA,CAAA;IAEW;AAAZ,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,YAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,YAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,YAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,YAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACnB,CAAC,EANW,YAAY,KAAZ,YAAY,GAMvB,EAAA,CAAA,CAAA;AAEY,MAAA,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;AACvC,IAAA,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;AACd,IAAA,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;AAClB,IAAA,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;AACjC,IAAA,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;AAC9B,IAAA,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC;AAClC,IAAA,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE;AAClB,IAAA,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;AAChB,IAAA,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;AAC/B,IAAA,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;AACzB,IAAA,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;AACxB,CAAA;AAMY,MAAA,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;AACzC,IAAA,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;AACd,IAAA,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;AAClB,IAAA,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;AACjC,IAAA,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;AAC9B,IAAA,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC;AAClC,IAAA,QAAQ,EAAE,sBAAsB;AAChC,IAAA,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;AAChB,IAAA,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE;AAClB,IAAA,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;AACzB,IAAA,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;AACvB,IAAA,aAAa,EAAE,CAAC,CAAC,IAAI,EAAE;AACxB,CAAA;;;;;;;;;;;;;;;;;;;AC7CD,CAAA,MAAM,CAAC,cAAc,CAAC,MAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D;AACA;AACA;AACA;AACA,CAAA,MAAA,CAAA,YAAoB,GAAG,CAAC,KAAK,KAAK,KAAK,YAAY,UAAU,GAAG,KAAK,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC;AAC7F;;;;;;;;;;;;;;;;CCNA,MAAM,IAAI,GAAGC,YAAe,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC;AAC9D,CAAA,MAAM,KAAK,GAAGC,EAAa,CAAC,YAAY,CAAC,IAAI,CAAC;CAC9C,IAAI,OAAO,GAAG,EAAE;AAChB,CAAA,OAAO,CAAC,aAAa,CAAC,GAAGC,aAAsB,EAAA;;CAE/C,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;CAChD,MAAM,YAAY,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;AAClE,CAAc,SAAA,GAAG,YAAY,CAAC,OAAO;;;;;;;;;ACRrC,CAAA,IAAI,IAAI;AACR,CAAA,MAAM,EAAE,WAAW,EAAE,GAAGC,eAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;;AAEjD,CAAA,IAAI,iBAAiB,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;;CAElF,iBAAiB,CAAC,MAAM,EAAE;;CAE1B,IAAI,oBAAoB,GAAG,IAAI;AAC/B,CAAA,SAAS,eAAe,GAAG;AAC3B,KAAI,IAAI,oBAAoB,KAAK,IAAI,IAAI,oBAAoB,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;SACrF,oBAAoB,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AACjE;AACA,KAAI,OAAO,oBAAoB;AAC/B;;AAEA,CAAA,SAAS,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE;AACtC,KAAI,OAAO,iBAAiB,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;AAC/E;;CAEA,IAAI,eAAe,GAAG,CAAC;;AAEvB,CAAA,SAAS,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE;KACpC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;KAClC,eAAe,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;AACvC,KAAI,eAAe,GAAG,GAAG,CAAC,MAAM;AAChC,KAAI,OAAO,GAAG;AACd;AACA;AACA;AACA;AACA;AACA,CAAA,MAAA,CAAA,IAAmB,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;AAC1C,KAAI,IAAI;SACA,IAAI,IAAI,GAAG,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC;SAC1D,IAAI,IAAI,GAAG,eAAe;SAC1B,IAAI,IAAI,GAAG,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,iBAAiB,CAAC;SACzD,IAAI,IAAI,GAAG,eAAe;SAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AACzC,MAAK,SAAS;AACd,SAAQ,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;SAC9D,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC;AAC5C;EACC;;AAED;AACA;AACA,CAAA,MAAM,UAAU,CAAC;;AAEjB,KAAI,OAAO,MAAM,CAAC,GAAG,EAAE;SACf,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;AACvD,SAAQ,GAAG,CAAC,GAAG,GAAG,GAAG;;AAErB,SAAQ,OAAO,GAAG;AAClB;;AAEA,KAAI,IAAI,GAAG;AACX,SAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG;AAC5B,SAAQ,IAAI,CAAC,GAAG,GAAG,CAAC;;AAEpB,SAAQ,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC;AACvC;AACA;AACA;AACA,KAAI,WAAW,GAAG;AAClB,SAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,cAAc,EAAE;AACvC,SAAQ,OAAO,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC;AACrC;AACA;AACA;AACA;KACI,MAAM,CAAC,WAAW,EAAE;SAChB,IAAI,IAAI,GAAG,iBAAiB,CAAC,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC;SACjE,IAAI,IAAI,GAAG,eAAe;SAC1B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC;AACpD;AACA;AACA;AACA;KACI,MAAM,CAAC,GAAG,EAAE;AAChB,SAAQ,IAAI;aACA,IAAI,IAAI,GAAG,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,iBAAiB,CAAC;aACzD,IAAI,IAAI,GAAG,eAAe;aAC1B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC;AACxD,UAAS,SAAS;AAClB,aAAY,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;aAC9D,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC;AAChD;AACA;AACA;AACA,CAAA,MAAA,CAAA,UAAyB,GAAG,UAAU;;AAEtC,CAAA,MAAA,CAAA,gBAA+B,GAAG,SAAS,IAAI,EAAE,IAAI,EAAE;KACnD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;EAClD;AACD,CAAA,IAAI,GAAGH,gBAAsB,EAAA;;;;;;;;;;EC7F7B,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;EAC7D,MAAM,SAAS,GAAGA,eAA0B,EAAA;EAC5C,MAAM,QAAQ,GAAGC,aAAkC,EAAA;AACnD;AACA;AACA;EACA,OAAyB,CAAA,cAAA,GAAA,CAAC,KAAK,EAAE,QAAQ,KAAK,SAAS,CAAC,YAAY,CAAC,OAAO,KAAK,KAAK,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC;AACtI,EAAA,SAAS,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE;MAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AACnC,MAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;MACpD,OAAO,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM;AACxD;AACA,EAAA,OAAA,CAAA,IAAA,GAAe,IAAI;AACnB;;;;;;;;;;;;;;;;ACbA,CAAA,MAAM,CAAC,cAAc,CAAC,YAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,SAAS,GAAGD,eAAoB,EAAA;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,MAAM,QAAQ,CAAC;AACf,KAAI,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE;AACnC,SAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,SAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC;SACQ,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE;AACtC;AACA;AACA;AACA;AACA;KACI,MAAM,CAAC,IAAI,EAAE;AACjB,SAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACxB,aAAY,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC;AACrF;AACA,SAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AACtD,SAAQ,OAAO,IAAI;AACnB;AACA;AACA;AACA;AACA,KAAI,MAAM,GAAG;AACb,SAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;aACZ,OAAO,IAAI,CAAC,QAAQ;AAChC;SACQ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;AACvC,SAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;SAChB,OAAO,IAAI,CAAC,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA,KAAI,OAAO,GAAG;AACd,SAAQ,IAAI,EAAE;SACN,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE;AACvE,SAAQ,IAAI,CAAC,IAAI,GAAG,SAAS;AAC7B;AACA;AACA,CAAA,YAAA,CAAA,QAAgB,GAAG,QAAQ;AAC3B;;;;;;;;;;EChDA,SAAS,QAAQ,CAAC,CAAC,EAAE;MACjB,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACtE;EACA,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;EAC7D,QAAQ,CAACA,uBAA0B,CAAC;AACpC;;;;;;;;;;ACLA,CAAA,MAAM,CAAC,cAAc,CAACI,cAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,SAAS,GAAGJ,aAAoB,EAAA;CACtC,MAAM,MAAM,GAAGC,WAAkB,EAAA;CACjC,MAAM,QAAQ,GAAGC,aAAkC,EAAA;AACnD;AACA;AACA;AACA,CAAA,MAAM,QAAQ,SAAS,MAAM,CAAC,QAAQ,CAAC;AACvC;AACA;AACA;AACA;AACA,KAAI,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE;AAC3B,SAAQ,OAAO,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACrE;KACI,MAAM,CAAC,QAAQ,EAAE;AACrB,SAAQ,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE;SAC7B,OAAO,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM;AAC5D;AACA;AACA,CAAAE,cAAA,CAAA,QAAgB,GAAG,QAAQ;AAC3B;AACA;AACA;AACA,CAAAA,cAAA,CAAA,UAAkB,GAAG,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC9E;;;;;;;;;;ECzBA,SAAS,QAAQ,CAAC,CAAC,EAAE;MACjB,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACtE;EACA,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;EAC7D,IAAI,SAAS,GAAGJ,aAAoB,EAAA;EACpC,OAAe,CAAA,IAAA,GAAA,SAAS,CAAC,IAAI;EAC7B,QAAQ,CAACC,qBAA0B,CAAC;AACpC;;;;;;;;;;;ECPA,SAAS,QAAQ,CAAC,CAAC,EAAE;MACjB,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACtE;EACA,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;EACA,IAAI,OAAO,CAAC,OAAO,EAAE;AACrB,MAAI,MAAM,IAAI,KAAK,CAAC,4EAA4E;AAChG,UAAQ,yEAAyE;AACjF,UAAQ,qBAAqB,CAAC;AAC9B;EACA,QAAQ,CAACD,aAAiB,CAAC;AAC3B;;;;;;;ACGO,SAAS,MAAM,CAAC,CAAC,EAAE;AAC1B,IAAI,IAAI,CAAC,YAAY,UAAU,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,YAAY;AACtE,QAAQ,OAAO,CAAC;AAChB,IAAI,IAAI,CAAC,YAAY,WAAW;AAChC,QAAQ,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC;AAChC,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;AAC/B,QAAQ,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC;AACnE;AACA,IAAI,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC;AACxD;AAIO,SAASK,YAAU,CAAC,GAAG,EAAE;AAChC,IAAI,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;AACxC;AACO,SAAS,QAAQ,CAAC,CAAC,EAAE;AAC5B,IAAI,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE;AAC9B,IAAI,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE;AAChC,QAAQ,MAAM,IAAI,SAAS,CAAC,mBAAmB,CAAC;AAChD;AACA,IAAI,IAAI,QAAQ,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC;AACtC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC9C,QAAQ,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG;AACzB;AACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC9C,QAAQ,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAClC,QAAQ,IAAI,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AAChC,QAAQ,IAAI,QAAQ,CAAC,EAAE,CAAC,KAAK,GAAG,EAAE;AAClC,YAAY,MAAM,IAAI,SAAS,CAAC,CAAC,GAAG,eAAe,CAAC;AACpD;AACA,QAAQ,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC;AACxB;AACA,IAAI,IAAI,IAAI,GAAG,QAAQ,CAAC,MAAM;AAC9B,IAAI,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACnC,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChD,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACjD;AACA;AACA;AACA,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE;AAC5B;AACA,QAAQ,IAAI,MAAM,YAAY,UAAU;AACxC,YAAY;AACZ,aAAa,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;AAC7C,YAAY,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;AACxF;AACA,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACxC,YAAY,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;AAC5C;AACA,QAAQ,IAAI,EAAE,MAAM,YAAY,UAAU,CAAC,EAAE;AAC7C,YAAY,MAAM,IAAI,SAAS,CAAC,qBAAqB,CAAC;AACtD;AACA,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AACjC,YAAY,OAAO,EAAE;AACrB;AACA;AACA,QAAQ,IAAI,MAAM,GAAG,CAAC;AACtB,QAAQ,IAAI,MAAM,GAAG,CAAC;AACtB,QAAQ,IAAI,MAAM,GAAG,CAAC;AACtB,QAAQ,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM;AAChC,QAAQ,OAAO,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AACxD,YAAY,MAAM,EAAE;AACpB,YAAY,MAAM,EAAE;AACpB;AACA;AACA,QAAQ,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,MAAM,IAAI,OAAO,GAAG,CAAC,MAAM,CAAC;AACxD,QAAQ,IAAI,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC;AACtC;AACA,QAAQ,OAAO,MAAM,KAAK,IAAI,EAAE;AAChC,YAAY,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;AACtC;AACA,YAAY,IAAI,CAAC,GAAG,CAAC;AACrB,YAAY,KAAK,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AAC9F,gBAAgB,KAAK,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;AAC/C,gBAAgB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC;AAC/C,gBAAgB,KAAK,GAAG,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC;AAC5C;AACA,YAAY,IAAI,KAAK,KAAK,CAAC,EAAE;AAC7B,gBAAgB,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC;AACjD;AACA,YAAY,MAAM,GAAG,CAAC;AACtB,YAAY,MAAM,EAAE;AACpB;AACA;AACA,QAAQ,IAAI,GAAG,GAAG,IAAI,GAAG,MAAM;AAC/B,QAAQ,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AAC/C,YAAY,GAAG,EAAE;AACjB;AACA;AACA,QAAQ,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;AACvC,QAAQ,OAAO,GAAG,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE;AAClC,YAAY,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC5C;AACA,QAAQ,OAAO,GAAG;AAClB;AACA;AACA;AACA;AACA,IAAI,SAAS,YAAY,CAAC,MAAM,EAAE;AAClC,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AACxC,YAAY,MAAM,IAAI,SAAS,CAAC,iBAAiB,CAAC;AAClD;AACA,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AACjC,YAAY,OAAO,IAAI,UAAU,EAAE;AACnC;AACA,QAAQ,IAAI,GAAG,GAAG,CAAC;AACnB;AACA,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE;AACjC,YAAY;AACZ;AACA;AACA,QAAQ,IAAI,MAAM,GAAG,CAAC;AACtB,QAAQ,IAAI,MAAM,GAAG,CAAC;AACtB,QAAQ,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,MAAM,EAAE;AACvC,YAAY,MAAM,EAAE;AACpB,YAAY,GAAG,EAAE;AACjB;AACA;AACA,QAAQ,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;AAChE,QAAQ,IAAI,IAAI,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC;AACvC;AACA,QAAQ,OAAO,MAAM,CAAC,GAAG,CAAC,EAAE;AAC5B;AACA,YAAY,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACxD;AACA,YAAY,IAAI,KAAK,KAAK,GAAG,EAAE;AAC/B,gBAAgB;AAChB;AACA,YAAY,IAAI,CAAC,GAAG,CAAC;AACrB,YAAY,KAAK,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AAC9F,gBAAgB,KAAK,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;AACjD,gBAAgB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,MAAM,CAAC;AAC/C,gBAAgB,KAAK,GAAG,CAAC,KAAK,GAAG,GAAG,MAAM,CAAC;AAC3C;AACA,YAAY,IAAI,KAAK,KAAK,CAAC,EAAE;AAC7B,gBAAgB,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC;AACjD;AACA,YAAY,MAAM,GAAG,CAAC;AACtB,YAAY,GAAG,EAAE;AACjB;AACA;AACA,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE;AACjC,YAAY;AACZ;AACA;AACA,QAAQ,IAAI,GAAG,GAAG,IAAI,GAAG,MAAM;AAC/B,QAAQ,OAAO,GAAG,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AAChD,YAAY,GAAG,EAAE;AACjB;AACA,QAAQ,IAAI,GAAG,GAAG,IAAI,UAAU,CAAC,MAAM,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC;AACvD,QAAQ,IAAI,CAAC,GAAG,MAAM;AACtB,QAAQ,OAAO,GAAG,KAAK,IAAI,EAAE;AAC7B,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAClC;AACA,QAAQ,OAAO,GAAG;AAClB;AACA;AACA;AACA;AACA,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE;AAC5B,QAAQ,IAAI,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;AACzC,QAAQ,IAAI,MAAM,EAAE;AACpB,YAAY,OAAO,MAAM;AACzB;AACA,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAChD;AACA,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,YAAY,EAAE,YAAY;AAClC,QAAQ,MAAM,EAAE;AAChB,KAAK;AACL;AACA,IAAI,GAAG,GAAG,IAAI;AACd,IAAI,+BAA+B,GAAG,GAAG;;ACrKzC;AACA;AACA;AACA;AACA;AACA,MAAM,OAAO,CAAC;AACd,IAAI,IAAI;AACR,IAAI,MAAM;AACV,IAAI,UAAU;AACd,IAAI,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE;AAC1C,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU;AACpC;AACA,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,IAAI,KAAK,YAAY,UAAU,EAAE;AACzC,YAAY,OAAO,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5D;AACA,aAAa;AACb,YAAY,MAAM,KAAK,CAAC,mCAAmC,CAAC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,OAAO,CAAC;AACd,IAAI,IAAI;AACR,IAAI,MAAM;AACV,IAAI,UAAU;AACd,IAAI,eAAe;AACnB,IAAI,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE;AAC1C,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B;AACA,QAAQ,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;AACjD,YAAY,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;AACvD;AACA,QAAQ,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AACpD,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU;AACpC;AACA,IAAI,MAAM,CAAC,IAAI,EAAE;AACjB,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AACtC,YAAY,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,eAAe,EAAE;AAC9D,gBAAgB,MAAM,KAAK,CAAC,CAAC,kCAAkC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,4CAA4C,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAChK;AACA,YAAY,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAClE;AACA,aAAa;AACb,YAAY,MAAM,KAAK,CAAC,mCAAmC,CAAC;AAC5D;AACA;AACA,IAAI,EAAE,CAAC,OAAO,EAAE;AAChB,QAAQ,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;AAChC;AACA;AACA,MAAM,eAAe,CAAC;AACtB,IAAI,QAAQ;AACZ,IAAI,WAAW,CAAC,QAAQ,EAAE;AAC1B,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC;AACA,IAAI,EAAE,CAAC,OAAO,EAAE;AAChB,QAAQ,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;AAChC;AACA,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;AAC/B,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC7C,QAAQ,IAAI,OAAO,IAAI,IAAI,EAAE;AAC7B,YAAY,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;AACxC;AACA,aAAa;AACb,YAAY,MAAM,UAAU,CAAC,CAAC,kCAAkC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,4BAA4B,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,CAAC;AACjK;AACA;AACA;AACO,SAAS,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE;AAChC;AACA,IAAI,OAAO,IAAI,eAAe,CAAC;AAC/B,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;AACrD,QAAQ,IAAI,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,EAAE;AACvD,KAAK,CAAC;AACN;AACO,MAAM,KAAK,CAAC;AACnB,IAAI,IAAI;AACR,IAAI,MAAM;AACV,IAAI,UAAU;AACd,IAAI,UAAU;AACd,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE;AACtD,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU;AACpC,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU;AACpC,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC;AAC5D,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC;AAC5D;AACA,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;AACzC;AACA,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;AACzC;AACA;AACO,SAAS,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;AACvD,IAAI,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAClD;AACO,SAAS,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;AAClD,IAAI,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAGC,+BAAK,CAAC,QAAQ,EAAE,IAAI,CAAC;AACpD,IAAI,OAAO,IAAI,CAAC;AAChB,QAAQ,MAAM;AACd,QAAQ,IAAI;AACZ,QAAQ,MAAM;AACd,QAAQ,MAAM,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7C,KAAK,CAAC;AACN;AACA,SAASC,QAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE;AACrD;AACA,IAAI,MAAM,KAAK,GAAG,EAAE;AACpB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC9C,QAAQ,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC9B;AACA;AACA,IAAI,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM;AAC3B,IAAI,OAAO,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;AACpC,QAAQ,EAAE,GAAG;AACb;AACA;AACA,IAAI,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,GAAG,WAAW,GAAG,CAAC,IAAI,CAAC,CAAC;AAC3D;AACA,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC;AACjB,IAAI,IAAI,MAAM,GAAG,CAAC,CAAC;AACnB,IAAI,IAAI,OAAO,GAAG,CAAC,CAAC;AACpB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;AAClC;AACA,QAAQ,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACtC,QAAQ,IAAI,KAAK,KAAK,SAAS,EAAE;AACjC,YAAY,MAAM,IAAI,WAAW,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAC1D;AACA;AACA,QAAQ,MAAM,GAAG,CAAC,MAAM,IAAI,WAAW,IAAI,KAAK;AAChD,QAAQ,IAAI,IAAI,WAAW;AAC3B;AACA,QAAQ,IAAI,IAAI,IAAI,CAAC,EAAE;AACvB,YAAY,IAAI,IAAI,CAAC;AACrB,YAAY,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,IAAI,MAAM,IAAI,IAAI,CAAC;AACpD;AACA;AACA;AACA,IAAI,IAAI,IAAI,IAAI,WAAW,IAAI,CAAC,IAAI,IAAI,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AACtE,QAAQ,MAAM,IAAI,WAAW,CAAC,wBAAwB,CAAC;AACvD;AACA,IAAI,OAAO,GAAG;AACd;AACA,SAASC,QAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE;AAC7C,IAAI,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG;AACrD,IAAI,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,WAAW,IAAI,CAAC;AACvC,IAAI,IAAI,GAAG,GAAG,EAAE;AAChB,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC;AACjB,IAAI,IAAI,MAAM,GAAG,CAAC,CAAC;AACnB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC1C;AACA,QAAQ,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AACxC,QAAQ,IAAI,IAAI,CAAC;AACjB;AACA,QAAQ,OAAO,IAAI,GAAG,WAAW,EAAE;AACnC,YAAY,IAAI,IAAI,WAAW;AAC/B,YAAY,GAAG,IAAI,QAAQ,CAAC,IAAI,IAAI,MAAM,IAAI,IAAI,CAAC,CAAC;AACpD;AACA;AACA;AACA,IAAI,IAAI,IAAI,KAAK,CAAC,EAAE;AACpB,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,IAAI,MAAM,KAAK,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC;AAChE;AACA;AACA,IAAI,IAAI,GAAG,EAAE;AACb,QAAQ,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,WAAW,IAAI,CAAC,MAAM,CAAC,EAAE;AACvD,YAAY,GAAG,IAAI,GAAG;AACtB;AACA;AACA,IAAI,OAAO,GAAG;AACd;AACA;AACA;AACA;AACO,SAAS,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE;AACjE,IAAI,OAAO,IAAI,CAAC;AAChB,QAAQ,MAAM;AACd,QAAQ,IAAI;AACZ,QAAQ,MAAM,CAAC,KAAK,EAAE;AACtB,YAAY,OAAOA,QAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC;AACvD,SAAS;AACT,QAAQ,MAAM,CAAC,KAAK,EAAE;AACtB,YAAY,OAAOD,QAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC;AAC7D;AACA,KAAK,CAAC;AACN;;ACvMO,MAAM,MAAM,GAAG,OAAO,CAAC;AAC9B,IAAI,MAAM,EAAE,GAAG;AACf,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,QAAQ,EAAE,kCAAkC;AAChD,IAAI,WAAW,EAAE;AACjB,CAAC,CAAC;AACK,MAAM,WAAW,GAAG,OAAO,CAAC;AACnC,IAAI,MAAM,EAAE,GAAG;AACf,IAAI,IAAI,EAAE,aAAa;AACvB,IAAI,QAAQ,EAAE,kCAAkC;AAChD,IAAI,WAAW,EAAE;AACjB,CAAC,CAAC;AACK,MAAM,SAAS,GAAG,OAAO,CAAC;AACjC,IAAI,MAAM,EAAE,GAAG;AACf,IAAI,IAAI,EAAE,WAAW;AACrB,IAAI,QAAQ,EAAE,mCAAmC;AACjD,IAAI,WAAW,EAAE;AACjB,CAAC,CAAC;AACK,MAAM,cAAc,GAAG,OAAO,CAAC;AACtC,IAAI,MAAM,EAAE,GAAG;AACf,IAAI,IAAI,EAAE,gBAAgB;AAC1B,IAAI,QAAQ,EAAE,mCAAmC;AACjD,IAAI,WAAW,EAAE;AACjB,CAAC,CAAC;AACK,MAAM,SAAS,GAAG,OAAO,CAAC;AACjC,IAAI,MAAM,EAAE,GAAG;AACf,IAAI,IAAI,EAAE,WAAW;AACrB,IAAI,QAAQ,EAAE,kCAAkC;AAChD,IAAI,WAAW,EAAE;AACjB,CAAC,CAAC;AACK,MAAM,cAAc,GAAG,OAAO,CAAC;AACtC,IAAI,MAAM,EAAE,GAAG;AACf,IAAI,IAAI,EAAE,gBAAgB;AAC1B,IAAI,QAAQ,EAAE,kCAAkC;AAChD,IAAI,WAAW,EAAE;AACjB,CAAC,CAAC;AACK,MAAM,YAAY,GAAG,OAAO,CAAC;AACpC,IAAI,MAAM,EAAE,GAAG;AACf,IAAI,IAAI,EAAE,cAAc;AACxB,IAAI,QAAQ,EAAE,mCAAmC;AACjD,IAAI,WAAW,EAAE;AACjB,CAAC,CAAC;AACK,MAAM,iBAAiB,GAAG,OAAO,CAAC;AACzC,IAAI,MAAM,EAAE,GAAG;AACf,IAAI,IAAI,EAAE,mBAAmB;AAC7B,IAAI,QAAQ,EAAE,mCAAmC;AACjD,IAAI,WAAW,EAAE;AACjB,CAAC,CAAC;AACK,MAAM,OAAO,GAAG,OAAO,CAAC;AAC/B,IAAI,MAAM,EAAE,GAAG;AACf,IAAI,IAAI,EAAE,SAAS;AACnB,IAAI,QAAQ,EAAE,kCAAkC;AAChD,IAAI,WAAW,EAAE;AACjB,CAAC,CAAC;;;;;;;;;;;;;;;ACrDK,MAAM,SAAS,GAAG,KAAK,CAAC;AAC/B,IAAI,IAAI,EAAE,WAAW;AACrB,IAAI,MAAM,EAAE,GAAG;AACf,IAAI,QAAQ,EAAE;AACd,CAAC,CAAC;AACK,MAAM,YAAY,GAAG,KAAK,CAAC;AAClC,IAAI,IAAI,EAAE,cAAc;AACxB,IAAI,MAAM,EAAE,GAAG;AACf,IAAI,QAAQ,EAAE;AACd,CAAC,CAAC;;;;;;;;ACVkB,IAAI,WAAW;;ACAf,IAAI,WAAW;;ACoBf,IAAI,WAAW;;ACpBf,CAACE,SAAI,IAAIA,SAAI,CAAC,aAAa,KAAK,UAAU,CAAC,EAAE;AACjE,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC;AAC1F,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;AACtC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;AACpN,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAClK,IAAI,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;AAC9H;AACA,IAAIC,SAAO,GAAG,CAACD,SAAI,IAAIA,SAAI,CAAC,OAAO,KAAK,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,YAAYC,SAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,IAAIA,SAAO,CAAC,CAAC,CAAC,CAAC;AACrG,CAACD,SAAI,IAAIA,SAAI,CAAC,gBAAgB,KAAK,UAAU,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE;AACpG,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC;AAC1F,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE;AACjE,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,aAAa,KAAK,UAAU,GAAG,aAAa,GAAG,MAAM,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC;AAC3N,IAAI,SAAS,WAAW,CAAC,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;AACjG,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1K,IAAI,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AACpF,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,YAAYC,SAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1H,IAAI,SAAS,OAAO,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACpD,IAAI,SAAS,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACpD,IAAI,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpF;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAqBA;AACA,IAAI,EAAE,GAAG,UAAU,EAAE,GAAG,GAAG,WAAW,EAAE,GAAG,GAAG,UAAU;AACxD;AACA,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC,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,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,mBAAmB,CAAC,CAAC,CAAC;AACjJ;AACA,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC,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,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC;AACxI;AACA,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACrF;AACA,IAAI,IAAI,GAAG,UAAU,EAAE,EAAE,KAAK,EAAE;AAChC,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC;AACvB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;AACjC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AACtC;AACA;AACA,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;AACjC,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AAC9C,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;AACxC;AACA;AACA,IAAI,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACzB,CAAC;AACD,IAAIC,IAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,GAAGA,IAAE,CAAC,CAAC,EAAE,KAAK,GAAGA,IAAE,CAAC,CAAC;AAC/C;AACA,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;AAC7B,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC;AAC/C;AACA,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC;AACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC,EAAE;AAChC;AACA,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC;AACrD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC;AACjD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC;AACjD,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,KAAK,CAAC;AAC7D;AACA;AACA;AACA;AACA,IAAI,IAAI,IAAI,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;AACjC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM;AACrB;AACA,IAAI,IAAI,CAAC,GAAG,CAAC;AACb;AACA,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC;AACvB;AACA,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AACvB,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;AACjB,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1B;AACA;AACA,IAAI,IAAI,EAAE,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC;AACxB,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;AAC7B,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AAC3C;AACA,IAAI,IAAI,EAAE;AACV,IAAI,IAAI,CAAC,EAAE;AACX;AACA,QAAQ,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAC7B;AACA,QAAQ,IAAI,GAAG,GAAG,EAAE,GAAG,EAAE;AACzB,QAAQ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAChC;AACA,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;AACvB;AACA,gBAAgB,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACzC;AACA,gBAAgB,IAAI,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACpC;AACA,gBAAgB,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG;AAC9C;AACA,gBAAgB,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;AAChE;AACA,oBAAoB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE;AAC1C;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;AACvB,QAAQ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAChC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;AACvB,gBAAgB,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5D;AACA;AACA;AACA,IAAI,OAAO,EAAE;AACb,CAAC,CAAC;AACF;AACA,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC;AACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC;AAC5B,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AACd,KAAK,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC;AAC9B,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AACd,KAAK,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC;AAC9B,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AACd,KAAK,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC;AAC9B,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AACd;AACA,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC;AACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC;AAC3B,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AACd;AACA,IAAI,GAAG,iBAAiB,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,iBAAiB,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7E;AACA,IAAI,GAAG,iBAAiB,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,iBAAiB,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7E;AACA,IAAI,GAAG,GAAG,UAAU,CAAC,EAAE;AACvB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACvC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACpB,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpB;AACA,IAAI,OAAO,CAAC;AACZ,CAAC;AACD;AACA,IAAI,IAAI,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC9B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AACvB,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACpD,CAAC;AACD;AACA,IAAI,MAAM,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AAC7B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AACvB,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAClE,CAAC;AACD;AACA,IAAI,IAAI,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;AACrD;AACA;AACA,IAAI,GAAG,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC7B,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC;AAC1B,QAAQ,CAAC,GAAG,CAAC;AACb,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM;AACjC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM;AACpB;AACA,IAAI,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACnC,CAAC;AAqBD;AACA,IAAI,EAAE,GAAG;AACT,IAAI,gBAAgB;AACpB,IAAI,oBAAoB;AACxB,IAAI,wBAAwB;AAC5B,IAAI,kBAAkB;AACtB,IAAI,iBAAiB;AACrB,IAAI,mBAAmB;AACvB;AACA,IAAI,aAAa;AACjB,IAAI,oBAAoB;AACxB,IAAI,sBAAsB;AAC1B,IAAI,6BAA6B;AACjC,IAAI,mBAAmB;AACvB,IAAI,kBAAkB;AACtB,IAAI;AACJ;AACA,CAAC;AAED,IAAI,GAAG,GAAG,UAAU,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE;AAClC,IAAI,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;AACrC,IAAI,CAAC,CAAC,IAAI,GAAG,GAAG;AAChB,IAAI,IAAI,KAAK,CAAC,iBAAiB;AAC/B,QAAQ,KAAK,CAAC,iBAAiB,CAAC,CAAC,EAAE,GAAG,CAAC;AACvC,IAAI,IAAI,CAAC,EAAE;AACX,QAAQ,MAAM,CAAC;AACf,IAAI,OAAO,CAAC;AACZ,CAAC;AACD;AACA,IAAI,KAAK,GAAG,UAAU,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE;AAC1C;AACA,IAAI,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,GAAwB,CAAC;AACpD,IAAI,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5B,QAAQ,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;AAC/B,IAAI,IAAI,KAAK,GAAG,CAAC,GAAG;AACpB;AACA,IAAI,IAAI,MAAM,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;AACnC;AACA,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;AACnB;AACA,IAAI,IAAI,KAAK;AACb,QAAQ,GAAG,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5B;AACA,IAAI,IAAI,IAAI,GAAG,UAAU,CAAC,EAAE;AAC5B,QAAQ,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM;AAC3B;AACA,QAAQ,IAAI,CAAC,GAAG,EAAE,EAAE;AACpB;AACA,YAAY,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAClD,YAAY,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AACzB,YAAY,GAAG,GAAG,IAAI;AACtB;AACA,KAAK;AACL;AACA,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;AACxG;AACA,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,CAAC;AACrB,IAAI,GAAG;AACP,QAAQ,IAAI,CAAC,EAAE,EAAE;AACjB;AACA,YAAY,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AACrC;AACA,YAAY,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;AAC5C,YAAY,GAAG,IAAI,CAAC;AACpB,YAAY,IAAI,CAAC,IAAI,EAAE;AACvB;AACA,gBAAgB,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;AACpF,gBAAgB,IAAI,CAAC,GAAG,EAAE,EAAE;AAC5B,oBAAoB,IAAI,IAAI;AAC5B,wBAAwB,GAAG,CAAC,CAAC,CAAC;AAC9B,oBAAoB;AACpB;AACA;AACA,gBAAgB,IAAI,MAAM;AAC1B,oBAAoB,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAChC;AACA,gBAAgB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AAC/C;AACA,gBAAgB,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK;AAChE,gBAAgB;AAChB;AACA,iBAAiB,IAAI,IAAI,IAAI,CAAC;AAC9B,gBAAgB,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC;AACtD,iBAAiB,IAAI,IAAI,IAAI,CAAC,EAAE;AAChC;AACA,gBAAgB,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC;AACxF,gBAAgB,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC;AAC1D,gBAAgB,GAAG,IAAI,EAAE;AACzB;AACA,gBAAgB,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC;AACpC;AACA,gBAAgB,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC;AACpC,gBAAgB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC,EAAE;AAChD;AACA,oBAAoB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC5D;AACA,gBAAgB,GAAG,IAAI,KAAK,GAAG,CAAC;AAChC;AACA,gBAAgB,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;AAC3D;AACA,gBAAgB,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AAC3C,gBAAgB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG;AACzC,oBAAoB,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AACvD;AACA,oBAAoB,GAAG,IAAI,CAAC,GAAG,EAAE;AACjC;AACA,oBAAoB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AAClC;AACA,oBAAoB,IAAI,CAAC,GAAG,EAAE,EAAE;AAChC,wBAAwB,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC;AACpC;AACA,yBAAyB;AACzB;AACA,wBAAwB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;AACxC,wBAAwB,IAAI,CAAC,IAAI,EAAE;AACnC,4BAA4B,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/E,6BAA6B,IAAI,CAAC,IAAI,EAAE;AACxC,4BAA4B,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC;AAC/D,6BAA6B,IAAI,CAAC,IAAI,EAAE;AACxC,4BAA4B,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC;AAClE,wBAAwB,OAAO,CAAC,EAAE;AAClC,4BAA4B,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC;AACxC;AACA;AACA;AACA,gBAAgB,IAAI,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;AACvE;AACA,gBAAgB,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC;AAC7B;AACA,gBAAgB,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC;AAC7B,gBAAgB,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;AACrC,gBAAgB,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;AACrC;AACA;AACA,gBAAgB,GAAG,CAAC,CAAC,CAAC;AACtB,YAAY,IAAI,GAAG,GAAG,IAAI,EAAE;AAC5B,gBAAgB,IAAI,IAAI;AACxB,oBAAoB,GAAG,CAAC,CAAC,CAAC;AAC1B,gBAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,IAAI,MAAM;AAClB,YAAY,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;AACtD,QAAQ,IAAI,IAAI,GAAG,GAAG;AACtB,QAAQ,QAAQ,IAAI,GAAG,GAAG,EAAE;AAC5B;AACA,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;AAC5D,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE;AACzB,YAAY,IAAI,GAAG,GAAG,IAAI,EAAE;AAC5B,gBAAgB,IAAI,IAAI;AACxB,oBAAoB,GAAG,CAAC,CAAC,CAAC;AAC1B,gBAAgB;AAChB;AACA,YAAY,IAAI,CAAC,CAAC;AAClB,gBAAgB,GAAG,CAAC,CAAC,CAAC;AACtB,YAAY,IAAI,GAAG,GAAG,GAAG;AACzB,gBAAgB,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG;AAC/B,iBAAiB,IAAI,GAAG,IAAI,GAAG,EAAE;AACjC,gBAAgB,IAAI,GAAG,GAAG,EAAE,EAAE,GAAG,IAAI;AACrC,gBAAgB;AAChB;AACA,iBAAiB;AACjB,gBAAgB,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG;AACnC;AACA,gBAAgB,IAAI,GAAG,GAAG,GAAG,EAAE;AAC/B;AACA,oBAAoB,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAClD,oBAAoB,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC9D,oBAAoB,GAAG,IAAI,CAAC;AAC5B;AACA;AACA,gBAAgB,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC;AACjE,gBAAgB,IAAI,CAAC,CAAC;AACtB,oBAAoB,GAAG,CAAC,CAAC,CAAC;AAC1B,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE;AAC7B,gBAAgB,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC;AACjC,gBAAgB,IAAI,IAAI,GAAG,CAAC,EAAE;AAC9B,oBAAoB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;AACtC,oBAAoB,EAAE,IAAI,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;AACnE;AACA,gBAAgB,IAAI,GAAG,GAAG,IAAI,EAAE;AAChC,oBAAoB,IAAI,IAAI;AAC5B,wBAAwB,GAAG,CAAC,CAAC,CAAC;AAC9B,oBAAoB;AACpB;AACA,gBAAgB,IAAI,MAAM;AAC1B,oBAAoB,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC;AACrC,gBAAgB,IAAI,GAAG,GAAG,EAAE,GAAG,GAAG;AAClC,gBAAgB,IAAI,EAAE,GAAG,EAAE,EAAE;AAC7B,oBAAoB,IAAI,KAAK,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC;AACjE,oBAAoB,IAAI,KAAK,GAAG,EAAE,GAAG,CAAC;AACtC,wBAAwB,GAAG,CAAC,CAAC,CAAC;AAC9B,oBAAoB,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;AAC1C,wBAAwB,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AAClD;AACA,gBAAgB,OAAO,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE;AACrC,oBAAoB,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;AAC1C;AACA;AACA,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK;AACvD,QAAQ,IAAI,EAAE;AACd,YAAY,KAAK,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG;AACxD,KAAK,QAAQ,CAAC,KAAK;AACnB;AACA,IAAI,OAAO,EAAE,IAAI,GAAG,CAAC,MAAM,IAAI,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC;AAC5E,CAAC;AACD;AACA,IAAI,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC/B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AACf,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AACvB,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACb,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACtB,CAAC;AACD;AACA,IAAI,OAAO,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACjC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AACf,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AACvB,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACb,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACtB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;AACvB,CAAC;AACD;AACA,IAAI,KAAK,GAAG,UAAU,CAAC,EAAE,EAAE,EAAE;AAC7B;AACA,IAAI,IAAI,CAAC,GAAG,EAAE;AACd,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACvC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC;AAChB,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACrC;AACA,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM;AACpB,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE;AACtB,IAAI,IAAI,CAAC,CAAC;AACV,QAAQ,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE;AAC9B,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE;AAChB,QAAQ,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAClC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACrB,QAAQ,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC7B;AACA,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACjD;AACA;AACA,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;AAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC;AAClD,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC9C;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE;AACxB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC;AAC9C,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC;AAC1D,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACrD;AACA,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAChC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM;AAC5B,YAAY,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B;AACA;AACA,IAAI,IAAI,EAAE,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;AAChC;AACA,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAClC,IAAI,IAAI,GAAG,GAAG,EAAE,EAAE;AAClB;AACA;AACA;AACA,QAAQ,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC;AACzB;AACA,QAAQ,IAAI,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,CAAC,IAAI,GAAG;AAC1C,QAAQ,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3E,QAAQ,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC3B,YAAY,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9B,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE;AAC/B,gBAAgB,EAAE,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AACnD,gBAAgB,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;AAC7B;AACA;AACA,gBAAgB;AAChB;AACA,QAAQ,EAAE,KAAK,GAAG;AAClB,QAAQ,OAAO,EAAE,GAAG,CAAC,EAAE;AACvB,YAAY,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9B,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;AAC7B,gBAAgB,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAChD;AACA,gBAAgB,EAAE,CAAC;AACnB;AACA,QAAQ,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;AAClC,YAAY,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9B,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE;AAChC,gBAAgB,EAAE,EAAE,CAAC,IAAI,CAAC;AAC1B,gBAAgB,EAAE,EAAE;AACpB;AACA;AACA,QAAQ,GAAG,GAAG,EAAE;AAChB;AACA,IAAI,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE;AACpC,CAAC;AACD;AACA,IAAI,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5B,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AACnB,UAAU,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACvD,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtB,CAAC;AACD;AACA,IAAI,EAAE,GAAG,UAAU,CAAC,EAAE;AACtB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM;AACpB;AACA,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACvB,QAAQ;AACR,IAAI,IAAI,EAAE,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;AACzB;AACA,IAAI,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC;AACpC,IAAI,IAAI,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;AACjC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACjC,YAAY,EAAE,GAAG;AACjB,aAAa;AACb,YAAY,IAAI,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,EAAE;AACjC,gBAAgB,OAAO,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,GAAG;AAC5C,oBAAoB,CAAC,CAAC,KAAK,CAAC;AAC5B,gBAAgB,IAAI,GAAG,GAAG,CAAC,EAAE;AAC7B,oBAAoB,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;AACtF,oBAAoB,GAAG,GAAG,CAAC;AAC3B;AACA;AACA,iBAAiB,IAAI,GAAG,GAAG,CAAC,EAAE;AAC9B,gBAAgB,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG;AAC7B,gBAAgB,OAAO,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC;AACxC,oBAAoB,CAAC,CAAC,IAAI,CAAC;AAC3B,gBAAgB,IAAI,GAAG,GAAG,CAAC;AAC3B,oBAAoB,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;AACvD;AACA,YAAY,OAAO,GAAG,EAAE;AACxB,gBAAgB,CAAC,CAAC,GAAG,CAAC;AACtB,YAAY,GAAG,GAAG,CAAC;AACnB,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACtB;AACA;AACA,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC3C,CAAC;AACD;AACA,IAAI,IAAI,GAAG,UAAU,EAAE,EAAE,EAAE,EAAE;AAC7B,IAAI,IAAI,CAAC,GAAG,CAAC;AACb,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;AACtC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC1B,IAAI,OAAO,CAAC;AACZ,CAAC;AACD;AACA;AACA,IAAI,KAAK,GAAG,UAAU,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AACrC;AACA,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM;AACtB,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;AACzB,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;AACpB,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AACvB,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG;AAC7B,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG;AACjC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;AAC9B,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAC/B,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;AAC1B,CAAC;AACD;AACA,IAAI,IAAI,GAAG,UAAU,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;AACvE,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC;AAC1B,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC;AACb,IAAI,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;AAClD,IAAI,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;AAClD,IAAI,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;AAC7C,IAAI,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;AAC7C,IAAI,IAAI,MAAM,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC;AAC5B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;AACxC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAC9B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;AACxC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAC9B,IAAI,IAAI,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;AACtD,IAAI,IAAI,IAAI,GAAG,EAAE;AACjB,IAAI,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI;AACnD,QAAQ;AACR,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC;AAC5B,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE;AAClD,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;AACzI,IAAI,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK;AACjD,QAAQ,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;AACvD,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACtB,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC;AAC9C,IAAI,IAAI,KAAK,GAAG,KAAK,EAAE;AACvB,QAAQ,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,GAAG;AAC1E,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;AACpC,QAAQ,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;AAChC,QAAQ,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;AAClC,QAAQ,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,GAAG,CAAC,CAAC;AACpC,QAAQ,CAAC,IAAI,EAAE;AACf,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC;AACrC,YAAY,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI;AACrB,QAAQ,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC;AAC/B,QAAQ,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE;AACvC,YAAY,IAAI,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;AAC/B,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAClD,gBAAgB,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE;AACtC,gBAAgB,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC;AACtD,gBAAgB,IAAI,GAAG,GAAG,EAAE;AAC5B,oBAAoB,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;AAC3E;AACA;AACA;AACA,SAAS;AACT,QAAQ,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG;AAC9C;AACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;AACjC,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;AACzB,QAAQ,IAAI,GAAG,GAAG,GAAG,EAAE;AACvB,YAAY,IAAI,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE;AACtC,YAAY,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;AAC9D,YAAY,IAAI,GAAG,GAAG,CAAC;AACvB,gBAAgB,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC;AAC/D,YAAY,IAAI,GAAG,GAAG,GAAG,GAAG,EAAE;AAC9B,YAAY,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC;AAClD,YAAY,IAAI,GAAG,GAAG,CAAC;AACvB,gBAAgB,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC;AAClE;AACA,aAAa;AACb,YAAY,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC;AAClD;AACA;AACA,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;AAC5B,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC;AACtB,CAAC;AACD;AACA,IAAI,GAAG,iBAAiB,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC5G;AACA,IAAI,EAAE,iBAAiB,IAAI,EAAE,CAAC,CAAC,CAAC;AAChC;AACA,IAAI,IAAI,GAAG,UAAU,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;AACpD,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM;AAC9B,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;AAClE;AACA,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;AAC5C,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC;AAClB,IAAI,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7B,IAAI,IAAI,GAAG,EAAE;AACb,QAAQ,IAAI,GAAG;AACf,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC;AAC5B,QAAQ,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AAC9B,QAAQ,IAAI,CAAC,GAAG,GAAG,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI;AACzC,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;AACnC;AACA,QAAQ,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;AAC5E,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,GAAG,KAAK;AAC1D,QAAQ,IAAI,GAAG,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE;AAC3G;AACA;AACA,QAAQ,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC;AACjC;AACA,QAAQ,IAAI,EAAE,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC;AAC/C;AACA,QAAQ,IAAI,IAAI,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC;AAC3E,QAAQ,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC/B;AACA,YAAY,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;AAC3B;AACA,YAAY,IAAI,IAAI,GAAG,CAAC,GAAG,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC;AAClD,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK;AAC9B,YAAY,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI;AAC3B;AACA;AACA,YAAY,IAAI,EAAE,IAAI,CAAC,EAAE;AACzB;AACA,gBAAgB,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC;AAC/B,gBAAgB,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,GAAG,KAAK,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE;AACxE,oBAAoB,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC;AAChF,oBAAoB,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC;AAC9C,oBAAoB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC;AAChD,wBAAwB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AACjC,oBAAoB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC;AAC/C,wBAAwB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AACjC;AACA;AACA,gBAAgB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK;AACtE,gBAAgB,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE;AACnD,oBAAoB,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;AACnD,oBAAoB,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;AACjD;AACA;AACA,oBAAoB,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;AAC/C,oBAAoB,OAAO,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE;AACnE,wBAAwB,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE;AAC5D,4BAA4B,IAAI,EAAE,GAAG,CAAC;AACtC,4BAA4B,OAAO,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,EAAE;AACpF,gCAAgC;AAChC,4BAA4B,IAAI,EAAE,GAAG,CAAC,EAAE;AACxC,gCAAgC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG;AAC/C;AACA,gCAAgC,IAAI,EAAE,GAAG,IAAI;AAC7C,oCAAoC;AACpC;AACA;AACA;AACA,gCAAgC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;AAC/D,gCAAgC,IAAI,EAAE,GAAG,CAAC;AAC1C,gCAAgC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;AAC9D,oCAAoC,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK;AAChE,oCAAoC,IAAI,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;AACtD,oCAAoC,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,KAAK;AAC7D,oCAAoC,IAAI,EAAE,GAAG,EAAE;AAC/C,wCAAwC,EAAE,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE;AAC3D;AACA;AACA;AACA;AACA,wBAAwB,IAAI,GAAG,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;AACxD,wBAAwB,GAAG,IAAI,IAAI,GAAG,KAAK,GAAG,KAAK;AACnD;AACA;AACA;AACA,gBAAgB,IAAI,CAAC,EAAE;AACvB;AACA;AACA,oBAAoB,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;AACxE,oBAAoB,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE;AAChE,oBAAoB,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;AAC/C,oBAAoB,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;AACnC,oBAAoB,EAAE,EAAE,CAAC,GAAG,CAAC;AAC7B,oBAAoB,EAAE,GAAG,CAAC,GAAG,CAAC;AAC9B,oBAAoB,EAAE,IAAI;AAC1B;AACA,qBAAqB;AACrB,oBAAoB,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACvC,oBAAoB,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChC;AACA;AACA;AACA,QAAQ,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC9C,YAAY,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAC/B,YAAY,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxB;AACA,QAAQ,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC;AACtE,QAAQ,IAAI,CAAC,GAAG,EAAE;AAClB,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;AACpD;AACA,YAAY,GAAG,IAAI,CAAC;AACpB,YAAY,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE;AACzD;AACA;AACA,SAAS;AACT,QAAQ,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,KAAK,EAAE;AACzD;AACA,YAAY,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK;AAC7B,YAAY,IAAI,CAAC,IAAI,CAAC,EAAE;AACxB;AACA,gBAAgB,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG;AACtC,gBAAgB,CAAC,GAAG,CAAC;AACrB;AACA,YAAY,GAAG,GAAG,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvD;AACA,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC;AAChB;AACA,IAAI,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAC5C,CAAC;AA0BD;AACA,IAAI,KAAK,GAAG,YAAY;AACxB,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;AACpB,IAAI,OAAO;AACX,QAAQ,CAAC,EAAE,UAAU,CAAC,EAAE;AACxB;AACA,YAAY,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;AAC5B,YAAY,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC;AAChC,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;AACrC,gBAAgB,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;AAC7C,gBAAgB,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;AACjC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClC,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AAClF;AACA,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;AACxB,SAAS;AACT,QAAQ,CAAC,EAAE,YAAY;AACvB,YAAY,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,KAAK;AAClC,YAAY,OAAO,CAAC,CAAC,GAAG,GAAG,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClF;AACA,KAAK;AACL,CAAC;AAED;AACA,IAAI,IAAI,GAAG,UAAU,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;AAC9C,IAAI,IAAI,CAAC,EAAE,EAAE;AACb,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;AACrB,QAAQ,IAAI,GAAG,CAAC,UAAU,EAAE;AAC5B,YAAY,IAAI,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;AACtD,YAAY,IAAI,MAAM,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AACzD,YAAY,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5B,YAAY,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC;AACxC,YAAY,GAAG,GAAG,MAAM;AACxB,YAAY,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM;AAC9B;AACA;AACA,IAAI,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;AACzL,CAAC;AAkJD;AACA,IAAI,MAAM,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAChC,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;AACjB,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC;AAC1B,CAAC;AAiCD;AACA,IAAI,GAAG,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AAC1B,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AACrE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC;AACvD,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC1C,IAAI,IAAI,CAAC,CAAC,UAAU,EAAE;AACtB,QAAQ,IAAI,CAAC,GAAG,KAAK,EAAE;AACvB,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;AACzB,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3B;AACA,CAAC;AACD;AACA,IAAI,GAAG,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE;AAC7B,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACxE,QAAQ,GAAG,CAAC,CAAC,EAAE,mBAAmB,CAAC;AACnC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI;AACjC,QAAQ,GAAG,CAAC,CAAC,EAAE,qBAAqB,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,MAAM,GAAG,YAAY,CAAC,GAAG,aAAa,CAAC;AAC3F,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AAC9B,CAAC;AAOD;AACA;AACA;AACA,IAAI,OAAO,kBAAkB,YAAY;AACzC,IAAI,SAAS,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE;AAC/B,QAAQ,IAAI,OAAO,IAAI,IAAI,UAAU;AACrC,YAAY,EAAE,GAAG,IAAI,EAAE,IAAI,GAAG,EAAE;AAChC,QAAQ,IAAI,CAAC,MAAM,GAAG,EAAE;AACxB,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE;AAC3B,QAAQ,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE;AACvD;AACA;AACA,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC;AAC9B,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE;AAC/B,YAAY,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;AACzD,YAAY,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;AACjD,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM;AAC1C;AACA;AACA,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AAC1C,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACrD,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,KAAK,EAAE,KAAK,EAAE;AACrD,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM;AACxB,YAAY,GAAG,CAAC,CAAC,CAAC;AAClB,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,YAAY,GAAG,CAAC,CAAC,CAAC;AAClB,QAAQ,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5C,QAAQ,IAAI,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE;AACpC,YAAY,IAAI,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,EAAE;AACpD,gBAAgB,IAAI,MAAM,GAAG,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;AACpD,gBAAgB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,gBAAgB,IAAI,CAAC,CAAC,GAAG,MAAM;AAC/B;AACA,YAAY,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAChD,YAAY,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM;AACpC,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC;AACjC,YAAY,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;AAC/C,YAAY,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;AACpD,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,GAAG,KAAK;AACnD,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK;AAC9C;AACA,aAAa;AACb,YAAY,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM;AACpC;AACA,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;AAC5B,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE;AACjD,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,KAAK,CAAC;AAC1C,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;AAC1C,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM;AACxB,YAAY,GAAG,CAAC,CAAC,CAAC;AAClB,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,YAAY,GAAG,CAAC,CAAC,CAAC;AAClB,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC;AAC7B,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1C,KAAK;AACL,IAAI,OAAO,OAAO;AAClB,CAAC,EAAE,CAAC;AAoCJ;AACA;AACA;AACA,IAAI,OAAO,kBAAkB,YAAY;AACzC,IAAI,SAAS,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE;AAC/B;AACA,QAAQ,IAAI,OAAO,IAAI,IAAI,UAAU;AACrC,YAAY,EAAE,GAAG,IAAI,EAAE,IAAI,GAAG,EAAE;AAChC,QAAQ,IAAI,CAAC,MAAM,GAAG,EAAE;AACxB,QAAQ,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;AAC9E,QAAQ,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACpD,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC;AAC9B,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;AAC1B,QAAQ,IAAI,IAAI;AAChB,YAAY,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5B;AACA,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE;AACvC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM;AACxB,YAAY,GAAG,CAAC,CAAC,CAAC;AAClB,QAAQ,IAAI,IAAI,CAAC,CAAC;AAClB,YAAY,GAAG,CAAC,CAAC,CAAC;AAClB,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;AAC1B,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC;AACtB,aAAa,IAAI,CAAC,CAAC,MAAM,EAAE;AAC3B,YAAY,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AACpD,YAAY,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC;AAC9D;AACA,KAAK;AACL,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,UAAU,KAAK,EAAE;AAC3C,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC;AAC7C,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1B,QAAQ,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC9C,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACnD,QAAQ,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM;AACpE,QAAQ,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,KAAK,EAAE,KAAK,EAAE;AACrD,QAAQ,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AACpC,KAAK;AACL,IAAI,OAAO,OAAO;AAClB,CAAC,EAAE,CAAC;AA0MJ;AACA;AACA;AACA,IAAI,IAAI,kBAAkB,YAAY;AACtC,IAAI,SAAS,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE;AAC5B,QAAQ,IAAI,CAAC,CAAC,GAAG,KAAK,EAAE;AACxB,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC;AAClB,QAAQ,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,KAAK,EAAE,KAAK,EAAE;AAClD,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACvB,QAAQ,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC;AACvD,KAAK;AACL,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AACvC,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACxF,QAAQ,IAAI,IAAI,CAAC,CAAC;AAClB,YAAY,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC;AACxC,QAAQ,IAAI,CAAC;AACb,YAAY,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACnD,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3B,KAAK;AACL;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;AACvC,QAAQ,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1C,KAAK;AACL,IAAI,OAAO,IAAI;AACf,CAAC,EAAE,CAAC;AA4CJ;AACA;AACA;AACA,IAAI,MAAM,kBAAkB,YAAY;AACxC,IAAI,SAAS,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE;AAC9B,QAAQ,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;AACpC,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,KAAK,EAAE,KAAK,EAAE;AACpD,QAAQ,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AAC7C,QAAQ,IAAI,IAAI,CAAC,CAAC,EAAE;AACpB,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK;AAC3C,gBAAgB;AAChB,YAAY,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC;AACzE;AACA,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC;AACjC,gBAAgB,GAAG,CAAC,CAAC,EAAE,mBAAmB,CAAC;AAC3C,YAAY,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3C;AACA;AACA;AACA,QAAQ,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AAC7C,KAAK;AACL,IAAI,OAAO,MAAM;AACjB,CAAC,EAAE,CAAC;AAsKJ;AACA,IAAI,EAAE,GAAG,OAAO,WAAW,IAAI,WAAW,kBAAkB,IAAI,WAAW,EAAE;AAC7E;AACA,IAAI,GAAG,GAAG,CAAC;AACX,IAAI;AACJ,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACnC,IAAI,GAAG,GAAG,CAAC;AACX;AACA,OAAO,CAAC,EAAE;;ACxnDV;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACO,SAAS,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE;AACtC,IAAI,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC;AAC/B;;ACdA;AAEA,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;AAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;AAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;AAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;AAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;AAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;AAC1B;AACA,MAAM,GAAG,GAAG,IAAI;AAChB;AACA,MAAM,IAAI,GAAG,IAAI;AACV,SAAS,cAAc,CAAC,KAAK,EAAE;AACtC,IAAI,IAAI,KAAK,GAAG,EAAE,EAAE;AACpB,QAAQ,OAAO,CAAC;AAChB;AACA,IAAI,IAAI,KAAK,GAAG,EAAE,EAAE;AACpB,QAAQ,OAAO,CAAC;AAChB;AACA,IAAI,IAAI,KAAK,GAAG,EAAE,EAAE;AACpB,QAAQ,OAAO,CAAC;AAChB;AACA,IAAI,IAAI,KAAK,GAAG,EAAE,EAAE;AACpB,QAAQ,OAAO,CAAC;AAChB;AACA,IAAI,IAAI,KAAK,GAAG,EAAE,EAAE;AACpB,QAAQ,OAAO,CAAC;AAChB;AACA,IAAI,IAAI,KAAK,GAAG,EAAE,EAAE;AACpB,QAAQ,OAAO,CAAC;AAChB;AACA,IAAI,IAAI,KAAK,GAAG,EAAE,EAAE;AACpB,QAAQ,OAAO,CAAC;AAChB;AACA,IAAI,IAAI,MAAM,CAAC,gBAAgB,IAAI,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,gBAAgB,EAAE;AAC5E,QAAQ,MAAM,IAAI,UAAU,CAAC,yBAAyB,CAAC;AACvD;AACA,IAAI,OAAO,CAAC;AACZ;AACO,SAAS,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE;AACzD,IAAI,QAAQ,cAAc,CAAC,KAAK,CAAC;AACjC,QAAQ,KAAK,CAAC,EAAE;AAChB,YAAY,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,IAAI,GAAG;AAChD,YAAY,KAAK,IAAI,GAAG;AACxB;AACA,QAAQ,KAAK,CAAC,EAAE;AAChB,YAAY,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,IAAI,GAAG;AAChD,YAAY,KAAK,IAAI,GAAG;AACxB;AACA,QAAQ,KAAK,CAAC,EAAE;AAChB,YAAY,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,IAAI,GAAG;AAChD,YAAY,KAAK,IAAI,GAAG;AACxB;AACA,QAAQ,KAAK,CAAC,EAAE;AAChB,YAAY,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,IAAI,GAAG;AAChD,YAAY,KAAK,IAAI,GAAG;AACxB;AACA,QAAQ,KAAK,CAAC,EAAE;AAChB,YAAY,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,IAAI,GAAG;AAChD,YAAY,KAAK,MAAM,CAAC;AACxB;AACA,QAAQ,KAAK,CAAC,EAAE;AAChB,YAAY,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,IAAI,GAAG;AAChD,YAAY,KAAK,MAAM,CAAC;AACxB;AACA,QAAQ,KAAK,CAAC,EAAE;AAChB,YAAY,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,IAAI,GAAG;AAChD,YAAY,KAAK,MAAM,CAAC;AACxB;AACA,QAAQ,KAAK,CAAC,EAAE;AAChB,YAAY,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC;AAC1C,YAAY,KAAK,MAAM,CAAC;AACxB,YAAY;AACZ;AACA,QAAQ,SAAS,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC;AAC/C;AACA,IAAI,OAAO,GAAG;AACd;AAwCO,SAAS,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE;AAC9C,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;AACvB,IAAI,IAAI,GAAG,GAAG,CAAC;AACf,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI;AACnB,IAAI,IAAI,CAAC,GAAG,GAAG,EAAE;AACjB,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;AACvB,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC;AAC1B,IAAI,IAAI,CAAC,GAAG,GAAG,EAAE;AACjB,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;AACvB,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,EAAE;AAC3B,IAAI,IAAI,CAAC,GAAG,GAAG,EAAE;AACjB,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;AACvB,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,EAAE;AAC3B,IAAI,IAAI,CAAC,GAAG,GAAG,EAAE;AACjB,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;AACvB,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE;AAC1B,IAAI,IAAI,CAAC,GAAG,GAAG,EAAE;AACjB,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;AACvB,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE;AAC1B,IAAI,IAAI,CAAC,GAAG,GAAG,EAAE;AACjB,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;AACvB,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE;AAC1B,IAAI,IAAI,CAAC,GAAG,GAAG,EAAE;AACjB,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;AACvB,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE;AAC1B,IAAI,IAAI,CAAC,GAAG,GAAG,EAAE;AACjB,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,MAAM,IAAI,UAAU,CAAC,yBAAyB,CAAC;AACnD;;ACjKA,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;AACtC;AACA;AACA;AACO,SAAS,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAC5C,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG;AAChB,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACrB,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACzB,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACzB,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACzB;AAWA;AACA;AACA;AACO,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE;AACtC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;AACrB,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AACzB,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AACzB,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AACzB,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;AACjB;AAWA,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;AACtC;AACA;AACA;AACO,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAC7C,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG;AAChB,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACrB,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACzB,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACzB,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACzB,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACzB,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACzB,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACzB,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACzB;AAeA;AACA;AACA;AACO,SAAS,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE;AACvC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;AACrB,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AACzB,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AACzB,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AACzB,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AACzB,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AACzB,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AACzB,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AACzB,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;AACjB;;ACrFA;AACA,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;AAC/D,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,QAAQ,CAAC;AACtB,IAAI,EAAE;AACN,IAAI,EAAE;AACN,IAAI,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE;AACxB;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;AACxB;AACA;AACA;AACA,QAAQ,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;AACxB;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,QAAQ,GAAG,KAAK,EAAE;AAC/B,QAAQ,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE;AAC/C,YAAY,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC;AACzC,YAAY,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC;AACnC,YAAY,IAAI,EAAE,KAAK,CAAC,EAAE;AAC1B,gBAAgB,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC;AACjC;AACA,YAAY,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC;AAC1C;AACA,QAAQ,OAAO,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,UAAU;AAC7C;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,QAAQ,GAAG,KAAK,EAAE;AAC/B,QAAQ,IAAI,QAAQ,EAAE;AACtB,YAAY,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC;AACzE;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE;AACpC,YAAY,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC;AACzC,YAAY,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC;AACnC,YAAY,IAAI,EAAE,KAAK,CAAC,EAAE;AAC1B,gBAAgB,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC;AACjC;AACA,YAAY,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC;AACtD;AACA,QAAQ,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC;AACrE;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,QAAQ,GAAG,KAAK,EAAE;AAC/B,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE;AACjD;AACA;AACA;AACA;AACA,IAAI,QAAQ,GAAG;AACf,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE;AAClC,QAAQ,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,IAAI,MAAM,CAAC;AAChE,QAAQ,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC;AAC7C,QAAQ,OAAO,IAAI;AACnB;AACA;AACA;AACA;AACA,IAAI,QAAQ,GAAG;AACf,QAAQ,MAAM,IAAI,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AACnC,QAAQ,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,MAAM,CAAC;AAChE,QAAQ,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,MAAM,CAAC;AAC9C,QAAQ,OAAO,IAAI;AACnB;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE;AAC7B,QAAQ,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;AAC3D,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,KAAK,EAAE;AACpC,QAAQ,OAAO,KAAK,KAAK;AACzB,cAAc,KAAK,KAAK;AACxB,kBAAkB,KAAK,GAAG;AAC1B,sBAAsB,KAAK,GAAG,GAAG,GAAG,CAAC,GAAG;AACxC,sBAAsB,KAAK,GAAG,OAAO,GAAG,CAAC,GAAG;AAC5C,kBAAkB,KAAK,GAAG;AAC1B,sBAAsB,KAAK,GAAG,GAAG,GAAG,CAAC,GAAG;AACxC,sBAAsB,KAAK,GAAG,OAAO,GAAG,CAAC,GAAG;AAC5C,cAAc,KAAK,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE;AAClC;AACA;AACA;AACA;AACA,IAAI,OAAO,UAAU,CAAC,KAAK,EAAE;AAC7B,QAAQ,IAAI,KAAK,KAAK,EAAE,EAAE;AAC1B,YAAY,OAAOC,MAAI;AACvB;AACA,QAAQ,IAAI,KAAK,GAAG,uBAAuB,IAAI,KAAK,GAAG,uBAAuB,EAAE;AAChF,YAAY,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACjD;AACA,QAAQ,MAAM,QAAQ,GAAG,KAAK,GAAG,EAAE;AACnC,QAAQ,IAAI,QAAQ,EAAE;AACtB,YAAY,KAAK,GAAG,CAAC,KAAK;AAC1B;AACA,QAAQ,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG;AAC7B,QAAQ,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE,IAAI,GAAG,CAAC;AACpC,QAAQ,IAAI,QAAQ,EAAE;AACtB,YAAY,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE;AACzB,YAAY,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE;AACzB,YAAY,IAAI,EAAE,EAAE,GAAG,MAAM,EAAE;AAC/B,gBAAgB,EAAE,GAAG,EAAE;AACvB,gBAAgB,IAAI,EAAE,EAAE,GAAG,MAAM,EAAE;AACnC,oBAAoB,EAAE,GAAG,EAAE;AAC3B;AACA;AACA;AACA,QAAQ,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AACnD;AACA;AACA;AACA;AACA,IAAI,OAAO,UAAU,CAAC,KAAK,EAAE;AAC7B,QAAQ,IAAI,KAAK,KAAK,CAAC,EAAE;AACzB,YAAY,OAAOA,MAAI;AACvB;AACA,QAAQ,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC;AAC9B,QAAQ,IAAI,IAAI,EAAE;AAClB,YAAY,KAAK,GAAG,CAAC,KAAK;AAC1B;AACA,QAAQ,IAAI,EAAE,GAAG,KAAK,KAAK,CAAC;AAC5B,QAAQ,IAAI,EAAE,GAAG,CAAC,KAAK,GAAG,EAAE,IAAI,UAAU,KAAK,CAAC;AAChD,QAAQ,IAAI,IAAI,EAAE;AAClB,YAAY,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC;AAC1B,YAAY,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC;AAC1B,YAAY,IAAI,EAAE,EAAE,GAAG,UAAU,EAAE;AACnC,gBAAgB,EAAE,GAAG,CAAC;AACtB,gBAAgB,IAAI,EAAE,EAAE,GAAG,UAAU,EAAE;AACvC,oBAAoB,EAAE,GAAG,CAAC;AAC1B;AACA;AACA;AACA,QAAQ,OAAO,IAAI,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;AACnC;AACA;AACA;AACA;AACA,IAAI,OAAO,IAAI,CAAC,KAAK,EAAE;AACvB,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACvC,YAAY,OAAO,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC;AAC7C;AACA,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACvC,YAAY,OAAO,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC;AAC7C;AACA,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACvC,YAAY,OAAO,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACrD;AACA,QAAQ,OAAO,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,GAAGA,MAAI;AAC/G;AACA;AACA,MAAMA,MAAI,GAAG,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;AAC/BA,MAAI,CAAC,QAAQ,GAAG,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE;AAC1CA,MAAI,CAAC,QAAQ,GAAGA,MAAI,CAAC,QAAQ,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE;AAC5DA,MAAI,CAAC,MAAM,GAAG,YAAY,EAAE,OAAO,CAAC,CAAC,EAAE;AACvC,MAAM,MAAM,GAAG,WAAW;;AC5K1B;AACA;AACA;AACO,SAAS,MAAM,CAAC,MAAM,EAAE;AAC/B,IAAI,IAAI,GAAG,GAAG,CAAC;AACf,IAAI,IAAI,CAAC,GAAG,CAAC;AACb,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC5C,QAAQ,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AAChC,QAAQ,IAAI,CAAC,GAAG,GAAG,EAAE;AACrB,YAAY,GAAG,IAAI,CAAC;AACpB;AACA,aAAa,IAAI,CAAC,GAAG,IAAI,EAAE;AAC3B,YAAY,GAAG,IAAI,CAAC;AACpB;AACA,aAAa,IAAI,CAAC,CAAC,GAAG,MAAM,MAAM,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,MAAM,MAAM,EAAE;AAC5F,YAAY,EAAE,CAAC;AACf,YAAY,GAAG,IAAI,CAAC;AACpB;AACA,aAAa;AACb,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA,IAAI,OAAO,GAAG;AACd;AACA;AACA;AACA;AACO,SAAS,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE;AACzC,IAAI,MAAM,GAAG,GAAG,GAAG,GAAG,KAAK;AAC3B,IAAI,IAAI,GAAG,GAAG,CAAC,EAAE;AACjB,QAAQ,OAAO,EAAE;AACjB;AACA,IAAI,IAAI,KAAK;AACb,IAAI,MAAM,KAAK,GAAG,EAAE;AACpB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,IAAI,IAAI,CAAC,CAAC;AACV,IAAI,OAAO,KAAK,GAAG,GAAG,EAAE;AACxB,QAAQ,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;AAC3B,QAAQ,IAAI,CAAC,GAAG,GAAG,EAAE;AACrB,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC;AAC1B;AACA,aAAa,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE;AACrC,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE;AAC7D;AACA,aAAa,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE;AACrC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,IAAI,OAAO;AAC7H,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AAC3C,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;AAC5C;AACA,aAAa;AACb,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE;AAC5F;AACA,QAAQ,IAAI,CAAC,GAAG,IAAI,EAAE;AACtB,YAAY,CAAC,KAAK,KAAK,KAAK,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAClF,YAAY,CAAC,GAAG,CAAC;AACjB;AACA;AACA,IAAI,IAAI,KAAK,IAAI,IAAI,EAAE;AACvB,QAAQ,IAAI,CAAC,GAAG,CAAC,EAAE;AACnB,YAAY,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5E;AACA,QAAQ,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AAC7B;AACA,IAAI,OAAO,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/D;AACA;AACA;AACA;AACO,SAAS,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;AAC9C,IAAI,MAAM,KAAK,GAAG,MAAM;AACxB,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC5C,QAAQ,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AACjC,QAAQ,IAAI,EAAE,GAAG,GAAG,EAAE;AACtB,YAAY,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;AACjC;AACA,aAAa,IAAI,EAAE,GAAG,IAAI,EAAE;AAC5B,YAAY,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG;AAC5C,YAAY,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG;AAC5C;AACA,aAAa,IAAI,CAAC,EAAE,GAAG,MAAM,MAAM,MAAM,IAAI,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,MAAM,MAAM,EAAE;AACpG,YAAY,EAAE,GAAG,OAAO,IAAI,CAAC,EAAE,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC;AAChE,YAAY,EAAE,CAAC;AACf,YAAY,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG;AAC7C,YAAY,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG;AAClD,YAAY,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG;AACjD,YAAY,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG;AAC5C;AACA,aAAa;AACb,YAAY,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG;AAC7C,YAAY,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG;AACjD,YAAY,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG;AAC5C;AACA;AACA,IAAI,OAAO,MAAM,GAAG,KAAK;AACzB;;AC5FA;AACA,SAAS,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE;AAC9C,IAAI,OAAO,UAAU,CAAC,CAAC,oBAAoB,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAChG;AACA,SAAS,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE;AAClC,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AACxB,QAAQ,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC;AACzB,QAAQ,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE;AAC1B,QAAQ,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC;AACjC;AACA;AACA;AACA;AACO,MAAM,gBAAgB,CAAC;AAC9B,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,QAAQ;AAC1C,IAAI,WAAW,CAAC,MAAM,EAAE;AACxB;AACA;AACA;AACA,QAAQ,IAAI,CAAC,GAAG,GAAG,MAAM;AACzB;AACA;AACA;AACA,QAAQ,IAAI,CAAC,GAAG,GAAG,CAAC;AACpB;AACA;AACA;AACA,QAAQ,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM;AAChC;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,IAAI,KAAK,GAAG,UAAU;AAC9B,QAAQ,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC;AAChD,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG;AACtC,YAAY,OAAO,KAAK;AACxB,QAAQ,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;AAC/D,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG;AACtC,YAAY,OAAO,KAAK;AACxB,QAAQ,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,EAAE,MAAM,CAAC;AAChE,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG;AACtC,YAAY,OAAO,KAAK;AACxB,QAAQ,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,EAAE,MAAM,CAAC;AAChE,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG;AACtC,YAAY,OAAO,KAAK;AACxB,QAAQ,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC;AAC/D,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG;AACtC,YAAY,OAAO,KAAK;AACxB,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE;AACxC,YAAY,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;AAC/B,YAAY,MAAM,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC;AAC3C;AACA,QAAQ,OAAO,KAAK;AACpB;AACA;AACA;AACA;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC;AAChC;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE;AACnC,QAAQ,OAAO,KAAK,KAAK,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;AAC7C;AACA;AACA;AACA;AACA,IAAI,IAAI,GAAG;AACX,QAAQ,OAAO,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;AAClC;AACA;AACA;AACA;AACA,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE;AACrC,YAAY,MAAM,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;AAC1C;AACA,QAAQ,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAC3D,QAAQ,OAAO,GAAG;AAClB;AACA;AACA;AACA;AACA,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE;AACrC,YAAY,MAAM,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;AAC1C;AACA,QAAQ,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC;AAC/D,QAAQ,OAAO,GAAG;AAClB;AACA;AACA;AACA;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE;AACrC,YAAY,MAAM,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;AAC1C;AACA,QAAQ,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;AACrD,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC;AACrB,QAAQ,OAAO,KAAK;AACpB;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG;AACb;AACA,QAAQ,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE;AACrC,YAAY,MAAM,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;AAC1C;AACA,QAAQ,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;AACtD,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC;AACrB,QAAQ,OAAO,KAAK;AACpB;AACA;AACA;AACA;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AACpC,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG;AAC9B,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,MAAM;AACrC;AACA,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;AAC5B,YAAY,MAAM,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC;AAC/C;AACA,QAAQ,IAAI,CAAC,GAAG,IAAI,MAAM;AAC1B,QAAQ,OAAO,KAAK,KAAK,GAAG;AAC5B,cAAc,IAAI,UAAU,CAAC,CAAC;AAC9B,cAAc,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC;AAC3C;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAClC,QAAQ,OAAOC,IAAS,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC;AAChD;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AACxC;AACA,YAAY,IAAI,IAAI,CAAC,GAAG,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE;AAC9C,gBAAgB,MAAM,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC;AACnD;AACA,YAAY,IAAI,CAAC,GAAG,IAAI,MAAM;AAC9B;AACA,aAAa;AACb,YAAY,GAAG;AACf;AACA,gBAAgB,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE;AAC1C,oBAAoB,MAAM,eAAe,CAAC,IAAI,CAAC;AAC/C;AACA,aAAa,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC;AACvD;AACA,QAAQ,OAAO,IAAI;AACnB;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,QAAQ,EAAE;AACvB,QAAQ,QAAQ,QAAQ;AACxB,YAAY,KAAK,CAAC;AAClB,gBAAgB,IAAI,CAAC,IAAI,EAAE;AAC3B,gBAAgB;AAChB,YAAY,KAAK,CAAC;AAClB,gBAAgB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5B,gBAAgB;AAChB,YAAY,KAAK,CAAC;AAClB,gBAAgB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;AACxC,gBAAgB;AAChB,YAAY,KAAK,CAAC;AAClB,gBAAgB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE;AAC7D,oBAAoB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC3C;AACA,gBAAgB;AAChB,YAAY,KAAK,CAAC;AAClB,gBAAgB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5B,gBAAgB;AAChB;AACA,YAAY;AACZ,gBAAgB,MAAM,KAAK,CAAC,CAAC,kBAAkB,EAAE,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAClF;AACA,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,cAAc,GAAG;AACrB;AACA,QAAQ,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;AACvC,QAAQ,IAAI,CAAC,GAAG,CAAC;AACjB,QAAQ,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE;AACrC,YAAY,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC/B;AACA,gBAAgB,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;AAC/E,gBAAgB,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE;AAChD,oBAAoB,OAAO,IAAI;AAC/B;AACA;AACA;AACA,YAAY,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,EAAE,MAAM,CAAC;AACxE,YAAY,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;AACvE,YAAY,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE;AAC5C,gBAAgB,OAAO,IAAI;AAC3B;AACA,YAAY,CAAC,GAAG,CAAC;AACjB;AACA,aAAa;AACb,YAAY,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC/B;AACA,gBAAgB,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE;AAC1C,oBAAoB,MAAM,eAAe,CAAC,IAAI,CAAC;AAC/C;AACA;AACA,gBAAgB,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;AAC/E,gBAAgB,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE;AAChD,oBAAoB,OAAO,IAAI;AAC/B;AACA;AACA;AACA,YAAY,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;AAC7E,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE;AACrC,YAAY,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC/B;AACA,gBAAgB,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;AACnF,gBAAgB,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE;AAChD,oBAAoB,OAAO,IAAI;AAC/B;AACA;AACA;AACA,aAAa;AACb,YAAY,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC/B,gBAAgB,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE;AAC1C,oBAAoB,MAAM,eAAe,CAAC,IAAI,CAAC;AAC/C;AACA;AACA,gBAAgB,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;AACnF,gBAAgB,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE;AAChD,oBAAoB,OAAO,IAAI;AAC/B;AACA;AACA;AACA,QAAQ,MAAM,KAAK,CAAC,yBAAyB,CAAC;AAC9C;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE;AACrC,YAAY,MAAM,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;AAC1C;AACA,QAAQ,MAAM,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAC1D,QAAQ,MAAM,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAC1D,QAAQ,OAAO,IAAI,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;AACnC;AACA;AACA;AACA;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE;AAC/C;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE;AAC/C;AACA;AACA;AACA;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE;AAC/C;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;AACnD;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,GAAG;AACnB,QAAQ,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;AAC1D,QAAQ,IAAI,CAAC,GAAG,IAAI,cAAc,CAAC,KAAK,CAAC;AACzC,QAAQ,OAAO,KAAK;AACpB;AACA;AACA;AACA;AACA,IAAI,YAAY,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;AACnD;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;AAC1D;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;AAC1D;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;AAC1D;AACA;AACA;AACA;AACA,IAAI,OAAO,GAAG;AACd,QAAQ,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;AAC5C;AACA;AACA;AACA;AACA,IAAI,aAAa,GAAG;AACpB,QAAQ,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;AAC5C;AACA;AACA;AACA;AACA,IAAI,aAAa,GAAG;AACpB,QAAQ,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;AAC5C;AACA;AACA;AACA;AACA,IAAI,QAAQ,GAAG;AACf,QAAQ,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;AAC5C;AACA;AACA;AACA;AACA;AACA,IAAI,cAAc,GAAG;AACrB,QAAQ,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;AAC5C;AACA;AACA;AACA;AACA,IAAI,cAAc,GAAG;AACrB,QAAQ,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;AAC5C;AACA;AACO,SAAS,YAAY,CAAC,GAAG,EAAE;AAClC,IAAI,OAAO,IAAI,gBAAgB,CAAC,GAAG,YAAY,UAAU,GAAG,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;AACjF;;AC1WO,SAAS,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE;AAChD,IAAI,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC;AACpC,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC;AAChD;;ACHO,MAAM,MAAM,GAAG,KAAK,CAAC;AAC5B,IAAI,MAAM,EAAE,GAAG;AACf,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,QAAQ,EAAE;AACd,CAAC,CAAC;;;;;;;ACJK,MAAM,MAAM,GAAG,OAAO,CAAC;AAC9B,IAAI,MAAM,EAAE,GAAG;AACf,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,QAAQ,EAAE,kBAAkB;AAChC,IAAI,WAAW,EAAE;AACjB,CAAC,CAAC;AACK,MAAM,WAAW,GAAG,OAAO,CAAC;AACnC,IAAI,MAAM,EAAE,GAAG;AACf,IAAI,IAAI,EAAE,aAAa;AACvB,IAAI,QAAQ,EAAE,kBAAkB;AAChC,IAAI,WAAW,EAAE;AACjB,CAAC,CAAC;;;;;;;;ACXK,MAAM,KAAK,GAAG,OAAO,CAAC;AAC7B,IAAI,MAAM,EAAE,GAAG;AACf,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,QAAQ,EAAE,IAAI;AAClB,IAAI,WAAW,EAAE;AACjB,CAAC,CAAC;;;;;;;ACLF,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,weAAwe,CAAC;AACrgB,MAAM,oBAAoB,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;AAC1F,MAAM,oBAAoB,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;AACzG,SAAS,MAAM,CAAC,IAAI,EAAE;AACtB,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK;AACjC,QAAQ,CAAC,IAAI,oBAAoB,CAAC,CAAC,CAAC;AACpC,QAAQ,OAAO,CAAC;AAChB,KAAK,EAAE,EAAE,CAAC;AACV;AACA,SAAS,MAAM,CAAC,GAAG,EAAE;AACrB,IAAI,MAAM,IAAI,GAAG,EAAE;AACnB,IAAI,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;AAC5B,QAAQ,MAAM,GAAG,GAAG,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC7D,QAAQ,IAAI,GAAG,KAAK,SAAS,EAAE;AAC/B,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAC,CAAC;AAClE;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACtB;AACA,IAAI,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC;AAC/B;AACO,MAAM,YAAY,GAAG,IAAI,CAAC;AACjC,IAAI,MAAM,EAAE,IAAI;AAChB,IAAI,IAAI,EAAE,cAAc;AACxB,IAAI,MAAM;AACV,IAAI;AACJ,CAAC,CAAC;;;;;;;ACzBK,MAAM,MAAM,GAAG,KAAK,CAAC;AAC5B,IAAI,MAAM,EAAE,GAAG;AACf,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,QAAQ,EAAE;AACd,CAAC,CAAC;AACK,MAAM,WAAW,GAAG,KAAK,CAAC;AACjC,IAAI,MAAM,EAAE,GAAG;AACf,IAAI,IAAI,EAAE,aAAa;AACvB,IAAI,QAAQ,EAAE;AACd,CAAC,CAAC;;;;;;;;ACTK,MAAM,MAAM,GAAG,OAAO,CAAC;AAC9B,IAAI,MAAM,EAAE,GAAG;AACf,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,QAAQ,EAAE,kEAAkE;AAChF,IAAI,WAAW,EAAE;AACjB,CAAC,CAAC;AACK,MAAM,SAAS,GAAG,OAAO,CAAC;AACjC,IAAI,MAAM,EAAE,GAAG;AACf,IAAI,IAAI,EAAE,WAAW;AACrB,IAAI,QAAQ,EAAE,mEAAmE;AACjF,IAAI,WAAW,EAAE;AACjB,CAAC,CAAC;AACK,MAAM,SAAS,GAAG,OAAO,CAAC;AACjC,IAAI,MAAM,EAAE,GAAG;AACf,IAAI,IAAI,EAAE,WAAW;AACrB,IAAI,QAAQ,EAAE,kEAAkE;AAChF,IAAI,WAAW,EAAE;AACjB,CAAC,CAAC;AACK,MAAM,YAAY,GAAG,OAAO,CAAC;AACpC,IAAI,MAAM,EAAE,GAAG;AACf,IAAI,IAAI,EAAE,cAAc;AACxB,IAAI,QAAQ,EAAE,mEAAmE;AACjF,IAAI,WAAW,EAAE;AACjB,CAAC,CAAC;;;;;;;;;;ACvBK,MAAM,KAAK,GAAG,OAAO,CAAC;AAC7B,IAAI,MAAM,EAAE,GAAG;AACf,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,WAAW,EAAE;AACjB,CAAC,CAAC;;;;;;;ACJK,MAAM,QAAQ,GAAG,IAAI,CAAC;AAC7B,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,IAAI,EAAE,UAAU;AACpB,IAAI,MAAM,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,CAAC;AAClC,IAAI,MAAM,EAAE,CAAC,GAAG,KAAKR,YAAU,CAAC,GAAG;AACnC,CAAC,CAAC;;;;;;;ACPkB,IAAI,WAAW;AACf,IAAI,WAAW;;ACc5B,MAAM,KAAK,GAAG,EAAE,GAAG,YAAY,EAAE,GAAGS,OAAK,EAAE,GAAGC,OAAK,EAAE,GAAGC,QAAM,EAAE,GAAGC,QAAM,EAAE,GAAGC,QAAM,EAAE,GAAGC,QAAM,EAAE,GAAG,MAAM,EAAE,GAAGC,QAAM,EAAE,GAAGC,cAAY,EAAE;;ACb/I,SAASC,aAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;AACnD,IAAI,OAAO;AACX,QAAQ,IAAI;AACZ,QAAQ,MAAM;AACd,QAAQ,OAAO,EAAE;AACjB,YAAY,IAAI;AAChB,YAAY,MAAM;AAClB,YAAY;AACZ,SAAS;AACT,QAAQ,OAAO,EAAE;AACjB,YAAY;AACZ;AACA,KAAK;AACL;AACA,MAAM,MAAM,GAAGA,aAAW,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,KAAK;AACjD,IAAI,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC;AAC3C,IAAI,OAAO,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;AACpC,CAAC,EAAE,CAAC,GAAG,KAAK;AACZ,IAAI,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE;AACrC,IAAI,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC3C,CAAC,CAAC;AACF,MAAM,KAAK,GAAGA,aAAW,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,KAAK;AACjD,IAAI,IAAI,MAAM,GAAG,GAAG;AACpB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,QAAQ,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7C;AACA,IAAI,OAAO,MAAM;AACjB,CAAC,EAAE,CAAC,GAAG,KAAK;AACZ,IAAI,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;AAC1B,IAAI,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;AACvC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;AAClC;AACA,IAAI,OAAO,GAAG;AACd,CAAC,CAAC;AACF,MAAM,KAAK,GAAG;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,MAAM;AACnB,IAAI,GAAG,EAAE,KAAK,CAAC,MAAM;AACrB,IAAI,MAAM,EAAE,KAAK;AACjB,IAAI,KAAK;AACT,IAAI,MAAM,EAAE,KAAK;AACjB,IAAI,GAAG;AACP,CAAC;;AC5CD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,UAAU,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,EAAE;AACtD,IAAI,MAAM,IAAI,GAAGC,KAAK,CAAC,QAAQ,CAAC;AAChC,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE;AACtB,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC7D;AACA;AACA,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1D;;ACdA;AACA;AACA;AACe,SAAS,IAAI,CAAC,IAAI,EAAE;AACnC,IAAI,MAAM,IAAI,GAAW,IAAI;AAC7B,IAAI,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC;AAC1B,IAAI,IAAI,IAAI;AACZ,IAAI,IAAI,MAAM,GAAG,IAAI;AACrB,IAAI,OAAO,SAAS,SAAS,CAAC,IAAI,EAAE;AACpC,QAAQ,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,GAAG,EAAE;AACpC,YAAY,OAAO,WAAW,CAAC,IAAI,CAAC;AACpC;AACA,QAAQ,IAAI,MAAM,GAAG,IAAI,GAAG,IAAI,EAAE;AAClC,YAAY,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;AACpC,YAAY,MAAM,GAAG,CAAC;AACtB;AACA,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,IAAI,CAAC;AACzD,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE;AAChC;AACA,YAAY,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC;AACrC;AACA,QAAQ,OAAO,GAAG;AAClB,KAAK;AACL;;ACjBA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE,CAAC;AACT;AACA;AACA;AACA,IAAI,EAAE;AACN;AACA;AACA;AACA,IAAI,GAAG;AACP;AACA;AACA;AACA,IAAI,IAAI;AACR;AACA;AACA;AACA,IAAI,GAAG;AACP,IAAI,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE;AAC9B,QAAQ,IAAI,CAAC,EAAE,GAAG,EAAE;AACpB,QAAQ,IAAI,CAAC,GAAG,GAAG,GAAG;AACtB,QAAQ,IAAI,CAAC,IAAI,GAAG,SAAS;AAC7B,QAAQ,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;AACvB;AACA;AACA;AACA,SAAS,IAAI,GAAG,GAAG;AACnB;AACA;AACA;AACA,MAAM,KAAK,CAAC;AACZ;AACA;AACA;AACA,IAAI,IAAI;AACR;AACA;AACA;AACA,IAAI,IAAI;AACR;AACA;AACA;AACA,IAAI,GAAG;AACP;AACA;AACA;AACA,IAAI,IAAI;AACR,IAAI,WAAW,CAAC,MAAM,EAAE;AACxB,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI;AAC/B,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI;AAC/B,QAAQ,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG;AAC7B,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM;AACjC;AACA;AACA,MAAM,UAAU,GAAG,IAAI,EAAE;AACzB;AACA;AACA;AACA,SAAS,KAAK,CAAC,IAAI,EAAE;AACrB,IAAI,IAAI,UAAU,CAAC,MAAM,IAAI,IAAI,EAAE;AACnC,QAAQ,OAAO,WAAW,CAAC,IAAI,CAAC;AAChC;AACA,IAAI,OAAO,UAAU,CAAC,IAAI,CAAC;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gBAAgB,CAAC;AACvB;AACA;AACA;AACA,IAAI,GAAG;AACP;AACA;AACA;AACA,IAAI,IAAI;AACR;AACA;AACA;AACA,IAAI,IAAI;AACR;AACA;AACA;AACA,IAAI,MAAM;AACV,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,GAAG,GAAG,CAAC;AACpB,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AACtC,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;AAC7B,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI;AAC1B;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE;AACxB,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;AACzD,QAAQ,IAAI,CAAC,GAAG,IAAI,GAAG;AACvB,QAAQ,OAAO,IAAI;AACnB;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB;AACA;AACA,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC,CAAC,KAAK,GAAG,KAAK,KAAK,CAAC;AACnF,YAAY;AACZ,cAAc;AACd,cAAc,KAAK,GAAG;AACtB,kBAAkB;AAClB,kBAAkB,KAAK,GAAG;AAC1B,sBAAsB;AACtB,sBAAsB,KAAK,GAAG;AAC9B,0BAA0B;AAC1B,0BAA0B,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG;AACxC,QAAQ,OAAO,IAAI;AACnB;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,KAAK,EAAE;AACjB,QAAQ,OAAO,KAAK,GAAG;AACvB,cAAc,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACvE,cAAc,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AAChC;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,MAAM,CAAC,CAAC;AAC5D;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC;AAC/C,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC;AAC7D;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,KAAK,EAAE;AACxB,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;AACzE;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,KAAK,EAAE;AACxB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzC;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,KAAK,EAAE;AACjB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AACjC;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC,KAAK,EAAE;AACvB,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;AACvC;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC,KAAK,EAAE;AACvB,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;AACvC;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;AAC1D,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC;AAC7D;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,KAAK,EAAE;AACxB,QAAQ,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;AAC1D,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC;AAC7D;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,KAAK,EAAE;AACxB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzC;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,KAAK,EAAE;AAChB,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;AACtD;AACA;AACA;AACA;AACA,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC;AACvD;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,KAAK,EAAE;AACpB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AAClC;AACA;AACA;AACA;AACA,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,QAAQ,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC;AAC/C,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;AACnF;AACA;AACA;AACA;AACA,IAAI,aAAa,CAAC,KAAK,EAAE;AACzB,QAAQ,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC;AAC/C,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;AACnF;AACA;AACA;AACA;AACA,IAAI,aAAa,CAAC,KAAK,EAAE;AACzB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1C;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,KAAK,EAAE;AACpB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AAClC;AACA;AACA;AACA;AACA,IAAI,cAAc,CAAC,KAAK,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;AACxC;AACA;AACA;AACA;AACA,IAAI,cAAc,CAAC,KAAK,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;AACxC;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,KAAK,EAAE;AACjB,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE,KAAK,CAAC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,EAAE,KAAK,CAAC;AAClD;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,KAAK,EAAE;AACjB,QAAQ,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC;AACtC,QAAQ,IAAI,GAAG,KAAK,CAAC,EAAE;AACvB,YAAY,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;AAC9C;AACA,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,CAAC;AAC7D;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,GAAG,GAAGC,MAAW,CAAC,KAAK,CAAC;AACtC,QAAQ,OAAO,GAAG,KAAK;AACvB,cAAc,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAACC,KAAU,EAAE,GAAG,EAAE,KAAK;AAC3D,cAAc,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;AACzC;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,GAAG;AACX,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC;AACrC,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AAClD,QAAQ,IAAI,CAAC,GAAG,GAAG,CAAC;AACpB,QAAQ,OAAO,IAAI;AACnB;AACA;AACA;AACA;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;AACjC,YAAY,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI;AACxC,YAAY,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI;AACxC,YAAY,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG;AACtC,YAAY,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI;AAC1C;AACA,aAAa;AACb,YAAY,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AACtD,YAAY,IAAI,CAAC,GAAG,GAAG,CAAC;AACxB;AACA,QAAQ,OAAO,IAAI;AACnB;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI;AAC9B,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI;AAC9B,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG;AAC5B,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;AAChC,QAAQ,IAAI,GAAG,KAAK,CAAC,EAAE;AACvB,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACvC,YAAY,IAAI,CAAC,IAAI,GAAG,IAAI;AAC5B,YAAY,IAAI,CAAC,GAAG,IAAI,GAAG;AAC3B;AACA,QAAQ,OAAO,IAAI;AACnB;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAClC,QAAQ,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;AACnC,QAAQ,IAAI,GAAG,GAAG,CAAC;AACnB,QAAQ,OAAO,IAAI,IAAI,IAAI,EAAE;AAC7B,YAAY,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACvC,YAAY,GAAG,IAAI,IAAI,CAAC,GAAG;AAC3B,YAAY,IAAI,GAAG,IAAI,CAAC,IAAI;AAC5B;AACA;AACA,QAAQ,OAAO,GAAG;AAClB;AACA;AACA,SAAS,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAClC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG;AACxB;AACA,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AACtC,IAAI,OAAO,GAAG,GAAG,GAAG,EAAE;AACtB,QAAQ,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;AACpC,QAAQ,GAAG,MAAM,CAAC;AAClB;AACA,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,QAAQ,SAAS,EAAE,CAAC;AAC1B,IAAI,IAAI;AACR,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE;AAC1B,QAAQ,KAAK,CAAC,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC;AACtC,QAAQ,IAAI,CAAC,IAAI,GAAG,SAAS;AAC7B;AACA;AACA,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AACtC,IAAI,OAAO,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE;AACzB,QAAQ,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG;AACvC,QAAQ,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC;AACpD,QAAQ,GAAG,CAAC,EAAE,MAAM,CAAC;AACrB;AACA,IAAI,OAAO,GAAG,CAAC,EAAE,GAAG,GAAG,EAAE;AACzB,QAAQ,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG;AACvC,QAAQ,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC;AAC7B;AACA,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE;AACvB;AACA,SAAS,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AACrC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG;AACxB,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG;AAClC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG;AACnC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,KAAK,EAAE;AAC7B;AACA,SAAS,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AACnC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;AACrB;AACA,IAAI,UAAU,CAAC,MAAM,IAAI,IAAI,EAAE;AAC/B,IAAI,gBAAgB,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,KAAK,EAAE;AACxD,QAAQ,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC;AACtC,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;AACxB,QAAQ,IAAI,GAAG,GAAG,CAAC,EAAE;AACrB,YAAY,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,GAAG,EAAE,KAAK,CAAC;AACpD;AACA,QAAQ,OAAO,IAAI;AACnB,KAAK;AACL,IAAI,gBAAgB,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE;AACzD,QAAQ,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;AACvD,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;AACxB,QAAQ,IAAI,GAAG,GAAG,CAAC,EAAE;AACrB,YAAY,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,GAAG,EAAE,KAAK,CAAC;AACrD;AACA,QAAQ,OAAO,IAAI;AACnB,KAAK;AACL;AACA,SAAS,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AACzC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACtB;AACA;AACA,SAAS,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAC1C,IAAI,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE,EAAE;AACzB;AACA,QAAQA,KAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACjC;AACA;AACA,SAAS,IAAI,GAAG,CAAC,SAAS,IAAI,IAAI,EAAE;AACpC;AACA,QAAQ,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;AAC/B;AACA,SAAS;AACT,QAAQ,GAAG,CAAC,GAAG,CAACC,UAAoB,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;AAC/C;AACA;AACA;AACA;AACA;AACO,SAAS,YAAY,GAAG;AAC/B,IAAI,OAAO,IAAI,gBAAgB,EAAE;AACjC;;ACjbO,SAAS,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE;AAC9C,IAAI,MAAM,CAAC,GAAG,YAAY,EAAE;AAC5B,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE;AAC7B,QAAQ,eAAe,EAAE;AACzB,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE;AACrB;;ACPA;AACO,IAAI,WAAW;AACtB,CAAC,UAAU,WAAW,EAAE;AACxB,IAAI,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ;AACrD,IAAI,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO;AACnD,IAAI,WAAW,CAAC,WAAW,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,GAAG,kBAAkB;AACzE,IAAI,WAAW,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,aAAa;AAC/D,IAAI,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW;AAC3D,IAAI,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO;AACnD,CAAC,EAAE,WAAW,KAAK,WAAW,GAAG,EAAE,CAAC,CAAC;AAC9B,SAAS,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE;AACxD,IAAI,OAAO;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,MAAM;AACd,QAAQ;AACR,KAAK;AACL;;AChBO,SAAS,WAAW,CAAC,CAAC,EAAE;AAC/B,IAAI,SAAS,SAAS,CAAC,GAAG,EAAE;AAC5B;AACA;AACA,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,IAAI,EAAE;AACvC,YAAY,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC;AACjD;AACA,QAAQ,OAAO,CAAC,CAAC,GAAG,CAAC;AACrB;AACA,IAAI,MAAM,MAAM,GAAG,SAAS,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE;AACpD,QAAQ,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC;AACxC,QAAQ,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;AAC/B,KAAK;AACL,IAAI,MAAM,MAAM,GAAG,SAAS,UAAU,CAAC,MAAM,EAAE;AAC/C,QAAQ,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE;AAClC,QAAQ,OAAO,SAAS,CAAC,GAAG,CAAC;AAC7B,KAAK;AACL;AACA,IAAI,OAAO,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAClE;;ACnBO,SAAS,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE;AACxC,IAAI,OAAO,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,gBAAgB,EAAE,MAAM,EAAE,MAAM,CAAC;AAC/E;;ACHA;AACA;AACA;AACA;AACA;AAEO,IAAI,YAAY;AACvB,CAAC,UAAU,YAAY,EAAE;AACzB,IAAI,IAAI,MAAM;AACd,IAAI,YAAY,CAAC,KAAK,GAAG,MAAM;AAC/B,QAAQ,IAAI,MAAM,IAAI,IAAI,EAAE;AAC5B,YAAY,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,KAAK;AACpD,gBAAgB,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,EAAE;AACpD,oBAAoB,CAAC,CAAC,IAAI,EAAE;AAC5B;AACA,gBAAgB,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC9E,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/B,oBAAoB,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;AAC5D;AACA,gBAAgB,KAAK,GAAG,CAAC,SAAS,IAAI,IAAI,IAAI,GAAG,CAAC,SAAS,KAAK,CAAC,GAAG;AACpE,oBAAoB,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;AAChC,oBAAoB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;AAC1C;AACA,gBAAgB,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE;AACtC,oBAAoB,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;AAChC,oBAAoB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AACrC;AACA,gBAAgB,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE;AACtC,oBAAoB,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;AAChC,oBAAoB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AACtC;AACA,gBAAgB,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE;AACtC,oBAAoB,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;AAChC,oBAAoB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AACrC;AACA,gBAAgB,IAAI,GAAG,CAAC,aAAa,IAAI,IAAI,EAAE;AAC/C,oBAAoB,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;AAChC,oBAAoB,iBAAiB,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC;AAC1E;AACA,gBAAgB,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,EAAE;AACpD,oBAAoB,CAAC,CAAC,MAAM,EAAE;AAC9B;AACA,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK;AAC9C,gBAAgB,IAAI,EAAE;AACtB,gBAAgB,MAAM,GAAG,GAAG;AAC5B,oBAAoB,IAAI,EAAE,YAAY,CAAC,IAAI;AAC3C,oBAAoB,SAAS,EAAE;AAC/B,iBAAiB;AACjB,gBAAgB,MAAM,GAAG,GAAG,MAAM,IAAI,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM;AAC7E,gBAAgB,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;AACzC,oBAAoB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE;AAC/C,oBAAoB,QAAQ,GAAG,KAAK,CAAC;AACrC,wBAAwB,KAAK,CAAC,EAAE;AAChC,4BAA4B,GAAG,CAAC,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;AAC1E,4BAA4B;AAC5B;AACA,wBAAwB,KAAK,CAAC,EAAE;AAChC,4BAA4B,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE;AAC1D,4BAA4B;AAC5B;AACA,wBAAwB,KAAK,CAAC,EAAE;AAChC,4BAA4B,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE;AACrD,4BAA4B;AAC5B;AACA,wBAAwB,KAAK,CAAC,EAAE;AAChC,4BAA4B,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE;AACtD,4BAA4B;AAC5B;AACA,wBAAwB,KAAK,CAAC,EAAE;AAChC,4BAA4B,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE;AACrD,4BAA4B;AAC5B;AACA,wBAAwB,KAAK,CAAC,EAAE;AAChC,4BAA4B,GAAG,CAAC,aAAa,GAAG,iBAAiB,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE;AAC1G,gCAAgC,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;AACnG,6BAA6B,CAAC;AAC9B,4BAA4B;AAC5B;AACA,wBAAwB,SAAS;AACjC,4BAA4B,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC;AACpD,4BAA4B;AAC5B;AACA;AACA;AACA,gBAAgB,OAAO,GAAG;AAC1B,aAAa,CAAC;AACd;AACA,QAAQ,OAAO,MAAM;AACrB,KAAK;AACL,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK;AACnC,QAAQ,OAAO,aAAa,CAAC,GAAG,EAAE,YAAY,CAAC,KAAK,EAAE,CAAC;AACvD,KAAK;AACL,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,IAAI,KAAK;AACzC,QAAQ,OAAO,aAAa,CAAC,GAAG,EAAE,YAAY,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC;AAC7D,KAAK;AACL,CAAC,EAAE,YAAY,KAAK,YAAY,GAAG,EAAE,CAAC,CAAC;AAChC,IAAI,YAAY;AACvB,CAAC,UAAU,YAAY,EAAE;AACzB,IAAI,YAAY,CAAC,MAAM,CAAC,GAAG,MAAM;AACjC,IAAI,YAAY,CAAC,YAAY,CAAC,GAAG,YAAY;AAC7C,IAAI,YAAY,CAAC,WAAW,CAAC,GAAG,WAAW;AAC3C,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,QAAQ;AACrC,IAAI,YAAY,CAAC,cAAc,CAAC,GAAG,cAAc;AACjD,IAAI,YAAY,CAAC,UAAU,CAAC,GAAG,UAAU;AACzC,IAAI,YAAY,CAAC,gBAAgB,CAAC,GAAG,gBAAgB;AACrD,IAAI,YAAY,CAAC,eAAe,CAAC,GAAG,eAAe;AACnD,CAAC,EAAE,YAAY,KAAK,YAAY,GAAG,EAAE,CAAC,CAAC;AACvC,IAAI,oBAAoB;AACxB,CAAC,UAAU,oBAAoB,EAAE;AACjC,IAAI,oBAAoB,CAAC,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;AACnE,IAAI,oBAAoB,CAAC,oBAAoB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY;AAC/E,IAAI,oBAAoB,CAAC,oBAAoB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW;AAC7E,IAAI,oBAAoB,CAAC,oBAAoB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ;AACvE,IAAI,oBAAoB,CAAC,oBAAoB,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,cAAc;AACnF,IAAI,oBAAoB,CAAC,oBAAoB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU;AAC3E,IAAI,oBAAoB,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,gBAAgB;AACvF,IAAI,oBAAoB,CAAC,oBAAoB,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,eAAe;AACrF,CAAC,EAAE,oBAAoB,KAAK,oBAAoB,GAAG,EAAE,CAAC,CAAC;AACvD,CAAC,UAAU,YAAY,EAAE;AACzB,IAAI,YAAY,CAAC,KAAK,GAAG,MAAM;AAC/B,QAAQ,OAAO,WAAW,CAAC,oBAAoB,CAAC;AAChD,KAAK;AACL,CAAC,EAAE,YAAY,KAAK,YAAY,GAAG,EAAE,CAAC,CAAC;AAChC,IAAI,iBAAiB;AAC5B,CAAC,UAAU,iBAAiB,EAAE;AAC9B,IAAI,IAAI,MAAM;AACd,IAAI,iBAAiB,CAAC,KAAK,GAAG,MAAM;AACpC,QAAQ,IAAI,MAAM,IAAI,IAAI,EAAE;AAC5B,YAAY,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,KAAK;AACpD,gBAAgB,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,EAAE;AACpD,oBAAoB,CAAC,CAAC,IAAI,EAAE;AAC5B;AACA,gBAAgB,IAAI,GAAG,CAAC,WAAW,IAAI,IAAI,EAAE;AAC7C,oBAAoB,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;AAChC,oBAAoB,kBAAkB,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;AACzE;AACA,gBAAgB,IAAI,GAAG,CAAC,UAAU,IAAI,IAAI,EAAE;AAC5C,oBAAoB,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;AAChC,oBAAoB,iBAAiB,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;AACvE;AACA,gBAAgB,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,EAAE;AACpD,oBAAoB,CAAC,CAAC,MAAM,EAAE;AAC9B;AACA,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK;AAC9C,gBAAgB,IAAI,EAAE,EAAE,EAAE;AAC1B,gBAAgB,MAAM,GAAG,GAAG,EAAE;AAC9B,gBAAgB,MAAM,GAAG,GAAG,MAAM,IAAI,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM;AAC7E,gBAAgB,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;AACzC,oBAAoB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE;AAC/C,oBAAoB,QAAQ,GAAG,KAAK,CAAC;AACrC,wBAAwB,KAAK,CAAC,EAAE;AAChC,4BAA4B,GAAG,CAAC,WAAW,GAAG,kBAAkB,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE;AACzG,gCAAgC,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;AACnG,6BAA6B,CAAC;AAC9B,4BAA4B;AAC5B;AACA,wBAAwB,KAAK,CAAC,EAAE;AAChC,4BAA4B,GAAG,CAAC,UAAU,GAAG,iBAAiB,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE;AACvG,gCAAgC,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;AACnG,6BAA6B,CAAC;AAC9B,4BAA4B;AAC5B;AACA,wBAAwB,SAAS;AACjC,4BAA4B,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC;AACpD,4BAA4B;AAC5B;AACA;AACA;AACA,gBAAgB,OAAO,GAAG;AAC1B,aAAa,CAAC;AACd;AACA,QAAQ,OAAO,MAAM;AACrB,KAAK;AACL,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK;AACxC,QAAQ,OAAO,aAAa,CAAC,GAAG,EAAE,iBAAiB,CAAC,KAAK,EAAE,CAAC;AAC5D,KAAK;AACL,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,IAAI,KAAK;AAC9C,QAAQ,OAAO,aAAa,CAAC,GAAG,EAAE,iBAAiB,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC;AAClE,KAAK;AACL,CAAC,EAAE,iBAAiB,KAAK,iBAAiB,GAAG,EAAE,CAAC,CAAC;AAC1C,IAAI,kBAAkB;AAC7B,CAAC,UAAU,kBAAkB,EAAE;AAC/B,IAAI,IAAI,MAAM;AACd,IAAI,kBAAkB,CAAC,KAAK,GAAG,MAAM;AACrC,QAAQ,IAAI,MAAM,IAAI,IAAI,EAAE;AAC5B,YAAY,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,KAAK;AACpD,gBAAgB,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,EAAE;AACpD,oBAAoB,CAAC,CAAC,IAAI,EAAE;AAC5B;AACA,gBAAgB,IAAI,GAAG,CAAC,SAAS,IAAI,IAAI,IAAI,4BAA4B,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;AAChG,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/B,oBAAoB,oBAAoB,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;AACzE;AACA,gBAAgB,IAAI,GAAG,CAAC,KAAK,IAAI,IAAI,EAAE;AACvC,oBAAoB,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;AAChC,oBAAoB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AACtC;AACA,gBAAgB,IAAI,GAAG,CAAC,SAAS,IAAI,IAAI,EAAE;AAC3C,oBAAoB,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;AAChC,oBAAoB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;AAC1C;AACA,gBAAgB,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,EAAE;AACpD,oBAAoB,CAAC,CAAC,MAAM,EAAE;AAC9B;AACA,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK;AAC9C,gBAAgB,MAAM,GAAG,GAAG;AAC5B,oBAAoB,SAAS,EAAE,oBAAoB,CAAC;AACpD,iBAAiB;AACjB,gBAAgB,MAAM,GAAG,GAAG,MAAM,IAAI,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM;AAC7E,gBAAgB,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;AACzC,oBAAoB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE;AAC/C,oBAAoB,QAAQ,GAAG,KAAK,CAAC;AACrC,wBAAwB,KAAK,CAAC,EAAE;AAChC,4BAA4B,GAAG,CAAC,SAAS,GAAG,oBAAoB,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;AACvF,4BAA4B;AAC5B;AACA,wBAAwB,KAAK,CAAC,EAAE;AAChC,4BAA4B,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE;AACtD,4BAA4B;AAC5B;AACA,wBAAwB,KAAK,CAAC,EAAE;AAChC,4BAA4B,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE;AAC1D,4BAA4B;AAC5B;AACA,wBAAwB,SAAS;AACjC,4BAA4B,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC;AACpD,4BAA4B;AAC5B;AACA;AACA;AACA,gBAAgB,OAAO,GAAG;AAC1B,aAAa,CAAC;AACd;AACA,QAAQ,OAAO,MAAM;AACrB,KAAK;AACL,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK;AACzC,QAAQ,OAAO,aAAa,CAAC,GAAG,EAAE,kBAAkB,CAAC,KAAK,EAAE,CAAC;AAC7D,KAAK;AACL,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,IAAI,KAAK;AAC/C,QAAQ,OAAO,aAAa,CAAC,GAAG,EAAE,kBAAkB,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC;AACnE,KAAK;AACL,CAAC,EAAE,kBAAkB,KAAK,kBAAkB,GAAG,EAAE,CAAC,CAAC;AAC5C,IAAI,iBAAiB;AAC5B,CAAC,UAAU,iBAAiB,EAAE;AAC9B,IAAI,IAAI,MAAM;AACd,IAAI,iBAAiB,CAAC,KAAK,GAAG,MAAM;AACpC,QAAQ,IAAI,MAAM,IAAI,IAAI,EAAE;AAC5B,YAAY,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,KAAK;AACpD,gBAAgB,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,EAAE;AACpD,oBAAoB,CAAC,CAAC,IAAI,EAAE;AAC5B;AACA,gBAAgB,IAAI,GAAG,CAAC,SAAS,IAAI,IAAI,IAAI,2BAA2B,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;AAC/F,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/B,oBAAoB,mBAAmB,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;AACxE;AACA,gBAAgB,IAAI,GAAG,CAAC,SAAS,IAAI,IAAI,EAAE;AAC3C,oBAAoB,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;AAChC,oBAAoB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;AAC1C;AACA,gBAAgB,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,EAAE;AACpD,oBAAoB,CAAC,CAAC,MAAM,EAAE;AAC9B;AACA,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK;AAC9C,gBAAgB,MAAM,GAAG,GAAG;AAC5B,oBAAoB,SAAS,EAAE,mBAAmB,CAAC;AACnD,iBAAiB;AACjB,gBAAgB,MAAM,GAAG,GAAG,MAAM,IAAI,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM;AAC7E,gBAAgB,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;AACzC,oBAAoB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE;AAC/C,oBAAoB,QAAQ,GAAG,KAAK,CAAC;AACrC,wBAAwB,KAAK,CAAC,EAAE;AAChC,4BAA4B,GAAG,CAAC,SAAS,GAAG,mBAAmB,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;AACtF,4BAA4B;AAC5B;AACA,wBAAwB,KAAK,CAAC,EAAE;AAChC,4BAA4B,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE;AAC1D,4BAA4B;AAC5B;AACA,wBAAwB,SAAS;AACjC,4BAA4B,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC;AACpD,4BAA4B;AAC5B;AACA;AACA;AACA,gBAAgB,OAAO,GAAG;AAC1B,aAAa,CAAC;AACd;AACA,QAAQ,OAAO,MAAM;AACrB,KAAK;AACL,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK;AACxC,QAAQ,OAAO,aAAa,CAAC,GAAG,EAAE,iBAAiB,CAAC,KAAK,EAAE,CAAC;AAC5D,KAAK;AACL,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,IAAI,KAAK;AAC9C,QAAQ,OAAO,aAAa,CAAC,GAAG,EAAE,iBAAiB,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC;AAClE,KAAK;AACL,CAAC,EAAE,iBAAiB,KAAK,iBAAiB,GAAG,EAAE,CAAC,CAAC;AAC1C,IAAI,oBAAoB;AAC/B,CAAC,UAAU,oBAAoB,EAAE;AACjC,IAAI,oBAAoB,CAAC,MAAM,CAAC,GAAG,MAAM;AACzC,CAAC,EAAE,oBAAoB,KAAK,oBAAoB,GAAG,EAAE,CAAC,CAAC;AACvD,IAAI,4BAA4B;AAChC,CAAC,UAAU,4BAA4B,EAAE;AACzC,IAAI,4BAA4B,CAAC,4BAA4B,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;AACnF,CAAC,EAAE,4BAA4B,KAAK,4BAA4B,GAAG,EAAE,CAAC,CAAC;AACvE,CAAC,UAAU,oBAAoB,EAAE;AACjC,IAAI,oBAAoB,CAAC,KAAK,GAAG,MAAM;AACvC,QAAQ,OAAO,WAAW,CAAC,4BAA4B,CAAC;AACxD,KAAK;AACL,CAAC,EAAE,oBAAoB,KAAK,oBAAoB,GAAG,EAAE,CAAC,CAAC;AAChD,IAAI,mBAAmB;AAC9B,CAAC,UAAU,mBAAmB,EAAE;AAChC,IAAI,mBAAmB,CAAC,aAAa,CAAC,GAAG,aAAa;AACtD,CAAC,EAAE,mBAAmB,KAAK,mBAAmB,GAAG,EAAE,CAAC,CAAC;AACrD,IAAI,2BAA2B;AAC/B,CAAC,UAAU,2BAA2B,EAAE;AACxC,IAAI,2BAA2B,CAAC,2BAA2B,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,aAAa;AAC/F,CAAC,EAAE,2BAA2B,KAAK,2BAA2B,GAAG,EAAE,CAAC,CAAC;AACrE,CAAC,UAAU,mBAAmB,EAAE;AAChC,IAAI,mBAAmB,CAAC,KAAK,GAAG,MAAM;AACtC,QAAQ,OAAO,WAAW,CAAC,2BAA2B,CAAC;AACvD,KAAK;AACL,CAAC,EAAE,mBAAmB,KAAK,mBAAmB,GAAG,EAAE,CAAC,CAAC;;ACjUrC,CAACjB,SAAI,IAAIA,SAAI,CAAC,SAAS,KAAK,UAAU,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE;AACzF,IAAI,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,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAE;AAC/D,QAAQ,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,QAAQ,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,QAAQ,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,QAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;AAC7E,KAAK,CAAC;AACN;AACA,IAAIC,SAAO,GAAG,CAACD,SAAI,IAAIA,SAAI,CAAC,OAAO,KAAK,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,YAAYC,SAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,IAAIA,SAAO,CAAC,CAAC,CAAC,CAAC;AACrG,CAACD,SAAI,IAAIA,SAAI,CAAC,gBAAgB,KAAK,UAAU,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE;AACpG,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC;AAC1F,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE;AACjE,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,aAAa,KAAK,UAAU,GAAG,aAAa,GAAG,MAAM,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC;AAC3N,IAAI,SAAS,WAAW,CAAC,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;AACjG,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1K,IAAI,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AACpF,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,YAAYC,SAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1H,IAAI,SAAS,OAAO,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACpD,IAAI,SAAS,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACpD,IAAI,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpF;AACoB,CAACD,SAAI,IAAIA,SAAI,CAAC,aAAa,KAAK,UAAU,CAAC,EAAE;AACjE,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC;AAC1F,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;AACtC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;AACpN,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAClK,IAAI,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;AAC9H;;AC5BA,IAAIkB,eAAa,GAAG,CAAClB,SAAI,IAAIA,SAAI,CAAC,aAAa,KAAK,UAAU,CAAC,EAAE;AACjE,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC;AAC1F,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;AACtC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;AACpN,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAClK,IAAI,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;AAC9H,CAAC;AACD,IAAIC,SAAO,GAAG,CAACD,SAAI,IAAIA,SAAI,CAAC,OAAO,KAAK,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,YAAYC,SAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,IAAIA,SAAO,CAAC,CAAC,CAAC,CAAC;AAC5H,IAAIkB,kBAAgB,GAAG,CAACnB,SAAI,IAAIA,SAAI,CAAC,gBAAgB,KAAK,UAAU,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE;AACpG,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC;AAC1F,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE;AACjE,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,aAAa,KAAK,UAAU,GAAG,aAAa,GAAG,MAAM,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC;AAC3N,IAAI,SAAS,WAAW,CAAC,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;AACjG,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1K,IAAI,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AACpF,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,YAAYC,SAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1H,IAAI,SAAS,OAAO,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACpD,IAAI,SAAS,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACpD,IAAI,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpF,CAAC;AACM,MAAMmB,cAAY,GAAG,UAAU,UAAU,EAAE,WAAW,EAAE;AAC/D,IAAI,OAAOD,kBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,QAAQ,EAAE,SAAS,EAAE,eAAe,GAAG,KAAK,EAAE;AACtG,QAAQ,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE;AAC3B,QAAQ,IAAI,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACzC,QAAQ,IAAI;AACZ,YAAY,KAAK,IAAI,EAAE,GAAG,IAAI,EAAE,UAAU,GAAGD,eAAa,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,YAAY,GAAG,MAAMjB,SAAO,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE;AAC7K,gBAAgB,EAAE,GAAG,YAAY,CAAC,KAAK;AACvC,gBAAgB,EAAE,GAAG,KAAK;AAC1B,gBAAgB,MAAM,KAAK,GAAG,EAAE;AAChC,gBAAgB,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AACjE,gBAAgB,OAAO,WAAW,CAAC,MAAM,IAAI,SAAS,EAAE;AACxD,oBAAoB,MAAM,MAAMA,SAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AAC3E,oBAAoB,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC;AACjE;AACA;AACA;AACA,QAAQ,OAAO,KAAK,EAAE,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC/C,gBAAgB;AAChB,YAAY,IAAI;AAChB,gBAAgB,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,MAAMA,SAAO,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC9F;AACA,oBAAoB,EAAE,IAAI,GAAG,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC;AAC/C;AACA,QAAQ,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE;AACxD,YAAY,MAAM,MAAMA,SAAO,CAAC,WAAW,CAAC;AAC5C;AACA,KAAK,CAAC;AACN,CAAC;;AC/CD,IAAIiB,eAAa,GAAG,CAAClB,SAAI,IAAIA,SAAI,CAAC,aAAa,KAAK,UAAU,CAAC,EAAE;AACjE,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC;AAC1F,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;AACtC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;AACpN,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAClK,IAAI,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;AAC9H,CAAC;AACD,IAAIC,SAAO,GAAG,CAACD,SAAI,IAAIA,SAAI,CAAC,OAAO,KAAK,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,YAAYC,SAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,IAAIA,SAAO,CAAC,CAAC,CAAC,CAAC;AAC5H,IAAIkB,kBAAgB,GAAG,CAACnB,SAAI,IAAIA,SAAI,CAAC,gBAAgB,KAAK,UAAU,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE;AACpG,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC;AAC1F,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE;AACjE,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,aAAa,KAAK,UAAU,GAAG,aAAa,GAAG,MAAM,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC;AAC3N,IAAI,SAAS,WAAW,CAAC,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;AACjG,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1K,IAAI,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AACpF,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,YAAYC,SAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1H,IAAI,SAAS,OAAO,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACpD,IAAI,SAAS,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACpD,IAAI,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpF,CAAC;AAIM,MAAM,sBAAsB,GAAG,IAAI,GAAG,IAAI;AAC1C,SAAS,YAAY,CAAC,MAAM,EAAE,EAAE,EAAE;AACzC,IAAI,OAAOkB,kBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,cAAc,CAAC,IAAI,EAAE,EAAE,KAAK,GAAG,CAAC,EAAE,SAAS,GAAG,sBAAsB,EAAE,SAAS,GAAG,EAAE;AAC3I,QAAQ,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE;AAC3B,QAAQ,IAAI,SAAS,KAAK,oBAAoB,CAAC,IAAI,EAAE;AACrD,YAAY,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC;AAChE;AACA,QAAQ,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE;AACpC,YAAY,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC;AACxD;AACA,QAAQ,IAAI,SAAS,IAAI,CAAC,EAAE;AAC5B,YAAY,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC;AACjD;AACA,QAAQ,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;AACxC,QAAQ,MAAM,gBAAgB,GAAG,EAAE;AACnC,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,KAAK,KAAK;AACjC,YAAY,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACrD,SAAS;AACT,QAAQ,IAAI;AACZ,YAAY,KAAK,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAGD,eAAa,CAACE,cAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,MAAMnB,SAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE;AACpJ,gBAAgB,EAAE,GAAG,EAAE,CAAC,KAAK;AAC7B,gBAAgB,EAAE,GAAG,KAAK;AAC1B,gBAAgB,MAAM,KAAK,GAAG,EAAE;AAChC,gBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;AACvC,gBAAgB,OAAO,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;AACpD,oBAAoB,MAAM,MAAMA,SAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;AACjE;AACA;AACA;AACA,QAAQ,OAAO,KAAK,EAAE,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC/C,gBAAgB;AAChB,YAAY,IAAI;AAChB,gBAAgB,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,MAAMA,SAAO,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC9E;AACA,oBAAoB,EAAE,IAAI,GAAG,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC;AAC/C;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,UAAU,EAAE,EAAE,IAAI,CAAC;AACzC,QAAQ,OAAO,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5C,YAAY,MAAM,MAAMA,SAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;AACzD;AACA,KAAK,CAAC;AACN;AACO,SAAS,cAAc,CAAC,gBAAgB,EAAE,EAAE,EAAE;AACrD,IAAI,OAAOkB,kBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,gBAAgB,CAAC,cAAc,EAAE,EAAE,SAAS,GAAG,sBAAsB,EAAE,SAAS,GAAG,oBAAoB,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnL,QAAQ,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE;AAC3B,QAAQ,IAAI,SAAS,KAAK,oBAAoB,CAAC,IAAI,EAAE;AACrD,YAAY,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC;AAChE;AACA,QAAQ,IAAI,SAAS,IAAI,CAAC,EAAE;AAC5B,YAAY,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC;AACjD;AACA,QAAQ,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE;AACpC,YAAY,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC;AACxD;AACA,QAAQ,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE;AACnC,QAAQ,MAAM,kBAAkB,GAAG,EAAE;AACrC,QAAQ,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,KAAK;AACnC,YAAY,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvD,SAAS;AACT,QAAQ,IAAI;AACZ,YAAY,KAAK,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAGD,eAAa,CAACE,cAAY,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,MAAMnB,SAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE;AAC9J,gBAAgB,EAAE,GAAG,EAAE,CAAC,KAAK;AAC7B,gBAAgB,EAAE,GAAG,KAAK;AAC1B,gBAAgB,MAAM,KAAK,GAAG,EAAE;AAChC,gBAAgB,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;AACzC,gBAAgB,OAAO,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;AACtD,oBAAoB,MAAM,MAAMA,SAAO,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;AACnE;AACA;AACA;AACA,QAAQ,OAAO,KAAK,EAAE,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC/C,gBAAgB;AAChB,YAAY,IAAI;AAChB,gBAAgB,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,MAAMA,SAAO,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC9E;AACA,oBAAoB,EAAE,IAAI,GAAG,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC;AAC/C;AACA,QAAQ,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,EAAE,EAAE,IAAI,CAAC;AAC3C,QAAQ,OAAO,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9C,YAAY,MAAM,MAAMA,SAAO,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;AAC3D;AACA,KAAK,CAAC;AACN;;ACzGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,iBAAiB,GAAG,sBAAsB;AAChD,MAAM,qBAAqB,CAAC;AAC5B,IAAI,OAAO,aAAa,CAAC,IAAI,EAAE;AAC/B,QAAQ,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,iBAAiB;AACzE;AACA,IAAI,OAAO,aAAa,CAAC,IAAI,EAAE;AAC/B,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;AACtC,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;AACxD,YAAY,OAAO,IAAI,CAAC,MAAM;AAC9B;AACA,QAAQ,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;AACjF,YAAY,OAAO,IAAI,CAAC,MAAM;AAC9B;AACA,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM;AAC5C,aAAa,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU;AACrE,aAAa,MAAM;AACnB;AACA,IAAI,OAAO,YAAY,CAAC,IAAI,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC;AAC5C;AACA,IAAI,OAAO,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE;AAC9B,QAAQ,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE;AACvC,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;AACtC,YAAY,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC;AACjC;AACA,QAAQ,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE;AAC1C,YAAY,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC;AAC1E;AACA,QAAQ,MAAM,IAAI,SAAS,CAAC,sEAAsE,CAAC;AACnG;AACA,IAAI,OAAO,cAAc,CAAC,IAAI,EAAE;AAChC,QAAQ,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI;AAC1C,eAAe,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;AACvC;AACA,IAAI,OAAO,iBAAiB,CAAC,IAAI,EAAE;AACnC,QAAQ,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI;AACtC,gBAAgB,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACxD;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE;AACzB,QAAQ,MAAM,KAAK,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAC,CAAC;AAC3D,QAAQ,MAAM,KAAK,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAC,CAAC;AAC3D,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,UAAU,EAAE;AAC/C,YAAY,OAAO,KAAK;AACxB;AACA,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/C,YAAY,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE;AACvC,gBAAgB,OAAO,KAAK;AAC5B;AACA;AACA,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,OAAO,MAAM,CAAC,GAAG,IAAI,EAAE;AAC3B,QAAQ,IAAI,OAAO;AACnB,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,YAAY,QAAQ,CAAC,EAAE;AACtE,YAAY,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;AAC7B;AACA,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,QAAQ,EAAE;AACxE,YAAY,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;AAC7B;AACA,aAAa;AACb,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,YAAY,QAAQ,EAAE;AAC3D,gBAAgB,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACxD;AACA,iBAAiB;AACjB,gBAAgB,OAAO,GAAG,IAAI;AAC9B;AACA;AACA,QAAQ,IAAI,IAAI,GAAG,CAAC;AACpB,QAAQ,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AACtC,YAAY,IAAI,IAAI,MAAM,CAAC,UAAU;AACrC;AACA,QAAQ,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC;AACxC,QAAQ,IAAI,MAAM,GAAG,CAAC;AACtB,QAAQ,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AACtC,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;AAClD,YAAY,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACjC,YAAY,MAAM,IAAI,IAAI,CAAC,MAAM;AACjC;AACA,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,YAAY,QAAQ,EAAE;AACvD,YAAY,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC1D;AACA,QAAQ,OAAO,GAAG,CAAC,MAAM;AACzB;AACA;;AAEA,MAAM,WAAW,GAAG,QAAQ;AAC5B,MAAM,SAAS,GAAG,cAAc;AAChC,MAAM,YAAY,GAAG,kEAAkE;AACvF,MAAM,eAAe,GAAG,kBAAkB;AAC1C,MAAM,aAAa,CAAC;AACpB,IAAI,OAAO,UAAU,CAAC,IAAI,EAAE;AAC5B,QAAQ,MAAM,CAAC,GAAG,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACpD,QAAQ,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;AAClD,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,YAAY,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AAC1C;AACA,QAAQ,OAAO,SAAS,CAAC,MAAM;AAC/B;AACA,IAAI,OAAO,QAAQ,CAAC,MAAM,EAAE;AAC5B,QAAQ,MAAM,GAAG,GAAG,qBAAqB,CAAC,YAAY,CAAC,MAAM,CAAC;AAC9D,QAAQ,IAAI,aAAa,GAAG,EAAE;AAC9B,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7C,YAAY,aAAa,IAAI,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxD;AACA,QAAQ,MAAM,aAAa,GAAG,kBAAkB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AACvE,QAAQ,OAAO,aAAa;AAC5B;AACA;AACA,MAAM,cAAc,CAAC;AACrB,IAAI,OAAO,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,KAAK,EAAE;AAClD,QAAQ,MAAM,WAAW,GAAG,qBAAqB,CAAC,aAAa,CAAC,MAAM,CAAC;AACvE,QAAQ,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,WAAW,CAAC;AAClD,QAAQ,IAAI,GAAG,GAAG,EAAE;AACpB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE;AAC5D,YAAY,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,CAAC;AAC5D,YAAY,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;AAC5C;AACA,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,OAAO,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,KAAK,EAAE;AAClD,QAAQ,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACpD,QAAQ,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC;AAC1C,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC9C,YAAY,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC;AACvE;AACA,QAAQ,OAAO,GAAG;AAClB;AACA;AACA,MAAM,OAAO,CAAC;AACd,IAAI,OAAO,KAAK,CAAC,IAAI,EAAE;AACvB,QAAQ,OAAO,OAAO,IAAI,KAAK;AAC/B,eAAe,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;AACnC;AACA,IAAI,OAAO,QAAQ,CAAC,IAAI,EAAE;AAC1B,QAAQ,OAAO,OAAO,IAAI,KAAK;AAC/B,eAAe,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;AACtC;AACA,IAAI,OAAO,WAAW,CAAC,IAAI,EAAE;AAC7B,QAAQ,OAAO,OAAO,IAAI,KAAK;AAC/B,eAAe,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;AACzC;AACA,IAAI,OAAO,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,EAAE;AAC1C,QAAQ,MAAM,GAAG,GAAG,qBAAqB,CAAC,YAAY,CAAC,MAAM,CAAC;AAC9D,QAAQ,QAAQ,GAAG,CAAC,WAAW,EAAE;AACjC,YAAY,KAAK,MAAM;AACvB,gBAAgB,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;AAC7C,YAAY,KAAK,QAAQ;AACzB,gBAAgB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AACzC,YAAY,KAAK,KAAK;AACtB,gBAAgB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AACtC,YAAY,KAAK,QAAQ;AACzB,gBAAgB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AACzC,YAAY,KAAK,WAAW;AAC5B,gBAAgB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;AAC5C,YAAY,KAAK,SAAS;AAC1B,gBAAgB,OAAO,cAAc,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;AACzD,YAAY,KAAK,OAAO;AACxB,YAAY,KAAK,SAAS;AAC1B,gBAAgB,OAAO,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC;AACnD,YAAY;AACZ,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACpE;AACA;AACA,IAAI,OAAO,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,EAAE;AACzC,QAAQ,IAAI,CAAC,GAAG,EAAE;AAClB,YAAY,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC;AACrC;AACA,QAAQ,QAAQ,GAAG,CAAC,WAAW,EAAE;AACjC,YAAY,KAAK,MAAM;AACvB,gBAAgB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;AAC/C,YAAY,KAAK,QAAQ;AACzB,gBAAgB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;AAC3C,YAAY,KAAK,KAAK;AACtB,gBAAgB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;AACxC,YAAY,KAAK,QAAQ;AACzB,gBAAgB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;AAC3C,YAAY,KAAK,WAAW;AAC5B,gBAAgB,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;AAC9C,YAAY,KAAK,SAAS;AAC1B,gBAAgB,OAAO,cAAc,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC;AAC3D,YAAY,KAAK,OAAO;AACxB,YAAY,KAAK,SAAS;AAC1B,gBAAgB,OAAO,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC;AACrD,YAAY;AACZ,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACpE;AACA;AACA,IAAI,OAAO,QAAQ,CAAC,MAAM,EAAE;AAC5B,QAAQ,MAAM,GAAG,GAAG,qBAAqB,CAAC,YAAY,CAAC,MAAM,CAAC;AAC9D,QAAQ,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;AACzC,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;AACvD,YAAY,OAAO,IAAI,CAAC,MAAM,CAAC;AAC/B;AACA,aAAa;AACb,YAAY,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACtD;AACA;AACA,IAAI,OAAO,UAAU,CAAC,MAAM,EAAE;AAC9B,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;AACnD,QAAQ,IAAI,CAAC,SAAS,EAAE;AACxB,YAAY,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC;AACrC;AACA,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;AAC1C,YAAY,MAAM,IAAI,SAAS,CAAC,6CAA6C,CAAC;AAC9E;AACA,QAAQ,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;AACzC,YAAY,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACnD;AACA,aAAa;AACb,YAAY,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM;AAC1E;AACA;AACA,IAAI,OAAO,aAAa,CAAC,SAAS,EAAE;AACpC,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;AACtD,QAAQ,IAAI,CAAC,SAAS,EAAE;AACxB,YAAY,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC;AACrC;AACA,QAAQ,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;AAC7C,YAAY,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC;AAChF;AACA,QAAQ,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AACrG;AACA,IAAI,OAAO,WAAW,CAAC,IAAI,EAAE;AAC7B,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AAC7F;AACA,IAAI,OAAO,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,qBAAqB,EAAE;AAC1E,QAAQ,QAAQ,QAAQ;AACxB,YAAY,KAAK,OAAO;AACxB,gBAAgB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AAC5C,YAAY,KAAK,MAAM;AACvB,gBAAgB,OAAO,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC;AACrD,YAAY,KAAK,OAAO;AACxB,YAAY,KAAK,SAAS;AAC1B,gBAAgB,OAAO,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC;AACtD,YAAY,KAAK,SAAS;AAC1B,YAAY,KAAK,MAAM;AACvB,gBAAgB,OAAO,cAAc,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC;AAC5D,YAAY;AACZ,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AACzE;AACA;AACA,IAAI,OAAO,YAAY,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,qBAAqB,EAAE;AAC1E,QAAQ,QAAQ,QAAQ;AACxB,YAAY,KAAK,OAAO;AACxB,gBAAgB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC5C,YAAY,KAAK,MAAM;AACvB,gBAAgB,OAAO,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC;AACrD,YAAY,KAAK,OAAO;AACxB,YAAY,KAAK,SAAS;AAC1B,gBAAgB,OAAO,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC;AACtD,YAAY,KAAK,SAAS;AAC1B,YAAY,KAAK,MAAM;AACvB,gBAAgB,OAAO,cAAc,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;AAC5D,YAAY;AACZ,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AACzE;AACA;AACA,IAAI,OAAO,UAAU,CAAC,IAAI,EAAE;AAC5B,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM;AACxC,QAAQ,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC;AACvD,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE;AAC/C,YAAY,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AAC9C;AACA,QAAQ,OAAO,UAAU,CAAC,MAAM;AAChC;AACA,IAAI,OAAO,QAAQ,CAAC,MAAM,EAAE;AAC5B,QAAQ,MAAM,GAAG,GAAG,qBAAqB,CAAC,YAAY,CAAC,MAAM,CAAC;AAC9D,QAAQ,IAAI,GAAG,GAAG,EAAE;AACpB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7C,YAAY,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC9C;AACA,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,OAAO,KAAK,CAAC,MAAM,EAAE;AACzB,QAAQ,MAAM,GAAG,GAAG,qBAAqB,CAAC,YAAY,CAAC,MAAM,CAAC;AAC9D,QAAQ,IAAI,MAAM,GAAG,EAAE;AACvB,QAAQ,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM;AAC9B,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AACtC,YAAY,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;AAC/B,YAAY,IAAI,IAAI,GAAG,EAAE,EAAE;AAC3B,gBAAgB,MAAM,IAAI,GAAG;AAC7B;AACA,YAAY,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;AACvC;AACA,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,OAAO,OAAO,CAAC,SAAS,EAAE;AAC9B,QAAQ,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;AACpD,QAAQ,IAAI,CAAC,SAAS,EAAE;AACxB,YAAY,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC;AACrC;AACA,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;AACvC,YAAY,MAAM,IAAI,SAAS,CAAC,yCAAyC,CAAC;AAC1E;AACA,QAAQ,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AAClC,YAAY,SAAS,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AACvC;AACA,QAAQ,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AACxD,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACzD,YAAY,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC/C,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC;AACxC;AACA,QAAQ,OAAO,GAAG,CAAC,MAAM;AACzB;AACA,IAAI,OAAO,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,KAAK,EAAE;AACvD,QAAQ,OAAO,cAAc,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;AAC5D;AACA,IAAI,OAAO,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,KAAK,EAAE;AACvD,QAAQ,OAAO,cAAc,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC;AAC5D;AACA,IAAI,OAAO,aAAa,CAAC,MAAM,EAAE;AACjC,QAAQ,MAAM,QAAQ,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AAChD,QAAQ,IAAI,QAAQ,GAAG,CAAC,EAAE;AAC1B,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;AAC/C,gBAAgB,MAAM,IAAI,GAAG;AAC7B;AACA;AACA,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,OAAO,YAAY,CAAC,IAAI,EAAE;AAC9B,QAAQ,OAAO,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,KAAK,EAAE;AACjG;AACA;AACA,OAAO,CAAC,qBAAqB,GAAG,MAAM;AAYtC,SAAS,OAAO,CAAC,GAAG,GAAG,EAAE;AACzB,IAAI,MAAM,eAAe,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,GAAG,CAAC;AAChG,IAAI,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,eAAe,CAAC;AAC/C,IAAI,IAAI,UAAU,GAAG,CAAC;AACtB,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AAC7D,QAAQ,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE;AACjC,YAAY,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,KAAK;AACrC;AACA,KAAK,CAAC;AACN,IAAI,OAAO,GAAG,CAAC,MAAM;AACrB;;ACtXA;AACA;AACA;;AAiDA,SAAS,YAAY,CAAC,WAAW,EAAE,SAAS,EAAE;AAC9C,IAAI,IAAI,MAAM,GAAG,CAAC,CAAC;AACnB,IAAI,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;AAClC,QAAQ,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC;AAC9B,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACxD,QAAQ,MAAM,IAAI,WAAW,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;AACzF,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB,CAAC;AACD,SAAS,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE;AAClD,IAAI,MAAM,gBAAgB,GAAG,QAAQ,CAAC;AACtC,IAAI,IAAI,aAAa,GAAG,KAAK,CAAC;AAC9B,IAAI,IAAI,MAAM,GAAG,CAAC,CAAC;AACnB,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACpC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAChC,QAAQ,IAAI,KAAK,GAAG,OAAO,EAAE;AAC7B,YAAY,IAAI,MAAM,CAAC;AACvB,YAAY,IAAI,gBAAgB,GAAG,CAAC,EAAE;AACtC,gBAAgB,MAAM,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;AAC5C,gBAAgB,MAAM,GAAG,CAAC,CAAC;AAC3B,aAAa;AACb,iBAAiB;AACjB,gBAAgB,IAAI,gBAAgB,GAAG,CAAC,EAAE;AAC1C,oBAAoB,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE;AAChD,iBAAiB;AACjB,gBAAgB,MAAM,GAAG,IAAI,WAAW,CAAC,gBAAgB,CAAC,CAAC;AAC3D,gBAAgB,MAAM,GAAG,gBAAgB,CAAC;AAC1C,aAAa;AACb,YAAY,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;AACnD,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC/C,gBAAgB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;AACpD,gBAAgB,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,CAAC;AAC5E,gBAAgB,aAAa,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC;AACnE,aAAa;AACb,YAAY,OAAO,MAAM,CAAC;AAC1B,SAAS;AACT,QAAQ,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACrC,KAAK;AACL,IAAI,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC;AAeD,SAAS,cAAc,CAAC,GAAG,KAAK,EAAE;AAClC,IAAI,IAAI,YAAY,GAAG,CAAC,CAAC;AACzB,IAAI,IAAI,UAAU,GAAG,CAAC,CAAC;AACvB,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAC9B,QAAQ,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC;AACpC,KAAK;AACL,IAAI,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC;AACjD,IAAI,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;AAC3C,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAC9B,QAAQ,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AACtC,QAAQ,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC;AAClC,KAAK;AACL,IAAI,OAAO,OAAO,CAAC;AACnB,CAAC;AACD,SAAS,YAAY,GAAG;AACxB,IAAI,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9C,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,EAAE;AACvC,QAAQ,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAChE,QAAQ,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI,CAAC,CAAC;AAC3E,QAAQ,IAAI,UAAU,IAAI,UAAU,EAAE;AACtC,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;AACzD,SAAS;AACT,KAAK;AACL,IAAI,MAAM,YAAY,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AACnE,IAAI,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC;AACpD,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE;AACvD,QAAQ,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1B,KAAK;AACL,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACpC,IAAI,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;AAC/C,IAAI,MAAM,cAAc,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AACrE,IAAI,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,cAAc,CAAC,CAAC;AACxD,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE;AACvD,QAAQ,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,YAAY,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC5B,IAAI,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;AACnD,IAAI,QAAQ,QAAQ,GAAG,MAAM,EAAE;AAC/B,CAAC;AACD,SAAS,YAAY,CAAC,KAAK,EAAE;AAC7B,IAAI,MAAM,QAAQ,GAAG,CAAC,KAAK,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;AAC1D,IAAI,IAAI,MAAM,GAAG,GAAG,CAAC;AACrB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAChC,QAAQ,IAAI,QAAQ,IAAI,MAAM,EAAE;AAChC,YAAY,IAAI,KAAK,GAAG,CAAC,EAAE;AAC3B,gBAAgB,MAAM,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;AACnD,gBAAgB,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1D,gBAAgB,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;AACvD,gBAAgB,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AACnC,gBAAgB,OAAO,MAAM,CAAC;AAC9B,aAAa;AACb,YAAY,IAAI,MAAM,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACpD,YAAY,IAAI,OAAO,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;AACjD,YAAY,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE;AACnC,gBAAgB,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChD,gBAAgB,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;AACzD,gBAAgB,MAAM,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AAChE,gBAAgB,OAAO,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;AACjD,gBAAgB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE;AAC7D,oBAAoB,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AACjD,iBAAiB;AACjB,gBAAgB,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAClC,aAAa;AACb,YAAY,OAAO,MAAM,CAAC;AAC1B,SAAS;AACT,QAAQ,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE;AAChC,CAAC;AACD,SAAS,aAAa,CAAC,YAAY,EAAE,YAAY,EAAE;AACnD,IAAI,IAAI,YAAY,CAAC,UAAU,KAAK,YAAY,CAAC,UAAU,EAAE;AAC7D,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,IAAI,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC;AAC/C,IAAI,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC;AAC/C,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE;AACnC,YAAY,OAAO,KAAK,CAAC;AACzB,SAAS;AACT,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,CAAC;AACD,SAAS,SAAS,CAAC,WAAW,EAAE,UAAU,EAAE;AAC5C,IAAI,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACzC,IAAI,IAAI,UAAU,GAAG,GAAG,CAAC,MAAM,EAAE;AACjC,QAAQ,OAAO,EAAE,CAAC;AAClB,KAAK;AACL,IAAI,MAAM,GAAG,GAAG,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC;AACxC,IAAI,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;AACnC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AAClC,QAAQ,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACzB,KAAK;AACL,IAAI,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3C,IAAI,OAAO,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACrC;;ACxMA;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;;;AAKA,SAAS,YAAY,GAAG;AACxB,IAAI,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACvC,QAAQ,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;AAC7F,KAAK;AACL,CAAC;AACD,SAAS,MAAM,CAAC,OAAO,EAAE;AACzB,IAAI,IAAI,YAAY,GAAG,CAAC,CAAC;AACzB,IAAI,IAAI,UAAU,GAAG,CAAC,CAAC;AACvB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7C,QAAQ,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAClC,QAAQ,YAAY,IAAI,MAAM,CAAC,UAAU,CAAC;AAC1C,KAAK;AACL,IAAI,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC;AACjD,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7C,QAAQ,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAClC,QAAQ,OAAO,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC;AACxD,QAAQ,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC;AACxC,KAAK;AACL,IAAI,OAAO,OAAO,CAAC,MAAM,CAAC;AAC1B,CAAC;AACD,SAAS,iBAAiB,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE;AAC7E,IAAI,IAAI,EAAE,WAAW,YAAY,UAAU,CAAC,EAAE;AAC9C,QAAQ,SAAS,CAAC,KAAK,GAAG,mDAAmD,CAAC;AAC9E,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;AACjC,QAAQ,SAAS,CAAC,KAAK,GAAG,8CAA8C,CAAC;AACzE,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,IAAI,IAAI,WAAW,GAAG,CAAC,EAAE;AACzB,QAAQ,SAAS,CAAC,KAAK,GAAG,6CAA6C,CAAC;AACxE,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,IAAI,IAAI,WAAW,GAAG,CAAC,EAAE;AACzB,QAAQ,SAAS,CAAC,KAAK,GAAG,6CAA6C,CAAC;AACxE,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,WAAW,GAAG,WAAW,IAAI,CAAC,EAAE;AAClE,QAAQ,SAAS,CAAC,KAAK,GAAG,+FAA+F,CAAC;AAC1H,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB;;AAEA,MAAM,UAAU,CAAC;AACjB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AACxB,KAAK;AACL,IAAI,KAAK,CAAC,GAAG,EAAE;AACf,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,KAAK;AACL,IAAI,KAAK,GAAG;AACZ,QAAQ,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClC,KAAK;AACL;;AAEA,MAAM,OAAO,GAAG,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,MAAM,YAAY,GAAG,YAAY,CAAC;AAClC,MAAM,IAAI,GAAG,MAAM,CAAC;AACpB,MAAM,cAAc,GAAG,cAAc,CAAC;AACtC,MAAM,WAAW,GAAG,WAAW,CAAC;AAChC,MAAM,QAAQ,GAAG,SAAS,CAAC;AAC3B,MAAM,SAAS,GAAG,UAAU,CAAC;AAC7B,MAAM,UAAU,GAAG,WAAW,CAAC;AAC/B,MAAM,cAAc,GAAG,eAAe,CAAC;AACvC,MAAM,QAAQ,GAAG,SAAS,CAAC;AAC3B,MAAM,MAAM,GAAG,OAAO,CAAC;AACvB,MAAM,KAAK,GAAG,OAAO,CAAC;AACtB,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,MAAM,YAAY,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;AACxC,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AACrC,MAAM,mBAAmB,GAAG,cAAc,CAAC;AAC3C,MAAM,iBAAiB,GAAG,cAAc,CAAC;AACzC,MAAM,eAAe,GAAG,YAAY;;AAEpC,SAAS,QAAQ,CAAC,SAAS,EAAE;AAC7B,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,OAAO,EAAE,GAAG,MAAM,IAAI,SAAS,SAAS,CAAC;AAC7C,YAAY,WAAW,CAAC,GAAG,IAAI,EAAE;AACjC,gBAAgB,IAAI,EAAE,CAAC;AACvB,gBAAgB,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;AAC/B,gBAAgB,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAC7C,gBAAgB,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,SAAS,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;AAChG,gBAAgB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,QAAQ,GAAGoB,qBAA+B,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC;AACjI,aAAa;AACb,YAAY,IAAI,QAAQ,GAAG;AAC3B,gBAAgB,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC;AACxD,aAAa;AACb,YAAY,IAAI,QAAQ,CAAC,KAAK,EAAE;AAChC,gBAAgB,IAAI,CAAC,YAAY,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;AAC1D,aAAa;AACb,YAAY,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE;AAC3D,gBAAgB,MAAM,IAAI,GAAG,WAAW,YAAY,WAAW,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC;AAC5G,gBAAgB,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE;AAC9E,oBAAoB,OAAO,CAAC,CAAC,CAAC;AAC9B,iBAAiB;AACjB,gBAAgB,MAAM,SAAS,GAAG,WAAW,GAAG,WAAW,CAAC;AAC5D,gBAAgB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AAC1E,gBAAgB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;AAC/C,oBAAoB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAC7D,oBAAoB,OAAO,WAAW,CAAC;AACvC,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AAC/C,gBAAgB,OAAO,SAAS,CAAC;AACjC,aAAa;AACb,YAAY,KAAK,CAAC,QAAQ,GAAG,KAAK,EAAE;AACpC,gBAAgB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACrC,oBAAoB,IAAI,CAAC,KAAK,GAAG,oCAAoC,CAAC;AACtE,oBAAoB,OAAO,YAAY,CAAC;AACxC,iBAAiB;AACjB,gBAAgB,IAAI,QAAQ,EAAE;AAC9B,oBAAoB,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;AACzE,iBAAiB;AACjB,gBAAgB,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,KAAK,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU;AAC5F,sBAAsB,IAAI,CAAC,YAAY,CAAC,MAAM;AAC9C,sBAAsB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC;AACvD,aAAa;AACb,YAAY,MAAM,GAAG;AACrB,gBAAgB,OAAO;AACvB,oBAAoB,GAAG,KAAK,CAAC,MAAM,EAAE;AACrC,oBAAoB,SAAS,EAAE,IAAI,CAAC,SAAS;AAC7C,oBAAoB,QAAQ,EAAEC,OAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;AACxE,iBAAiB,CAAC;AAClB,aAAa;AACb,SAAS;AACT,QAAQ,EAAE,CAAC,IAAI,GAAG,UAAU;AAC5B,QAAQ,EAAE,CAAC;AACX;;AAEA,MAAM,cAAc,CAAC;AACrB,IAAI,WAAW,CAAC,EAAE,WAAW,GAAG,CAAC,EAAE,KAAK,GAAG,YAAY,EAAE,QAAQ,GAAG,EAAE,EAAE,iBAAiB,GAAG,UAAU,GAAG,GAAG,EAAE,EAAE;AAChH,QAAQ,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AACvC,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AAC3B,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACjC,QAAQ,IAAI,CAAC,qBAAqB,GAAGD,qBAA+B,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;AACrG,KAAK;AACL,IAAI,OAAO,SAAS,GAAG;AACvB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC;AACzB,KAAK;AACL,IAAI,IAAI,iBAAiB,GAAG;AAC5B,QAAQ,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC;AACzD,KAAK;AACL,IAAI,IAAI,iBAAiB,CAAC,KAAK,EAAE;AACjC,QAAQ,IAAI,CAAC,qBAAqB,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;AAC3D,KAAK;AACL,IAAI,MAAM,GAAG;AACb,QAAQ,OAAO;AACf,YAAY,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI;AAC5C,YAAY,WAAW,EAAE,IAAI,CAAC,WAAW;AACzC,YAAY,KAAK,EAAE,IAAI,CAAC,KAAK;AAC7B,YAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnC,YAAY,iBAAiB,EAAEC,OAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC;AAClF,SAAS,CAAC;AACV,KAAK;AACL,CAAC;AACD,cAAc,CAAC,IAAI,GAAG,WAAW;;AAEjC,MAAM,UAAU,SAAS,cAAc,CAAC;AACxC,IAAI,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE;AACnD,QAAQ,MAAM,SAAS,CAAC,6EAA6E,CAAC,CAAC;AACvG,KAAK;AACL,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE;AAC5B,QAAQ,MAAM,SAAS,CAAC,6EAA6E,CAAC,CAAC;AACvG,KAAK;AACL,CAAC;AACD,UAAU,CAAC,IAAI,GAAG,YAAY;;AAE9B,MAAM,wBAAwB,SAAS,QAAQ,CAAC,cAAc,CAAC,CAAC;AAChE,IAAI,WAAW,CAAC,EAAE,OAAO,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE;AACxC,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAC3B,QAAQ,KAAK,EAAE,CAAC;AAChB,QAAQ,IAAI,OAAO,EAAE;AACrB,YAAY,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,SAAS,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;AAC7F,YAAY,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,QAAQ,GAAGD,qBAA+B,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC;AAC/H,YAAY,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACxF,YAAY,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,SAAS,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAC1F,YAAY,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,aAAa,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;AACrG,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;AAC/B,YAAY,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;AAChC,YAAY,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AACvC,SAAS;AACT,KAAK;AACL,IAAI,KAAK,CAAC,QAAQ,GAAG,KAAK,EAAE;AAC5B,QAAQ,IAAI,UAAU,GAAG,CAAC,CAAC;AAC3B,QAAQ,QAAQ,IAAI,CAAC,QAAQ;AAC7B,YAAY,KAAK,CAAC;AAClB,gBAAgB,UAAU,IAAI,IAAI,CAAC;AACnC,gBAAgB,MAAM;AACtB,YAAY,KAAK,CAAC;AAClB,gBAAgB,UAAU,IAAI,IAAI,CAAC;AACnC,gBAAgB,MAAM;AACtB,YAAY,KAAK,CAAC;AAClB,gBAAgB,UAAU,IAAI,IAAI,CAAC;AACnC,gBAAgB,MAAM;AACtB,YAAY,KAAK,CAAC;AAClB,gBAAgB,UAAU,IAAI,IAAI,CAAC;AACnC,gBAAgB,MAAM;AACtB,YAAY;AACZ,gBAAgB,IAAI,CAAC,KAAK,GAAG,mBAAmB,CAAC;AACjD,gBAAgB,OAAO,YAAY,CAAC;AACpC,SAAS;AACT,QAAQ,IAAI,IAAI,CAAC,aAAa;AAC9B,YAAY,UAAU,IAAI,IAAI,CAAC;AAC/B,QAAQ,IAAI,IAAI,CAAC,SAAS,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACpD,YAAY,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AAC9C,YAAY,IAAI,CAAC,QAAQ,EAAE;AAC3B,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;AAC5C,gBAAgB,MAAM,IAAI,IAAI,CAAC;AAC/B,gBAAgB,UAAU,IAAI,MAAM,CAAC;AACrC,gBAAgB,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;AACxC,aAAa;AACb,YAAY,OAAO,OAAO,CAAC,MAAM,CAAC;AAClC,SAAS;AACT,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AAC7B,YAAY,MAAM,UAAU,GAAGE,UAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AACrE,YAAY,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;AAC3D,YAAY,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC;AAC/C,YAAY,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;AACrD,YAAY,OAAO,CAAC,CAAC,CAAC,IAAI,UAAU,GAAG,IAAI,CAAC,CAAC;AAC7C,YAAY,IAAI,CAAC,QAAQ,EAAE;AAC3B,gBAAgB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE;AACnD,oBAAoB,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAC3D,gBAAgB,OAAO,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;AACtD,aAAa;AACb,YAAY,OAAO,OAAO,CAAC,MAAM,CAAC;AAClC,SAAS;AACT,QAAQ,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AACzE,QAAQ,OAAO,CAAC,CAAC,CAAC,IAAI,UAAU,GAAG,IAAI,CAAC,CAAC;AACzC,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC;AAC9C,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE;AACzD,gBAAgB,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACnD,YAAY,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAChF,SAAS;AACT,QAAQ,OAAO,OAAO,CAAC,MAAM,CAAC;AAC9B,KAAK;AACL,IAAI,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE;AACnD,QAAQ,MAAM,SAAS,GAAGF,qBAA+B,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AACpF,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE;AAC3E,YAAY,OAAO,CAAC,CAAC,CAAC;AACtB,SAAS;AACT,QAAQ,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW,CAAC,CAAC;AACrF,QAAQ,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AACpC,YAAY,IAAI,CAAC,KAAK,GAAG,oBAAoB,CAAC;AAC9C,YAAY,OAAO,CAAC,CAAC,CAAC;AACtB,SAAS;AACT,QAAQ,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACjD,QAAQ,QAAQ,YAAY;AAC5B,YAAY,KAAK,IAAI;AACrB,gBAAgB,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;AACpC,gBAAgB,MAAM;AACtB,YAAY,KAAK,IAAI;AACrB,gBAAgB,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;AACpC,gBAAgB,MAAM;AACtB,YAAY,KAAK,IAAI;AACrB,gBAAgB,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;AACpC,gBAAgB,MAAM;AACtB,YAAY,KAAK,IAAI;AACrB,gBAAgB,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;AACpC,gBAAgB,MAAM;AACtB,YAAY;AACZ,gBAAgB,IAAI,CAAC,KAAK,GAAG,mBAAmB,CAAC;AACjD,gBAAgB,OAAO,CAAC,CAAC,CAAC;AAC1B,SAAS;AACT,QAAQ,IAAI,CAAC,aAAa,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI,CAAC;AAC5D,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC/B,QAAQ,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAClD,QAAQ,IAAI,aAAa,KAAK,IAAI,EAAE;AACpC,YAAY,IAAI,CAAC,SAAS,IAAI,aAAa,CAAC,CAAC;AAC7C,YAAY,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACjC,SAAS;AACT,aAAa;AACb,YAAY,IAAI,KAAK,GAAG,CAAC,CAAC;AAC1B,YAAY,IAAI,kBAAkB,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;AAC7E,YAAY,IAAI,wBAAwB,GAAG,GAAG,CAAC;AAC/C,YAAY,OAAO,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE;AAC5C,gBAAgB,kBAAkB,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;AACxE,gBAAgB,KAAK,EAAE,CAAC;AACxB,gBAAgB,IAAI,KAAK,IAAI,SAAS,CAAC,MAAM,EAAE;AAC/C,oBAAoB,IAAI,CAAC,KAAK,GAAG,uDAAuD,CAAC;AACzF,oBAAoB,OAAO,CAAC,CAAC,CAAC;AAC9B,iBAAiB;AACjB,gBAAgB,IAAI,KAAK,KAAK,wBAAwB,EAAE;AACxD,oBAAoB,wBAAwB,IAAI,GAAG,CAAC;AACpD,oBAAoB,MAAM,cAAc,GAAG,IAAI,UAAU,CAAC,wBAAwB,CAAC,CAAC;AACpF,oBAAoB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC,EAAE;AACtE,wBAAwB,cAAc,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAClE,oBAAoB,kBAAkB,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,UAAU,CAAC,wBAAwB,CAAC,CAAC;AACtG,iBAAiB;AACjB,aAAa;AACb,YAAY,IAAI,CAAC,WAAW,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;AAC3C,YAAY,kBAAkB,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;AACpE,YAAY,MAAM,cAAc,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;AACzD,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE;AAC1C,gBAAgB,cAAc,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAC1D,YAAY,kBAAkB,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;AAC3E,YAAY,kBAAkB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACnD,YAAY,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC;AACrC,gBAAgB,IAAI,CAAC,SAAS,GAAGG,YAAoB,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;AAC7E,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtC,gBAAgB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;AAC7E,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,EAAE,IAAI,CAAC,QAAQ,KAAK,CAAC;AACjC,aAAa,IAAI,CAAC,aAAa,CAAC,EAAE;AAClC,YAAY,QAAQ,IAAI,CAAC,SAAS;AAClC,gBAAgB,KAAK,CAAC,CAAC;AACvB,gBAAgB,KAAK,CAAC,CAAC;AACvB,gBAAgB,KAAK,CAAC,CAAC;AACvB,gBAAgB,KAAK,CAAC,CAAC;AACvB,gBAAgB,KAAK,CAAC,CAAC;AACvB,gBAAgB,KAAK,EAAE,CAAC;AACxB,gBAAgB,KAAK,EAAE,CAAC;AACxB,gBAAgB,KAAK,EAAE,CAAC;AACxB,gBAAgB,KAAK,EAAE,CAAC;AACxB,gBAAgB,KAAK,EAAE,CAAC;AACxB,gBAAgB,KAAK,EAAE,CAAC;AACxB,gBAAgB,KAAK,EAAE,CAAC;AACxB,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,IAAI,CAAC,KAAK,GAAG,8CAA8C,CAAC;AAChF,oBAAoB,OAAO,CAAC,CAAC,CAAC;AAC9B,aAAa;AACb,SAAS;AACT,QAAQ,QAAQ,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;AAChD,KAAK;AACL,IAAI,MAAM,GAAG;AACb,QAAQ,OAAO;AACf,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE;AAC7B,YAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnC,YAAY,SAAS,EAAE,IAAI,CAAC,SAAS;AACrC,YAAY,aAAa,EAAE,IAAI,CAAC,aAAa;AAC7C,SAAS,CAAC;AACV,KAAK;AACL,CAAC;AACD,wBAAwB,CAAC,IAAI,GAAG,qBAAqB;;AAErD,MAAM,gBAAgB,SAAS,cAAc,CAAC;AAC9C,IAAI,WAAW,CAAC,EAAE,QAAQ,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE;AACzC,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACvB,QAAQ,KAAK,EAAE,CAAC;AAChB,QAAQ,IAAI,CAAC,gBAAgB,GAAG,CAAC,EAAE,GAAG,QAAQ,CAAC,gBAAgB,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;AACxG,QAAQ,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE,GAAG,QAAQ,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;AAChG,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,QAAQ,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAChF,KAAK;AACL,IAAI,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE;AACnD,QAAQ,MAAM,IAAI,GAAGH,qBAA+B,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AAC/E,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE;AACtE,YAAY,OAAO,CAAC,CAAC,CAAC;AACtB,SAAS;AACT,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW,CAAC,CAAC;AAChF,QAAQ,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AACpC,YAAY,IAAI,CAAC,KAAK,GAAG,oBAAoB,CAAC;AAC9C,YAAY,OAAO,CAAC,CAAC,CAAC;AACtB,SAAS;AACT,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;AACnC,YAAY,IAAI,CAAC,KAAK,GAAG,2CAA2C,CAAC;AACrE,YAAY,OAAO,CAAC,CAAC,CAAC;AACtB,SAAS;AACT,QAAQ,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;AACtD,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACnC,YAAY,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACjC,YAAY,QAAQ,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;AACpD,SAAS;AACT,QAAQ,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACpD,QAAQ,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE;AACzC,YAAY,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,YAAY,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACjC,YAAY,QAAQ,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;AACpD,SAAS;AACT,QAAQ,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAC1C,QAAQ,IAAI,KAAK,GAAG,CAAC,EAAE;AACvB,YAAY,IAAI,CAAC,KAAK,GAAG,iBAAiB,CAAC;AAC3C,YAAY,OAAO,CAAC,CAAC,CAAC;AACtB,SAAS;AACT,QAAQ,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE;AAC5C,YAAY,IAAI,CAAC,KAAK,GAAG,uDAAuD,CAAC;AACjF,YAAY,OAAO,CAAC,CAAC,CAAC;AACtB,SAAS;AACT,QAAQ,MAAM,SAAS,GAAG,WAAW,GAAG,CAAC,CAAC;AAC1C,QAAQ,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,KAAK,CAAC,CAAC;AAC7E,QAAQ,IAAI,gBAAgB,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI;AAChD,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;AACjE,QAAQ,IAAI,CAAC,MAAM,GAAGG,YAAoB,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;AAChE,QAAQ,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC;AACrD,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;AACxE,QAAQ,IAAI,CAAC,WAAW,GAAG,KAAK,GAAG,CAAC,CAAC;AACrC,QAAQ,QAAQ,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;AAChD,KAAK;AACL,IAAI,KAAK,CAAC,QAAQ,GAAG,KAAK,EAAE;AAC5B,QAAQ,IAAI,MAAM,CAAC;AACnB,QAAQ,IAAI,OAAO,CAAC;AACpB,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG;AAC7B,YAAY,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACrC,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACnC,YAAY,MAAM,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;AACxC,YAAY,IAAI,QAAQ,KAAK,KAAK,EAAE;AACpC,gBAAgB,OAAO,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;AACjD,gBAAgB,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAClC,aAAa;AACb,YAAY,OAAO,MAAM,CAAC;AAC1B,SAAS;AACT,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE;AAC/B,YAAY,MAAM,UAAU,GAAGD,UAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAClE,YAAY,IAAI,UAAU,CAAC,UAAU,GAAG,GAAG,EAAE;AAC7C,gBAAgB,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAAC;AAC9C,gBAAgB,QAAQ,YAAY,EAAE;AACtC,aAAa;AACb,YAAY,MAAM,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AAChE,YAAY,IAAI,QAAQ;AACxB,gBAAgB,OAAO,MAAM,CAAC;AAC9B,YAAY,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;AAC3D,YAAY,OAAO,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;AAC7C,YAAY,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC;AACtD,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC,EAAE;AAC1D,gBAAgB,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAChD,YAAY,OAAO,MAAM,CAAC;AAC1B,SAAS;AACT,QAAQ,MAAM,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;AACpC,QAAQ,IAAI,QAAQ,KAAK,KAAK,EAAE;AAChC,YAAY,OAAO,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;AAC7C,YAAY,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;AACrC,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK;AACL,IAAI,MAAM,GAAG;AACb,QAAQ,OAAO;AACf,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE;AAC7B,YAAY,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;AACnD,YAAY,YAAY,EAAE,IAAI,CAAC,YAAY;AAC3C,YAAY,MAAM,EAAE,IAAI,CAAC,MAAM;AAC/B,SAAS,CAAC;AACV,KAAK;AACL,CAAC;AACD,gBAAgB,CAAC,IAAI,GAAG,aAAa;;AAErC,MAAM,SAAS,GAAG,EAAE;;AAEpB,MAAM,SAAS,SAAS,cAAc,CAAC;AACvC,IAAI,WAAW,CAAC,EAAE,IAAI,GAAG,YAAY,EAAE,QAAQ,GAAG,KAAK,EAAE,eAAe,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,EAAE,cAAc,EAAE;AAChH,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACjC,QAAQ,IAAI,eAAe,EAAE;AAC7B,YAAY,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;AACnD,SAAS;AACT,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,wBAAwB,CAAC,UAAU,CAAC,CAAC;AAChE,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC;AACzD,QAAQ,IAAI,CAAC,UAAU,GAAG,cAAc,GAAG,IAAI,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;AACvG,KAAK;AACL,IAAI,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE;AACnD,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACtJ,QAAQ,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE;AACjC,YAAY,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AAC/C,YAAY,OAAO,YAAY,CAAC;AAChC,SAAS;AACT,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM;AACtC,YAAY,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;AACzD,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM;AACvC,YAAY,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;AAC1D,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM;AACzC,YAAY,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;AAC5D,QAAQ,OAAO,YAAY,CAAC;AAC5B,KAAK;AACL,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE;AAC5B,QAAQ,MAAM,OAAO,GAAG,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;AACnD,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB,YAAY,qBAAqB,CAAC,IAAI,CAAC,CAAC;AACxC,SAAS;AACT,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AACxD,QAAQ,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AAClC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE;AAC5C,YAAY,OAAO,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACzD,YAAY,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACrD,YAAY,OAAO,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,SAAS;AACT,aAAa;AACb,YAAY,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAClE,YAAY,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC;AAC5D,YAAY,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC9D,YAAY,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACvC,YAAY,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AACzC,SAAS;AACT,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB,YAAY,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC;AACnC,SAAS;AACT,QAAQ,OAAO,YAAY,CAAC;AAC5B,KAAK;AACL,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,MAAM,GAAG;AACvB,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE;AAC7B,YAAY,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AAC1C,YAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC5C,YAAY,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;AAChD,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;AAC3B,YAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnC,SAAS,CAAC;AACV,QAAQ,IAAI,IAAI,CAAC,eAAe;AAChC,YAAY,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;AACnE,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK;AACL,IAAI,QAAQ,CAAC,QAAQ,GAAG,OAAO,EAAE;AACjC,QAAQ,IAAI,QAAQ,KAAK,OAAO,EAAE;AAClC,YAAY,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;AAC1C,SAAS;AACT,QAAQ,OAAOD,OAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AACrD,KAAK;AACL,IAAI,eAAe,GAAG;AACtB,QAAQ,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAEA,OAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAC9G,KAAK;AACL,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,QAAQ,IAAI,IAAI,KAAK,KAAK,EAAE;AAC5B,YAAY,OAAO,IAAI,CAAC;AACxB,SAAS;AACT,QAAQ,IAAI,EAAE,KAAK,YAAY,IAAI,CAAC,WAAW,CAAC,EAAE;AAClD,YAAY,OAAO,KAAK,CAAC;AACzB,SAAS;AACT,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;AACrC,QAAQ,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;AACvC,QAAQ,OAAOG,aAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACxD,KAAK;AACL,CAAC;AACD,SAAS,CAAC,IAAI,GAAG,WAAW,CAAC;AAC7B,SAAS,qBAAqB,CAAC,SAAS,EAAE;AAC1C,IAAI,IAAI,SAAS,YAAY,SAAS,CAAC,WAAW,EAAE;AACpD,QAAQ,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE;AACxD,YAAY,IAAI,qBAAqB,CAAC,KAAK,CAAC,EAAE;AAC9C,gBAAgB,SAAS,CAAC,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC3D,aAAa;AACb,SAAS;AACT,KAAK;AACL,IAAI,OAAO,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC;AACjD;;AAEA,MAAM,eAAe,SAAS,SAAS,CAAC;AACxC,IAAI,WAAW,CAAC,EAAE,KAAK,GAAG,YAAY,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,EAAE,oBAAoB,EAAE;AACpF,QAAQ,KAAK,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;AAChD,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACnC,SAAS;AACT,KAAK;AACL,IAAI,QAAQ,GAAG;AACf,QAAQ,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACrC,KAAK;AACL,IAAI,QAAQ,CAAC,KAAK,EAAE;AACpB,QAAQ,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;AACtC,KAAK;AACL,IAAI,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE;AACnD,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACtJ,QAAQ,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE;AACjC,YAAY,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AAC/C,YAAY,OAAO,YAAY,CAAC;AAChC,SAAS;AACT,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACtD,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM;AACtC,YAAY,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;AACzD,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM;AACvC,YAAY,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;AAC1D,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM;AACzC,YAAY,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;AAC5D,QAAQ,OAAO,YAAY,CAAC;AAC5B,KAAK;AACL,IAAI,eAAe,GAAG;AACtB,QAAQ,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvE,KAAK;AACL,CAAC;AACD,eAAe,CAAC,IAAI,GAAG,iBAAiB;;AAExC,MAAM,wBAAwB,SAAS,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC5D,IAAI,WAAW,CAAC,EAAE,SAAS,GAAG,IAAI,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,EAAE;AAC1D,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AACnC,KAAK;AACL,CAAC;AACD,wBAAwB,CAAC,IAAI,GAAG,qBAAqB;;AAErD,IAAI,IAAI,CAAC;AACT,MAAM,SAAS,SAAS,SAAS,CAAC;AAClC,IAAI,WAAW,CAAC,UAAU,GAAG,EAAE,EAAE;AACjC,QAAQ,KAAK,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;AACpD,QAAQ,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3C,KAAK;AACL,CAAC;AACD,IAAI,GAAG,SAAS,CAAC;AACjB,CAAC,MAAM;AACP,IAAI,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC;AAC/B,CAAC,GAAG,CAAC;AACL,SAAS,CAAC,IAAI,GAAG,WAAW;;AAE5B,SAAS,eAAe,CAAC,WAAW,EAAE,OAAO,EAAE;AAC/C,IAAI,IAAI,WAAW,YAAY,OAAO,EAAE;AACxC,QAAQ,OAAO,WAAW,CAAC;AAC3B,KAAK;AACL,IAAI,MAAM,SAAS,GAAG,IAAI,OAAO,EAAE,CAAC;AACpC,IAAI,SAAS,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;AAC5C,IAAI,SAAS,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;AAC9C,IAAI,SAAS,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;AAC9C,IAAI,SAAS,CAAC,qBAAqB,GAAG,WAAW,CAAC,qBAAqB,CAAC;AACxE,IAAI,OAAO,SAAS,CAAC;AACrB,CAAC;AACD,SAAS,YAAY,CAAC,WAAW,EAAE,WAAW,GAAG,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC,MAAM,EAAE;AACtF,IAAI,MAAM,cAAc,GAAG,WAAW,CAAC;AACvC,IAAI,IAAI,YAAY,GAAG,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;AACrD,IAAI,MAAM,SAAS,GAAG,IAAI,cAAc,EAAE,CAAC;AAC3C,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE;AAC9E,QAAQ,YAAY,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;AAC7C,QAAQ,OAAO;AACf,YAAY,MAAM,EAAE,CAAC,CAAC;AACtB,YAAY,MAAM,EAAE,YAAY;AAChC,SAAS,CAAC;AACV,KAAK;AACL,IAAI,MAAM,SAAS,GAAG,WAAW,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW,CAAC,CAAC;AACnF,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;AAC3B,QAAQ,YAAY,CAAC,KAAK,GAAG,oBAAoB,CAAC;AAClD,QAAQ,OAAO;AACf,YAAY,MAAM,EAAE,CAAC,CAAC;AACtB,YAAY,MAAM,EAAE,YAAY;AAChC,SAAS,CAAC;AACV,KAAK;AACL,IAAI,IAAI,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AAC3F,IAAI,IAAI,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC9C,QAAQ,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACpE,KAAK;AACL,IAAI,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE;AAC7B,QAAQ,YAAY,CAAC,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC;AACxD,QAAQ,OAAO;AACf,YAAY,MAAM,EAAE,CAAC,CAAC;AACtB,YAAY,MAAM,EAAE,YAAY;AAChC,SAAS,CAAC;AACV,KAAK;AACL,IAAI,WAAW,GAAG,YAAY,CAAC;AAC/B,IAAI,WAAW,IAAI,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC;AACpD,IAAI,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AACxF,IAAI,IAAI,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC/C,QAAQ,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACrE,KAAK;AACL,IAAI,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE;AAC7B,QAAQ,YAAY,CAAC,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC;AACzD,QAAQ,OAAO;AACf,YAAY,MAAM,EAAE,CAAC,CAAC;AACtB,YAAY,MAAM,EAAE,YAAY;AAChC,SAAS,CAAC;AACV,KAAK;AACL,IAAI,WAAW,GAAG,YAAY,CAAC;AAC/B,IAAI,WAAW,IAAI,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC;AACrD,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa;AAC3C,QAAQ,YAAY,CAAC,QAAQ,CAAC,gBAAgB,EAAE;AAChD,QAAQ,YAAY,CAAC,KAAK,GAAG,yDAAyD,CAAC;AACvF,QAAQ,OAAO;AACf,YAAY,MAAM,EAAE,CAAC,CAAC;AACtB,YAAY,MAAM,EAAE,YAAY;AAChC,SAAS,CAAC;AACV,KAAK;AACL,IAAI,IAAI,WAAW,GAAG,SAAS,CAAC;AAChC,IAAI,QAAQ,YAAY,CAAC,OAAO,CAAC,QAAQ;AACzC,QAAQ,KAAK,CAAC;AACd,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE;AACrD,iBAAiB,YAAY,CAAC,OAAO,CAAC,SAAS,KAAK,KAAK,CAAC,EAAE;AAC5D,gBAAgB,YAAY,CAAC,KAAK,GAAG,4DAA4D,CAAC;AAClG,gBAAgB,OAAO;AACvB,oBAAoB,MAAM,EAAE,CAAC,CAAC;AAC9B,oBAAoB,MAAM,EAAE,YAAY;AACxC,iBAAiB,CAAC;AAClB,aAAa;AACb,YAAY,QAAQ,YAAY,CAAC,OAAO,CAAC,SAAS;AAClD,gBAAgB,KAAK,CAAC;AACtB,oBAAoB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa;AAC3D,yBAAyB,YAAY,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;AAC5D,wBAAwB,YAAY,CAAC,KAAK,GAAG,gCAAgC,CAAC;AAC9E,wBAAwB,OAAO;AAC/B,4BAA4B,MAAM,EAAE,CAAC,CAAC;AACtC,4BAA4B,MAAM,EAAE,YAAY;AAChD,yBAAyB,CAAC;AAC1B,qBAAqB;AACrB,oBAAoB,WAAW,GAAG,SAAS,CAAC,YAAY,CAAC;AACzD,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,CAAC;AACtB,oBAAoB,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC;AACpD,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,CAAC;AACtB,oBAAoB,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC;AACpD,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,CAAC;AACtB,oBAAoB,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC;AACtD,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,CAAC;AACtB,oBAAoB,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;AACxD,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,CAAC;AACtB,oBAAoB,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC;AACjD,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,CAAC;AACtB,oBAAoB,WAAW,GAAG,SAAS,CAAC,gBAAgB,CAAC;AAC7D,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,WAAW,GAAG,SAAS,CAAC,UAAU,CAAC;AACvD,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,WAAW,GAAG,SAAS,CAAC,UAAU,CAAC;AACvD,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,WAAW,GAAG,SAAS,CAAC,wBAAwB,CAAC;AACrE,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC;AACjD,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,YAAY,CAAC,KAAK,GAAG,8CAA8C,CAAC;AACxF,oBAAoB,OAAO;AAC3B,wBAAwB,MAAM,EAAE,CAAC,CAAC;AAClC,wBAAwB,MAAM,EAAE,YAAY;AAC5C,qBAAqB,CAAC;AACtB,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,WAAW,GAAG,SAAS,CAAC,QAAQ,CAAC;AACrD,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC;AAChD,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,WAAW,GAAG,SAAS,CAAC,aAAa,CAAC;AAC1D,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,WAAW,GAAG,SAAS,CAAC,eAAe,CAAC;AAC5D,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,WAAW,GAAG,SAAS,CAAC,aAAa,CAAC;AAC1D,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,WAAW,GAAG,SAAS,CAAC,cAAc,CAAC;AAC3D,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC;AACtD,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC;AACpD,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,WAAW,GAAG,SAAS,CAAC,eAAe,CAAC;AAC5D,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,WAAW,GAAG,SAAS,CAAC,aAAa,CAAC;AAC1D,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,WAAW,GAAG,SAAS,CAAC,aAAa,CAAC;AAC1D,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,WAAW,GAAG,SAAS,CAAC,aAAa,CAAC;AAC1D,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,WAAW,GAAG,SAAS,CAAC,eAAe,CAAC;AAC5D,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,WAAW,GAAG,SAAS,CAAC,eAAe,CAAC;AAC5D,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC;AACtD,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC;AACjD,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC;AACtD,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,WAAW,GAAG,SAAS,CAAC,QAAQ,CAAC;AACrD,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,WAAW,GAAG,SAAS,CAAC,QAAQ,CAAC;AACrD,oBAAoB,MAAM;AAC1B,gBAAgB,SAAS;AACzB,oBAAoB,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa;AACxE,0BAA0B,IAAI,SAAS,CAAC,WAAW,EAAE;AACrD,0BAA0B,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;AACpD,oBAAoB,SAAS,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;AAC7D,oBAAoB,SAAS,CAAC,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;AAC/D,oBAAoB,SAAS,CAAC,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;AAC/D,oBAAoB,YAAY,GAAG,SAAS,CAAC;AAC7C,iBAAiB;AACjB,aAAa;AACb,YAAY,MAAM;AAClB,QAAQ,KAAK,CAAC,CAAC;AACf,QAAQ,KAAK,CAAC,CAAC;AACf,QAAQ,KAAK,CAAC,CAAC;AACf,QAAQ,SAAS;AACjB,YAAY,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa;AAC5D,kBAAkB,SAAS,CAAC,WAAW;AACvC,kBAAkB,SAAS,CAAC,SAAS,CAAC;AACtC,SAAS;AACT,KAAK;AACL,IAAI,YAAY,GAAG,eAAe,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;AAC9D,IAAI,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,QAAQ,CAAC,gBAAgB,GAAG,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACvJ,IAAI,YAAY,CAAC,qBAAqB,GAAG,WAAW,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;AACzH,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,YAAY;AAC5B,QAAQ,MAAM,EAAE,YAAY;AAC5B,KAAK,CAAC;AACN,CAAC;AACD,SAAS,OAAO,CAAC,WAAW,EAAE;AAC9B,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;AACjC,QAAQ,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;AACrD,QAAQ,MAAM,CAAC,KAAK,GAAG,8BAA8B,CAAC;AACtD,QAAQ,OAAO;AACf,YAAY,MAAM,EAAE,CAAC,CAAC;AACtB,YAAY,MAAM;AAClB,SAAS,CAAC;AACV,KAAK;AACL,IAAI,OAAO,YAAY,CAACJ,qBAA+B,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;AACtH;;AAEA,SAAS,QAAQ,CAAC,gBAAgB,EAAE,MAAM,EAAE;AAC5C,IAAI,IAAI,gBAAgB,EAAE;AAC1B,QAAQ,OAAO,CAAC,CAAC;AACjB,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB,CAAC;AACD,MAAM,0BAA0B,SAAS,UAAU,CAAC;AACpD,IAAI,WAAW,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,gBAAgB,GAAG,KAAK,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,EAAE;AAC9E,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AAC3B,QAAQ,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;AACjD,KAAK;AACL,IAAI,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE;AACnD,QAAQ,MAAM,IAAI,GAAGA,qBAA+B,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AAC/E,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE;AACtE,YAAY,OAAO,CAAC,CAAC,CAAC;AACtB,SAAS;AACT,QAAQ,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW,CAAC,CAAC;AAC3F,QAAQ,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,KAAK,CAAC,EAAE;AACrD,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;AACrD,YAAY,OAAO,WAAW,CAAC;AAC/B,SAAS;AACT,QAAQ,IAAI,aAAa,GAAG,WAAW,CAAC;AACxC,QAAQ,OAAO,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE;AACjE,YAAY,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;AAChF,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;AAC5C,gBAAgB,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC;AACvD,gBAAgB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACnE,gBAAgB,OAAO,CAAC,CAAC,CAAC;AAC1B,aAAa;AACb,YAAY,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC;AAChD,YAAY,IAAI,CAAC,WAAW,IAAI,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC;AAChE,YAAY,WAAW,IAAI,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC;AAC3D,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AACjD,YAAY,IAAI,IAAI,CAAC,gBAAgB,IAAI,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,mBAAmB,EAAE;AACvG,gBAAgB,MAAM;AACtB,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACnC,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,mBAAmB,EAAE;AAC5F,gBAAgB,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AACjC,aAAa;AACb,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;AACpE,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,aAAa,CAAC;AAC7B,KAAK;AACL,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE;AAC5B,QAAQ,MAAM,OAAO,GAAG,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;AACnD,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpD,YAAY,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACnD,SAAS;AACT,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB,YAAY,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC;AACnC,SAAS;AACT,QAAQ,OAAO,YAAY,CAAC;AAC5B,KAAK;AACL,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,MAAM,GAAG;AACvB,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE;AAC7B,YAAY,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;AACnD,YAAY,KAAK,EAAE,EAAE;AACrB,SAAS,CAAC;AACV,QAAQ,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE;AACxC,YAAY,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;AAC9C,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK;AACL,CAAC;AACD,0BAA0B,CAAC,IAAI,GAAG,uBAAuB;;AAEzD,IAAI,IAAI,CAAC;AACT,MAAM,WAAW,SAAS,SAAS,CAAC;AACpC,IAAI,WAAW,CAAC,UAAU,GAAG,EAAE,EAAE;AACjC,QAAQ,KAAK,CAAC,UAAU,EAAE,0BAA0B,CAAC,CAAC;AACtD,QAAQ,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1C,KAAK;AACL,IAAI,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE;AACnD,QAAQ,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;AAC1E,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACtJ,QAAQ,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE;AACjC,YAAY,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AAC/C,YAAY,OAAO,YAAY,CAAC;AAChC,SAAS;AACT,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM;AACtC,YAAY,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;AACzD,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM;AACvC,YAAY,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;AAC1D,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM;AACzC,YAAY,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;AAC5D,QAAQ,OAAO,YAAY,CAAC;AAC5B,KAAK;AACL,IAAI,eAAe,GAAG;AACtB,QAAQ,MAAM,MAAM,GAAG,EAAE,CAAC;AAC1B,QAAQ,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;AACnD,YAAY,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3F,SAAS;AACT,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,CAAC;AACrD,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;AAC3C,cAAc,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AACpC,QAAQ,OAAO,MAAM,CAAC,MAAM;AAC5B,cAAc,CAAC,EAAE,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACpD,cAAc,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;AAC/B,KAAK;AACL,CAAC;AACD,IAAI,GAAG,WAAW,CAAC;AACnB,CAAC,MAAM;AACP,IAAI,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC;AACjC,CAAC,GAAG,CAAC;AACL,WAAW,CAAC,IAAI,GAAG,aAAa;;AAEhC,MAAM,2BAA2B,SAAS,UAAU,CAAC;AACrD,IAAI,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE;AACnD,QAAQ,OAAO,WAAW,CAAC;AAC3B,KAAK;AACL,IAAI,KAAK,CAAC,QAAQ,EAAE;AACpB,QAAQ,OAAO,YAAY,CAAC;AAC5B,KAAK;AACL,CAAC;AACD,2BAA2B,CAAC,QAAQ,GAAG,wBAAwB;;AAE/D,IAAI,IAAI,CAAC;AACT,MAAM,YAAY,SAAS,SAAS,CAAC;AACrC,IAAI,WAAW,CAAC,UAAU,GAAG,EAAE,EAAE;AACjC,QAAQ,KAAK,CAAC,UAAU,EAAE,2BAA2B,CAAC,CAAC;AACvD,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;AACnC,KAAK;AACL,CAAC;AACD,IAAI,GAAG,YAAY,CAAC;AACpB,CAAC,MAAM;AACP,IAAI,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC;AAClC,CAAC,GAAG,CAAC;AACL,YAAY,CAAC,IAAI,GAAG,mBAAmB;;AAEvC,IAAI,IAAI,CAAC;AACT,MAAM,IAAI,SAAS,SAAS,CAAC;AAC7B,IAAI,WAAW,CAAC,UAAU,GAAG,EAAE,EAAE;AACjC,QAAQ,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AACtC,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;AACnC,KAAK;AACL,IAAI,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE;AACnD,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;AACpC,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;AAC/E,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM;AACtC,YAAY,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;AACzD,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM;AACvC,YAAY,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;AAC1D,QAAQ,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC;AACxC,QAAQ,IAAI,CAAC,WAAW,GAAG,WAAW,IAAI,WAAW,CAAC,UAAU,EAAE;AAClE,YAAY,IAAI,CAAC,KAAK,GAAG,+FAA+F,CAAC;AACzH,YAAY,OAAO,CAAC,CAAC,CAAC;AACtB,SAAS;AACT,QAAQ,QAAQ,WAAW,GAAG,WAAW,EAAE;AAC3C,KAAK;AACL,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE;AAC5B,QAAQ,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;AAC1C,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,YAAY,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;AACnD,YAAY,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAC9B,YAAY,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAC9B,SAAS;AACT,QAAQ,IAAI,MAAM,EAAE;AACpB,YAAY,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACjC,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK;AACL,IAAI,eAAe,GAAG;AACtB,QAAQ,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,CAAC;AACD,IAAI,GAAG,IAAI,CAAC;AACZ,CAAC,MAAM;AACP,IAAI,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC;AAC1B,CAAC,GAAG,CAAC;AACL,IAAI,CAAC,IAAI,GAAG,MAAM;;AAElB,MAAM,sBAAsB,SAAS,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC1D,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,EAAE;AAC/C,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAQ,IAAI,UAAU,CAAC,QAAQ,EAAE;AACjC,YAAY,IAAI,CAAC,YAAY,GAAGA,qBAA+B,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAClG,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,YAAY,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AAClD,SAAS;AACT,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AAC/B,SAAS;AACT,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,YAAY,EAAE;AAC/C,YAAY,IAAI,KAAK,GAAG,CAAC,EAAE;AAC3B,gBAAgB,OAAO,IAAI,CAAC;AAC5B,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE;AACrB,QAAQ,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;AACnD,KAAK;AACL,IAAI,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE;AACnD,QAAQ,MAAM,SAAS,GAAGA,qBAA+B,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AACpF,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE;AAC3E,YAAY,OAAO,CAAC,CAAC,CAAC;AACtB,SAAS;AACT,QAAQ,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW,CAAC,CAAC;AACvF,QAAQ,IAAI,WAAW,GAAG,CAAC;AAC3B,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;AAC7E,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC9B,QAAQK,YAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxC,QAAQ,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AACvC,QAAQ,QAAQ,WAAW,GAAG,WAAW,EAAE;AAC3C,KAAK;AACL,IAAI,KAAK,GAAG;AACZ,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;AACzC,KAAK;AACL,IAAI,MAAM,GAAG;AACb,QAAQ,OAAO;AACf,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE;AAC7B,YAAY,KAAK,EAAE,IAAI,CAAC,KAAK;AAC7B,SAAS,CAAC;AACV,KAAK;AACL,CAAC;AACD,sBAAsB,CAAC,IAAI,GAAG,mBAAmB;;AAEjD,IAAI,IAAI,CAAC;gBACT,MAAM,OAAO,SAAS,SAAS,CAAC;AAChC,IAAI,WAAW,CAAC,UAAU,GAAG,EAAE,EAAE;AACjC,QAAQ,KAAK,CAAC,UAAU,EAAE,sBAAsB,CAAC,CAAC;AAClD,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;AACnC,KAAK;AACL,IAAI,QAAQ,GAAG;AACf,QAAQ,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACrC,KAAK;AACL,IAAI,QAAQ,CAAC,KAAK,EAAE;AACpB,QAAQ,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;AACtC,KAAK;AACL,IAAI,eAAe,GAAG;AACtB,QAAQ,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC7D,KAAK;AACL,EAAC;AACD,IAAI,GAAGC,SAAO,CAAC;AACf,CAAC,MAAM;AACP,IAAI,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;AAC7B,CAAC,GAAG,CAAC;AACLA,SAAO,CAAC,IAAI,GAAG,SAAS;;AAExB,MAAM,0BAA0B,SAAS,QAAQ,CAAC,0BAA0B,CAAC,CAAC;AAC9E,IAAI,WAAW,CAAC,EAAE,aAAa,GAAG,KAAK,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,EAAE;AAC/D,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;AAC3C,KAAK;AACL,IAAI,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE;AACnD,QAAQ,IAAI,YAAY,GAAG,CAAC,CAAC;AAC7B,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE;AAChC,YAAY,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACnC,YAAY,YAAY,GAAG,0BAA0B,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AAC1H,YAAY,IAAI,YAAY,KAAK,CAAC,CAAC;AACnC,gBAAgB,OAAO,YAAY,CAAC;AACpC,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxD,gBAAgB,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;AACxE,gBAAgB,IAAI,gBAAgB,KAAK,mBAAmB,EAAE;AAC9D,oBAAoB,IAAI,IAAI,CAAC,gBAAgB;AAC7C,wBAAwB,MAAM;AAC9B,yBAAyB;AACzB,wBAAwB,IAAI,CAAC,KAAK,GAAG,6EAA6E,CAAC;AACnH,wBAAwB,OAAO,CAAC,CAAC,CAAC;AAClC,qBAAqB;AACrB,iBAAiB;AACjB,gBAAgB,IAAI,gBAAgB,KAAK,iBAAiB,EAAE;AAC5D,oBAAoB,IAAI,CAAC,KAAK,GAAG,iDAAiD,CAAC;AACnF,oBAAoB,OAAO,CAAC,CAAC,CAAC;AAC9B,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAClC,YAAY,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AAChF,YAAY,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AAC3C,SAAS;AACT,QAAQ,OAAO,YAAY,CAAC;AAC5B,KAAK;AACL,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE;AAC5B,QAAQ,IAAI,IAAI,CAAC,aAAa;AAC9B,YAAY,OAAO,0BAA0B,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC3F,QAAQ,OAAO,QAAQ;AACvB,cAAc,IAAI,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AAC3D,cAAc,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC;AAC/C,KAAK;AACL,IAAI,MAAM,GAAG;AACb,QAAQ,OAAO;AACf,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE;AAC7B,YAAY,aAAa,EAAE,IAAI,CAAC,aAAa;AAC7C,SAAS,CAAC;AACV,KAAK;AACL,CAAC;AACD,0BAA0B,CAAC,IAAI,GAAG,uBAAuB;;AAEzD,IAAI,IAAI,CAAC;oBACT,MAAM,WAAW,SAAS,SAAS,CAAC;AACpC,IAAI,WAAW,CAAC,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,EAAE;AACrE,QAAQ,IAAI,EAAE,EAAE,EAAE,CAAC;AACnB,QAAQ,CAAC,EAAE,GAAG,UAAU,CAAC,aAAa,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,IAAI,UAAU,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,UAAU,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACjL,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,EAAE;AACrB,gBAAgB,aAAa,EAAE,UAAU,CAAC,aAAa;AACvD,gBAAgB,GAAG,OAAO;AAC1B,aAAa;AACb,YAAY,QAAQ,EAAE;AACtB,gBAAgB,GAAG,QAAQ;AAC3B,gBAAgB,gBAAgB,EAAE,CAAC,CAAC,UAAU,CAAC,gBAAgB;AAC/D,aAAa;AACb,YAAY,GAAG,UAAU;AACzB,SAAS,EAAE,0BAA0B,CAAC,CAAC;AACvC,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;AACnC,KAAK;AACL,IAAI,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE;AACnD,QAAQ,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;AACnE,QAAQ,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;AAC1E,QAAQ,IAAI,WAAW,KAAK,CAAC,EAAE;AAC/B,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;AAC/C,gBAAgB,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;AAC7D,YAAY,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;AAChD,gBAAgB,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;AAC9D,YAAY,OAAO,WAAW,CAAC;AAC/B,SAAS;AACT,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;AAC5C,YAAY,MAAM,IAAI,GAAG,WAAW,YAAY,WAAW,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC;AACxG,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW,CAAC,CAAC;AAC9E,YAAY,IAAI;AAChB,gBAAgB,IAAI,GAAG,CAAC,UAAU,EAAE;AACpC,oBAAoB,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;AACrE,oBAAoB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,EAAE;AACzE,wBAAwB,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC7D,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,YAAY,OAAO,CAAC,EAAE;AACtB,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AACpE,KAAK;AACL,IAAI,eAAe,GAAG;AACtB,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AACtG,YAAY,OAAO,WAAW,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpE,SAAS;AACT,QAAQ,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAEL,OAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AACrG,KAAK;AACL,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;AACzC,YAAY,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC;AAC/D,SAAS;AACT,QAAQ,MAAM,KAAK,GAAG,EAAE,CAAC;AACzB,QAAQ,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;AACrD,YAAY,IAAI,OAAO,YAAY,WAAW,EAAE;AAChD,gBAAgB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAC5D,aAAa;AACb,SAAS;AACT,QAAQ,OAAOD,qBAA+B,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC7D,KAAK;AACL,EAAC;AACD,IAAI,GAAGO,aAAW,CAAC;AACnB,CAAC,MAAM;AACP,IAAI,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC;AACjC,CAAC,GAAG,CAAC;AACLA,aAAW,CAAC,IAAI,GAAG,iBAAiB;;AAEpC,MAAM,wBAAwB,SAAS,QAAQ,CAAC,0BAA0B,CAAC,CAAC;AAC5E,IAAI,WAAW,CAAC,EAAE,UAAU,GAAG,CAAC,EAAE,aAAa,GAAG,KAAK,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,EAAE;AAC/E,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AACrC,QAAQ,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;AAC3C,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AACxD,KAAK;AACL,IAAI,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE;AACnD,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B,YAAY,OAAO,WAAW,CAAC;AAC/B,SAAS;AACT,QAAQ,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC;AAC9B,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE;AAChC,YAAY,YAAY,GAAG,0BAA0B,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AAC1H,YAAY,IAAI,YAAY,KAAK,CAAC,CAAC;AACnC,gBAAgB,OAAO,YAAY,CAAC;AACpC,YAAY,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE;AAC5C,gBAAgB,MAAM,gBAAgB,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;AAChE,gBAAgB,IAAI,gBAAgB,KAAK,mBAAmB,EAAE;AAC9D,oBAAoB,IAAI,IAAI,CAAC,gBAAgB;AAC7C,wBAAwB,MAAM;AAC9B,yBAAyB;AACzB,wBAAwB,IAAI,CAAC,KAAK,GAAG,yEAAyE,CAAC;AAC/G,wBAAwB,OAAO,CAAC,CAAC,CAAC;AAClC,qBAAqB;AACrB,iBAAiB;AACjB,gBAAgB,IAAI,gBAAgB,KAAK,eAAe,EAAE;AAC1D,oBAAoB,IAAI,CAAC,KAAK,GAAG,6CAA6C,CAAC;AAC/E,oBAAoB,OAAO,CAAC,CAAC,CAAC;AAC9B,iBAAiB;AACjB,gBAAgB,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;AACpD,gBAAgB,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,MAAM,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE;AAC1E,oBAAoB,IAAI,CAAC,KAAK,GAAG,oFAAoF,CAAC;AACtH,oBAAoB,OAAO,CAAC,CAAC,CAAC;AAC9B,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;AACxD,aAAa;AACb,YAAY,OAAO,YAAY,CAAC;AAChC,SAAS;AACT,QAAQ,MAAM,SAAS,GAAGP,qBAA+B,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AACpF,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE;AAC3E,YAAY,OAAO,CAAC,CAAC,CAAC;AACtB,SAAS;AACT,QAAQ,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW,CAAC,CAAC;AACrF,QAAQ,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AACvC,QAAQ,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE;AACjC,YAAY,IAAI,CAAC,KAAK,GAAG,gDAAgD,CAAC;AAC1E,YAAY,OAAO,CAAC,CAAC,CAAC;AACtB,SAAS;AACT,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAC9B,YAAY,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC9C,YAAY,IAAI;AAChB,gBAAgB,IAAI,GAAG,CAAC,UAAU,EAAE;AACpC,oBAAoB,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;AACrE,oBAAoB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,EAAE;AAC/E,wBAAwB,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAClD,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,YAAY,OAAO,CAAC,EAAE;AACtB,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAClD,QAAQ,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC;AAC5C,QAAQ,QAAQ,WAAW,GAAG,WAAW,EAAE;AAC3C,KAAK;AACL,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE;AAC5B,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE;AAChC,YAAY,OAAO,0BAA0B,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC3F,SAAS;AACT,QAAQ,IAAI,QAAQ,EAAE;AACtB,YAAY,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AACrE,SAAS;AACT,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;AAC3C,YAAY,OAAO,YAAY,CAAC;AAChC,SAAS;AACT,QAAQ,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACrE,QAAQ,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;AACrC,QAAQ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;AAC1C,QAAQ,OAAO,OAAO,CAAC,MAAM,CAAC;AAC9B,KAAK;AACL,IAAI,MAAM,GAAG;AACb,QAAQ,OAAO;AACf,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE;AAC7B,YAAY,UAAU,EAAE,IAAI,CAAC,UAAU;AACvC,YAAY,aAAa,EAAE,IAAI,CAAC,aAAa;AAC7C,SAAS,CAAC;AACV,KAAK;AACL,CAAC;AACD,wBAAwB,CAAC,IAAI,GAAG,qBAAqB;;AAErD,IAAI,IAAI,CAAC;kBACT,MAAM,SAAS,SAAS,SAAS,CAAC;AAClC,IAAI,WAAW,CAAC,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,EAAE;AACrE,QAAQ,IAAI,EAAE,EAAE,EAAE,CAAC;AACnB,QAAQ,CAAC,EAAE,GAAG,UAAU,CAAC,aAAa,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,IAAI,UAAU,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,UAAU,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACjL,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,EAAE;AACrB,gBAAgB,aAAa,EAAE,UAAU,CAAC,aAAa;AACvD,gBAAgB,GAAG,OAAO;AAC1B,aAAa;AACb,YAAY,QAAQ,EAAE;AACtB,gBAAgB,GAAG,QAAQ;AAC3B,gBAAgB,gBAAgB,EAAE,CAAC,CAAC,UAAU,CAAC,gBAAgB;AAC/D,aAAa;AACb,YAAY,GAAG,UAAU;AACzB,SAAS,EAAE,wBAAwB,CAAC,CAAC;AACrC,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;AACnC,KAAK;AACL,IAAI,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE;AACnD,QAAQ,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;AACnE,QAAQ,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;AAC1E,QAAQ,OAAO,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AACpE,KAAK;AACL,IAAI,eAAe,GAAG;AACtB,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AACtG,YAAY,OAAO,WAAW,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpE,SAAS;AACT,aAAa;AACb,YAAY,MAAM,IAAI,GAAG,EAAE,CAAC;AAC5B,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;AAC1D,YAAY,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;AACzC,gBAAgB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAC7D,aAAa;AACb,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1C,YAAY,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACrH,SAAS;AACT,KAAK;AACL,EAAC;AACD,IAAI,GAAGQ,WAAS,CAAC;AACjB,CAAC,MAAM;AACP,IAAI,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC;AAC/B,CAAC,GAAG,CAAC;AACLA,WAAS,CAAC,IAAI,GAAG,eAAe;;AAEhC,IAAI,IAAI,CAAC;AACT,SAAS,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE;AAChC,IAAI,MAAM,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,IAAI,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;AAC5C,IAAI,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;AAC9C,IAAI,IAAI,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3C,IAAI,MAAM,mBAAmB,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;AACzD,IAAI,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/C,IAAI,MAAM,oBAAoB,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3D,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;AAClB,IAAI,MAAM,GAAG,GAAG,CAAC,oBAAoB,GAAG,mBAAmB,IAAI,mBAAmB,GAAG,oBAAoB,CAAC;AAC1G,IAAI,IAAI,OAAO,GAAG,CAAC,CAAC;AACpB,IAAI,KAAK,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE;AAC9C,QAAQ,QAAQ,IAAI;AACpB,YAAY,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM;AACjD,gBAAgB,KAAK,GAAG,aAAa,CAAC,mBAAmB,GAAG,OAAO,CAAC,GAAG,cAAc,CAAC,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7H,gBAAgB,MAAM;AACtB,YAAY;AACZ,gBAAgB,KAAK,GAAG,aAAa,CAAC,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5E,SAAS;AACT,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;AAC1B,QAAQ,QAAQ,IAAI;AACpB,YAAY,MAAM,OAAO,IAAI,aAAa,CAAC,MAAM;AACjD,gBAAgB,aAAa,GAAGC,cAAsB,CAAC,IAAI,UAAU,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;AACpG,gBAAgB,MAAM;AACtB,YAAY;AACZ,gBAAgB,aAAa,CAAC,mBAAmB,GAAG,OAAO,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;AAC1E,SAAS;AACT,KAAK;AACL,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAChB,QAAQ,aAAa,GAAGA,cAAsB,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;AACjE,IAAI,OAAO,aAAa,CAAC;AACzB,CAAC;AACD,SAAS,MAAM,CAAC,CAAC,EAAE;AACnB,IAAI,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE;AAC7B,QAAQ,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAClD,YAAY,MAAM,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,YAAY,IAAI,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACnD,YAAY,KAAK,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC3D,gBAAgB,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3E,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACxC,gBAAgB,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAC7C,aAAa;AACb,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACxB,gBAAgB,MAAM,GAAGA,cAAsB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAC3D,YAAY,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjC,SAAS;AACT,KAAK;AACL,IAAI,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC;AACD,SAAS,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE;AAChC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,IAAI,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;AAC5C,IAAI,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;AAC9C,IAAI,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7C,IAAI,MAAM,mBAAmB,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;AACzD,IAAI,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/C,IAAI,MAAM,oBAAoB,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3D,IAAI,IAAI,KAAK,CAAC;AACd,IAAI,IAAI,OAAO,GAAG,CAAC,CAAC;AACpB,IAAI,KAAK,IAAI,CAAC,GAAG,oBAAoB,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE;AAC/D,QAAQ,KAAK,GAAG,aAAa,CAAC,mBAAmB,GAAG,OAAO,CAAC,GAAG,cAAc,CAAC,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;AAClH,QAAQ,QAAQ,IAAI;AACpB,YAAY,MAAM,KAAK,GAAG,CAAC;AAC3B,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACtB,gBAAgB,aAAa,CAAC,mBAAmB,GAAG,OAAO,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;AAC1E,gBAAgB,MAAM;AACtB,YAAY;AACZ,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACtB,gBAAgB,aAAa,CAAC,mBAAmB,GAAG,OAAO,CAAC,GAAG,KAAK,CAAC;AACrE,SAAS;AACT,KAAK;AACL,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE;AACf,QAAQ,KAAK,IAAI,CAAC,IAAI,mBAAmB,GAAG,oBAAoB,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE;AAC/F,YAAY,KAAK,GAAG,aAAa,CAAC,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;AACrE,YAAY,IAAI,KAAK,GAAG,CAAC,EAAE;AAC3B,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACtB,gBAAgB,aAAa,CAAC,mBAAmB,GAAG,OAAO,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;AAC1E,aAAa;AACb,iBAAiB;AACjB,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACtB,gBAAgB,aAAa,CAAC,mBAAmB,GAAG,OAAO,CAAC,GAAG,KAAK,CAAC;AACrE,gBAAgB,MAAM;AACtB,aAAa;AACb,SAAS;AACT,KAAK;AACL,IAAI,OAAO,aAAa,CAAC,KAAK,EAAE,CAAC;AACjC,CAAC;AACD,MAAM,sBAAsB,SAAS,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC1D,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,EAAE;AAC/C,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AAC3B,QAAQ,IAAI,UAAU,CAAC,QAAQ,EAAE;AACjC,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC;AAC/B,SAAS;AACT,QAAQ,IAAI,KAAK,KAAK,SAAS,EAAE;AACjC,YAAY,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAClC,SAAS;AACT,KAAK;AACL,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,EAAE;AAC3C,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;AACzE,YAAY,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAClC,YAAY,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AAC/B,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACnC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9C,gBAAgB,IAAI,CAAC,SAAS,GAAGJ,YAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjE,aAAa;AACb,SAAS;AACT,KAAK;AACL,IAAI,IAAI,QAAQ,CAAC,CAAC,EAAE;AACpB,QAAQ,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AAC3B,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC/B,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,UAAU,CAACK,YAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,KAAK;AACL,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,KAAK;AACL,IAAI,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,GAAG,CAAC,EAAE;AACvE,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AAC3E,QAAQ,IAAI,MAAM,KAAK,CAAC,CAAC;AACzB,YAAY,OAAO,MAAM,CAAC;AAC1B,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;AACvC,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE;AAC5D,YAAY,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACjD,SAAS;AACT,aAAa;AACb,YAAY,IAAI,cAAc,KAAK,CAAC,EAAE;AACtC,gBAAgB,IAAI,IAAI,CAAC,MAAM,GAAG,cAAc,EAAE;AAClD,oBAAoB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC;AAC1D,wBAAwB,cAAc,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACzD,oBAAoB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;AACpF,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK;AACL,IAAI,KAAK,CAAC,QAAQ,GAAG,KAAK,EAAE;AAC5B,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;AACvC,QAAQ,QAAQ,IAAI;AACpB,YAAY,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC;AACxC,gBAAgB;AAChB,oBAAoB,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACrF,oBAAoB,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAC1C,oBAAoB,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC7C,oBAAoB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;AACpD,iBAAiB;AACjB,gBAAgB,MAAM;AACtB,YAAY,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC;AAChE,gBAAgB;AAChB,oBAAoB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACtE,iBAAiB;AACjB,gBAAgB,MAAM;AACtB,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AACpC,KAAK;AACL,IAAI,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE;AACnD,QAAQ,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AAClF,QAAQ,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE;AACjC,YAAY,OAAO,YAAY,CAAC;AAChC,SAAS;AACT,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;AAC3B,QAAQ,OAAO,YAAY,CAAC;AAC5B,KAAK;AACL,IAAI,KAAK,CAAC,QAAQ,EAAE;AACpB,QAAQ,OAAO,QAAQ;AACvB,cAAc,IAAI,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;AACvD,cAAc,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC;AAC/C,KAAK;AACL,IAAI,MAAM,GAAG;AACb,QAAQ,OAAO;AACf,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE;AAC7B,YAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnC,SAAS,CAAC;AACV,KAAK;AACL,IAAI,QAAQ,GAAG;AACf,QAAQ,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;AAC5D,QAAQ,IAAI,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACxE,QAAQ,IAAI,SAAS,GAAG,CAAC,CAAC;AAC1B,QAAQ,IAAI,WAAW,CAAC;AACxB,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC;AAC3C,QAAQ,IAAI,MAAM,GAAG,EAAE,CAAC;AACxB,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC;AACzB,QAAQ,KAAK,IAAI,UAAU,IAAI,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE,UAAU,IAAI,CAAC,EAAE,UAAU,EAAE,EAAE;AACxF,YAAY,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC/C,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACxC,gBAAgB,IAAI,CAAC,WAAW,GAAG,CAAC,MAAM,CAAC,EAAE;AAC7C,oBAAoB,QAAQ,SAAS;AACrC,wBAAwB,KAAK,QAAQ;AACrC,4BAA4B,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;AACxE,4BAA4B,MAAM,GAAG,GAAG,CAAC;AACzC,4BAA4B,MAAM;AAClC,wBAAwB;AACxB,4BAA4B,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AACxE,qBAAqB;AACrB,iBAAiB;AACjB,gBAAgB,SAAS,EAAE,CAAC;AAC5B,gBAAgB,WAAW,KAAK,CAAC,CAAC;AAClC,aAAa;AACb,SAAS;AACT,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAChD,YAAY,IAAI,MAAM,CAAC,CAAC,CAAC;AACzB,gBAAgB,IAAI,GAAG,IAAI,CAAC;AAC5B,YAAY,IAAI,IAAI;AACpB,gBAAgB,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,SAAS;AACT,QAAQ,IAAI,IAAI,KAAK,KAAK;AAC1B,YAAY,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC7C,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK;AACL,CAAC;AACD,IAAI,GAAG,sBAAsB,CAAC;AAC9B,sBAAsB,CAAC,IAAI,GAAG,mBAAmB,CAAC;AAClD,CAAC,MAAM;AACP,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE;AACtD,QAAQ,GAAG,EAAE,UAAU,CAAC,EAAE;AAC1B,YAAY,IAAI,CAAC,YAAY,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AAClD,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC;AAC/B,SAAS;AACT,QAAQ,GAAG,EAAE,YAAY;AACzB,YAAY,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC;AACpD,SAAS;AACT,KAAK,CAAC,CAAC;AACP,CAAC,GAAG;;AAEJ,IAAI,IAAI,CAAC;AACT,MAAM,OAAO,SAAS,SAAS,CAAC;AAChC,IAAI,WAAW,CAAC,UAAU,GAAG,EAAE,EAAE;AACjC,QAAQ,KAAK,CAAC,UAAU,EAAE,sBAAsB,CAAC,CAAC;AAClD,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;AACnC,KAAK;AACL,IAAI,QAAQ,GAAG;AACf,QAAQ,YAAY,EAAE,CAAC;AACvB,QAAQ,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;AAClD,KAAK;AACL,IAAI,OAAO,UAAU,CAAC,KAAK,EAAE;AAC7B,QAAQ,YAAY,EAAE,CAAC;AACvB,QAAQ,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1C,QAAQ,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AACxC,QAAQ,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAC/D,QAAQ,MAAM,IAAI,GAAG,IAAI,UAAU,CAACT,OAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AACpE,QAAQ,IAAI,WAAW,GAAG,CAAC,EAAE;AAC7B,YAAY,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjF,YAAY,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC7B,YAAY,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,EAAE,EAAEA,OAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3E,YAAY,MAAM,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;AACrD,YAAY,MAAM,MAAM,GAAGD,qBAA+B,CAAC,YAAY,CAACC,OAAiB,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3H,YAAY,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC9B,YAAY,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACjC,SAAS;AACT,aAAa;AACb,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE;AAChC,gBAAgB,MAAM,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,aAAa;AACb,YAAY,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC/B,SAAS;AACT,QAAQ,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC;AAChC,YAAY,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE;AACpC,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK;AACL,IAAI,YAAY,GAAG;AACnB,QAAQ,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;AAChF,QAAQ,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AACnC,QAAQ,OAAO,OAAO,CAAC;AACvB,KAAK;AACL,IAAI,cAAc,GAAG;AACrB,QAAQ,OAAO,IAAI,OAAO,CAAC;AAC3B,YAAY,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC;AAC3D,kBAAkB,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC1D,kBAAkB,IAAI,CAAC,UAAU,CAAC,YAAY;AAC9C,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,eAAe,GAAG;AACtB,QAAQ,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC1E,KAAK;AACL,CAAC;AACD,IAAI,GAAG,OAAO,CAAC;AACf,CAAC,MAAM;AACP,IAAI,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;AAC7B,CAAC,GAAG,CAAC;AACL,OAAO,CAAC,IAAI,GAAG,SAAS;;AAExB,IAAI,IAAI,CAAC;AACT,MAAM,UAAU,SAAS,OAAO,CAAC;AACjC,IAAI,WAAW,CAAC,UAAU,GAAG,EAAE,EAAE;AACjC,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;AACpC,KAAK;AACL,CAAC;AACD,IAAI,GAAG,UAAU,CAAC;AAClB,CAAC,MAAM;AACP,IAAI,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;AAChC,CAAC,GAAG,CAAC;AACL,UAAU,CAAC,IAAI,GAAG,YAAY;;AAE9B,MAAM,kBAAkB,SAAS,QAAQ,CAAC,UAAU,CAAC,CAAC;AACtD,IAAI,WAAW,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,KAAK,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,EAAE;AAC3E,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACjC,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AACrC,KAAK;AACL,IAAI,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE;AACnD,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B,YAAY,OAAO,WAAW,CAAC;AAC/B,SAAS;AACT,QAAQ,MAAM,SAAS,GAAGD,qBAA+B,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AACpF,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE;AAC3E,YAAY,OAAO,CAAC,CAAC,CAAC;AACtB,SAAS;AACT,QAAQ,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW,CAAC,CAAC;AACrF,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;AACxD,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;AAC9C,YAAY,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACvD,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC;AAC/B,YAAY,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI;AAC9C,gBAAgB,MAAM;AACtB,SAAS;AACT,QAAQ,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC1D,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE;AACnD,YAAY,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAC/C,SAAS;AACT,QAAQ,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;AACrC,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI,EAAE;AAC/D,YAAY,IAAI,CAAC,KAAK,GAAG,uDAAuD,CAAC;AACjF,YAAY,OAAO,CAAC,CAAC,CAAC;AACtB,SAAS;AACT,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI;AACzC,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;AACzE,QAAQ,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC;AACjC,YAAY,IAAI,CAAC,QAAQ,GAAGG,YAAoB,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;AACvE,aAAa;AACb,YAAY,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAClC,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;AACrE,SAAS;AACT,QAAQ,QAAQ,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;AAChD,KAAK;AACL,IAAI,IAAI,WAAW,CAAC,KAAK,EAAE;AAC3B,QAAQ,YAAY,EAAE,CAAC;AACvB,QAAQ,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC7C,QAAQ,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AAChC,YAAY,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC;AAC9B,SAAS;AACT,QAAQ,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACtD,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/C,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;AACrG,SAAS;AACT,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;AACpD,KAAK;AACL,IAAI,KAAK,CAAC,QAAQ,EAAE;AACpB,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AAC5B,YAAY,IAAI,QAAQ;AACxB,gBAAgB,QAAQ,IAAI,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE;AACvE,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC;AAC9C,YAAY,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC7D,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE;AAC3D,gBAAgB,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAC/C,YAAY,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;AAC1E,YAAY,OAAO,OAAO,CAAC,MAAM,CAAC;AAClC,SAAS;AACT,QAAQ,MAAM,UAAU,GAAGD,UAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAChE,QAAQ,IAAI,UAAU,CAAC,UAAU,KAAK,CAAC,EAAE;AACzC,YAAY,IAAI,CAAC,KAAK,GAAG,iCAAiC,CAAC;AAC3D,YAAY,OAAO,YAAY,CAAC;AAChC,SAAS;AACT,QAAQ,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC9D,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,YAAY,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;AAC3D,YAAY,MAAM,GAAG,GAAG,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC;AAClD,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE;AACxC,gBAAgB,OAAO,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACnD,YAAY,OAAO,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;AAC5C,SAAS;AACT,QAAQ,OAAO,OAAO,CAAC;AACvB,KAAK;AACL,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,MAAM,GAAG,EAAE,CAAC;AACxB,QAAQ,IAAI,IAAI,CAAC,SAAS;AAC1B,YAAY,MAAM,GAAGD,OAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAChE,aAAa;AACb,YAAY,IAAI,IAAI,CAAC,UAAU,EAAE;AACjC,gBAAgB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC7C,gBAAgB,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE;AACvC,oBAAoB,MAAM,GAAG,IAAI,CAAC;AAClC,qBAAqB;AACrB,oBAAoB,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE;AAC7C,wBAAwB,MAAM,GAAG,IAAI,CAAC;AACtC,wBAAwB,QAAQ,IAAI,EAAE,CAAC;AACvC,qBAAqB;AACrB,yBAAyB;AACzB,wBAAwB,MAAM,GAAG,IAAI,CAAC;AACtC,wBAAwB,QAAQ,IAAI,EAAE,CAAC;AACvC,qBAAqB;AACrB,iBAAiB;AACjB,gBAAgB,MAAM,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAC9C,aAAa;AACb;AACA,gBAAgB,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAClD,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK;AACL,IAAI,MAAM,GAAG;AACb,QAAQ,OAAO;AACf,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE;AAC7B,YAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnC,YAAY,UAAU,EAAE,IAAI,CAAC,UAAU;AACvC,SAAS,CAAC;AACV,KAAK;AACL,CAAC;AACD,kBAAkB,CAAC,IAAI,GAAG,UAAU;;AAEpC,MAAM,+BAA+B,SAAS,UAAU,CAAC;AACzD,IAAI,WAAW,CAAC,EAAE,KAAK,GAAG,YAAY,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,EAAE;AAC9D,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AACxB,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACnC,SAAS;AACT,KAAK;AACL,IAAI,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE;AACnD,QAAQ,IAAI,YAAY,GAAG,WAAW,CAAC;AACvC,QAAQ,OAAO,WAAW,GAAG,CAAC,EAAE;AAChC,YAAY,MAAM,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAC;AACtD,YAAY,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;AACpF,YAAY,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE;AACrC,gBAAgB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACrC,gBAAgB,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;AAC5C,gBAAgB,OAAO,YAAY,CAAC;AACpC,aAAa;AACb,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;AACvC,gBAAgB,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3C,YAAY,IAAI,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,CAAC;AACrD,YAAY,WAAW,IAAI,QAAQ,CAAC,WAAW,CAAC;AAChD,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACtC,SAAS;AACT,QAAQ,OAAO,YAAY,CAAC;AAC5B,KAAK;AACL,IAAI,KAAK,CAAC,QAAQ,EAAE;AACpB,QAAQ,MAAM,UAAU,GAAG,EAAE,CAAC;AAC9B,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpD,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC3D,YAAY,IAAI,QAAQ,CAAC,UAAU,KAAK,CAAC,EAAE;AAC3C,gBAAgB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACjD,gBAAgB,OAAO,YAAY,CAAC;AACpC,aAAa;AACb,YAAY,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACtC,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC;AAClC,KAAK;AACL,IAAI,UAAU,CAAC,MAAM,EAAE;AACvB,QAAQ,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AACxB,QAAQ,IAAI,IAAI,GAAG,CAAC,CAAC;AACrB,QAAQ,IAAI,IAAI,GAAG,CAAC,CAAC;AACrB,QAAQ,IAAI,GAAG,GAAG,EAAE,CAAC;AACrB,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC;AACzB,QAAQ,GAAG;AACX,YAAY,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC7C,YAAY,IAAI,IAAI,KAAK,CAAC,CAAC;AAC3B,gBAAgB,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC7C;AACA,gBAAgB,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACnD,YAAY,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;AAC5B,YAAY,IAAI,IAAI,EAAE;AACtB,gBAAgB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/C,gBAAgB,IAAI,IAAI,GAAG,CAAC,CAAC;AAC7B,gBAAgB,QAAQ,QAAQ,CAAC,QAAQ;AACzC,oBAAoB,KAAK,CAAC;AAC1B,wBAAwB,MAAM;AAC9B,oBAAoB,KAAK,CAAC;AAC1B,wBAAwB,IAAI,GAAG,EAAE,CAAC;AAClC,wBAAwB,MAAM;AAC9B,oBAAoB,KAAK,CAAC;AAC1B,wBAAwB,IAAI,GAAG,EAAE,CAAC;AAClC,wBAAwB,MAAM;AAC9B,oBAAoB;AACpB,wBAAwB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AACxC,wBAAwB,OAAO;AAC/B,iBAAiB;AACjB,gBAAgB,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACpD,gBAAgB,IAAI,KAAK,CAAC,SAAS,CAAC;AACpC,oBAAoB,OAAO;AAC3B,gBAAgB,QAAQ,CAAC,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC;AACrD,gBAAgB,IAAI,GAAG,KAAK,CAAC;AAC7B,aAAa;AACb,iBAAiB;AACjB,gBAAgB,MAAM,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAC;AAC1D,gBAAgB,IAAI,GAAG,GAAG,MAAM,CAAC,gBAAgB,EAAE;AACnD,oBAAoB,YAAY,EAAE,CAAC;AACnC,oBAAoB,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AACjD,oBAAoB,QAAQ,CAAC,WAAW,GAAG,QAAQ,CAAC;AACpD,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAC1D,oBAAoB,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAChD,wBAAwB,OAAO;AAC/B,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACxC,oBAAoB,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC;AAC/C,oBAAoB,IAAI,GAAG,IAAI,CAAC;AAChC,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC1C,aAAa;AACb,SAAS,QAAQ,IAAI,KAAK,CAAC,CAAC,EAAE;AAC9B,KAAK;AACL,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,MAAM,GAAG,EAAE,CAAC;AACxB,QAAQ,IAAI,SAAS,GAAG,KAAK,CAAC;AAC9B,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpD,YAAY,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAChD,YAAY,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAClD,YAAY,IAAI,CAAC,KAAK,CAAC;AACvB,gBAAgB,MAAM,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACtC,YAAY,IAAI,SAAS,EAAE;AAC3B,gBAAgB,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACvC,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU;AAC5C,oBAAoB,MAAM,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AAClD;AACA,oBAAoB,MAAM,IAAI,MAAM,CAAC;AACrC,aAAa;AACb;AACA,gBAAgB,MAAM,IAAI,MAAM,CAAC;AACjC,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK;AACL,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,MAAM,GAAG;AACvB,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE;AAC7B,YAAY,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE;AAClC,YAAY,QAAQ,EAAE,EAAE;AACxB,SAAS,CAAC;AACV,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpD,YAAY,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACzD,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK;AACL,CAAC;AACD,+BAA+B,CAAC,IAAI,GAAG,4BAA4B;;AAEnE,IAAI,IAAI,CAAC;yBACT,MAAM,gBAAgB,SAAS,SAAS,CAAC;AACzC,IAAI,WAAW,CAAC,UAAU,GAAG,EAAE,EAAE;AACjC,QAAQ,KAAK,CAAC,UAAU,EAAE,+BAA+B,CAAC,CAAC;AAC3D,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;AACnC,KAAK;AACL,IAAI,QAAQ,GAAG;AACf,QAAQ,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;AAC1C,KAAK;AACL,IAAI,QAAQ,CAAC,KAAK,EAAE;AACpB,QAAQ,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC1C,KAAK;AACL,IAAI,eAAe,GAAG;AACtB,QAAQ,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,OAAO,CAAC,CAAC,CAAC;AACrF,KAAK;AACL,IAAI,MAAM,GAAG;AACb,QAAQ,OAAO;AACf,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE;AAC7B,YAAY,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE;AAClC,SAAS,CAAC;AACV,KAAK;AACL,EAAC;AACD,IAAI,GAAGU,kBAAgB,CAAC;AACxB,CAAC,MAAM;AACP,IAAI,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC;AACtC,CAAC,GAAG,CAAC;AACLA,kBAAgB,CAAC,IAAI,GAAG,mBAAmB;;AAE3C,MAAM,0BAA0B,SAAS,QAAQ,CAAC,cAAc,CAAC,CAAC;AAClE,IAAI,WAAW,CAAC,EAAE,QAAQ,GAAG,CAAC,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,EAAE;AACtD,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACjC,KAAK;AACL,IAAI,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE;AACnD,QAAQ,IAAI,WAAW,KAAK,CAAC;AAC7B,YAAY,OAAO,WAAW,CAAC;AAC/B,QAAQ,MAAM,SAAS,GAAGX,qBAA+B,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AACpF,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC;AACzE,YAAY,OAAO,CAAC,CAAC,CAAC;AACtB,QAAQ,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW,CAAC,CAAC;AACrF,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;AACxD,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;AAC9C,YAAY,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACvD,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC;AAC/B,YAAY,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI;AAC9C,gBAAgB,MAAM;AACtB,SAAS;AACT,QAAQ,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC1D,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE;AACjD,YAAY,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAC/C,QAAQ,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;AACrC,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI,EAAE;AAC/D,YAAY,IAAI,CAAC,KAAK,GAAG,uDAAuD,CAAC;AACjF,YAAY,OAAO,CAAC,CAAC,CAAC;AACtB,SAAS;AACT,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI;AACzC,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;AACzE,QAAQ,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC;AACjC,YAAY,IAAI,CAAC,QAAQ,GAAGG,YAAoB,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;AACvE,aAAa;AACb,YAAY,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAClC,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;AACrE,SAAS;AACT,QAAQ,QAAQ,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;AAChD,KAAK;AACL,IAAI,KAAK,CAAC,QAAQ,EAAE;AACpB,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AAC5B,YAAY,IAAI,QAAQ;AACxB,gBAAgB,QAAQ,IAAI,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE;AACvE,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC;AAC9C,YAAY,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC7D,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE;AAC3D,gBAAgB,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAC/C,YAAY,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;AAC1E,YAAY,OAAO,OAAO,CAAC,MAAM,CAAC;AAClC,SAAS;AACT,QAAQ,MAAM,UAAU,GAAGD,UAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAChE,QAAQ,IAAI,UAAU,CAAC,UAAU,KAAK,CAAC,EAAE;AACzC,YAAY,IAAI,CAAC,KAAK,GAAG,iCAAiC,CAAC;AAC3D,YAAY,OAAO,YAAY,CAAC;AAChC,SAAS;AACT,QAAQ,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC9D,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,YAAY,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;AAC3D,YAAY,MAAM,GAAG,GAAG,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC;AAClD,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE;AACxC,gBAAgB,OAAO,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACnD,YAAY,OAAO,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;AAC5C,SAAS;AACT,QAAQ,OAAO,OAAO,CAAC,MAAM,CAAC;AAC9B,KAAK;AACL,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,MAAM,GAAG,EAAE,CAAC;AACxB,QAAQ,IAAI,IAAI,CAAC,SAAS;AAC1B,YAAY,MAAM,GAAGD,OAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAChE,aAAa;AACb,YAAY,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAC9C,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK;AACL,IAAI,MAAM,GAAG;AACb,QAAQ,OAAO;AACf,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE;AAC7B,YAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnC,SAAS,CAAC;AACV,KAAK;AACL,CAAC;AACD,0BAA0B,CAAC,IAAI,GAAG,kBAAkB;;AAEpD,MAAM,uCAAuC,SAAS,UAAU,CAAC;AACjE,IAAI,WAAW,CAAC,EAAE,KAAK,GAAG,YAAY,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,EAAE;AAC9D,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AACxB,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACnC,SAAS;AACT,KAAK;AACL,IAAI,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE;AACnD,QAAQ,IAAI,YAAY,GAAG,WAAW,CAAC;AACvC,QAAQ,OAAO,WAAW,GAAG,CAAC,EAAE;AAChC,YAAY,MAAM,QAAQ,GAAG,IAAI,0BAA0B,EAAE,CAAC;AAC9D,YAAY,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;AACpF,YAAY,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE;AACrC,gBAAgB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACrC,gBAAgB,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;AAC5C,gBAAgB,OAAO,YAAY,CAAC;AACpC,aAAa;AACb,YAAY,IAAI,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,CAAC;AACrD,YAAY,WAAW,IAAI,QAAQ,CAAC,WAAW,CAAC;AAChD,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACtC,SAAS;AACT,QAAQ,OAAO,YAAY,CAAC;AAC5B,KAAK;AACL,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE;AAC5B,QAAQ,MAAM,UAAU,GAAG,EAAE,CAAC;AAC9B,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpD,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC3D,YAAY,IAAI,QAAQ,CAAC,UAAU,KAAK,CAAC,EAAE;AAC3C,gBAAgB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACjD,gBAAgB,OAAO,YAAY,CAAC;AACpC,aAAa;AACb,YAAY,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACtC,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC;AAClC,KAAK;AACL,IAAI,UAAU,CAAC,MAAM,EAAE;AACvB,QAAQ,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AACxB,QAAQ,IAAI,IAAI,GAAG,CAAC,CAAC;AACrB,QAAQ,IAAI,IAAI,GAAG,CAAC,CAAC;AACrB,QAAQ,IAAI,GAAG,GAAG,EAAE,CAAC;AACrB,QAAQ,GAAG;AACX,YAAY,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC7C,YAAY,IAAI,IAAI,KAAK,CAAC,CAAC;AAC3B,gBAAgB,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC7C;AACA,gBAAgB,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACnD,YAAY,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;AAC5B,YAAY,MAAM,QAAQ,GAAG,IAAI,0BAA0B,EAAE,CAAC;AAC9D,YAAY,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAClD,YAAY,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACxC,gBAAgB,OAAO,IAAI,CAAC;AAC5B,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACtC,SAAS,QAAQ,IAAI,KAAK,CAAC,CAAC,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,MAAM,GAAG,EAAE,CAAC;AACxB,QAAQ,IAAI,SAAS,GAAG,KAAK,CAAC;AAC9B,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpD,YAAY,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAChD,YAAY,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAClD,YAAY,IAAI,CAAC,KAAK,CAAC;AACvB,gBAAgB,MAAM,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACtC,YAAY,IAAI,SAAS,EAAE;AAC3B,gBAAgB,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACvC,gBAAgB,MAAM,IAAI,MAAM,CAAC;AACjC,aAAa;AACb;AACA,gBAAgB,MAAM,IAAI,MAAM,CAAC;AACjC,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK;AACL,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,MAAM,GAAG;AACvB,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE;AAC7B,YAAY,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE;AAClC,YAAY,QAAQ,EAAE,EAAE;AACxB,SAAS,CAAC;AACV,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;AAClD,YAAY,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACzD,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK;AACL,CAAC;AACD,uCAAuC,CAAC,IAAI,GAAG,oCAAoC;;AAEnF,IAAI,IAAI,CAAC;AACT,MAAM,wBAAwB,SAAS,SAAS,CAAC;AACjD,IAAI,WAAW,CAAC,UAAU,GAAG,EAAE,EAAE;AACjC,QAAQ,KAAK,CAAC,UAAU,EAAE,uCAAuC,CAAC,CAAC;AACnE,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;AACpC,KAAK;AACL,IAAI,QAAQ,GAAG;AACf,QAAQ,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;AAC1C,KAAK;AACL,IAAI,QAAQ,CAAC,KAAK,EAAE;AACpB,QAAQ,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC1C,KAAK;AACL,IAAI,eAAe,GAAG;AACtB,QAAQ,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,OAAO,CAAC,CAAC,CAAC;AACrF,KAAK;AACL,IAAI,MAAM,GAAG;AACb,QAAQ,OAAO;AACf,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE;AAC7B,YAAY,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE;AAClC,SAAS,CAAC;AACV,KAAK;AACL,CAAC;AACD,IAAI,GAAG,wBAAwB,CAAC;AAChC,CAAC,MAAM;AACP,IAAI,SAAS,CAAC,wBAAwB,GAAG,IAAI,CAAC;AAC9C,CAAC,GAAG,CAAC;AACL,wBAAwB,CAAC,IAAI,GAAG,0BAA0B;;AAE1D,IAAI,IAAI,CAAC;AACT,MAAM,QAAQ,SAAS,WAAW,CAAC;AACnC,IAAI,WAAW,CAAC,UAAU,GAAG,EAAE,EAAE;AACjC,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;AACpC,KAAK;AACL,CAAC;AACD,IAAI,GAAG,QAAQ,CAAC;AAChB,CAAC,MAAM;AACP,IAAI,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC9B,CAAC,GAAG,CAAC;AACL,QAAQ,CAAC,IAAI,GAAG,UAAU;;AAE1B,IAAI,IAAI,CAAC;YACT,MAAM,GAAG,SAAS,WAAW,CAAC;AAC9B,IAAI,WAAW,CAAC,UAAU,GAAG,EAAE,EAAE;AACjC,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;AACpC,KAAK;AACL,EAAC;AACD,IAAI,GAAGW,KAAG,CAAC;AACX,CAAC,MAAM;AACP,IAAI,SAAS,CAAC,GAAG,GAAG,IAAI,CAAC;AACzB,CAAC,GAAG,CAAC;AACLA,KAAG,CAAC,IAAI,GAAG,KAAK;;AAEhB,MAAM,qBAAqB,SAAS,QAAQ,CAAC,UAAU,CAAC,CAAC;AACzD,IAAI,WAAW,CAAC,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,EAAE;AACxC,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC9B,QAAQ,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;AAClC,KAAK;AACL,IAAI,MAAM,GAAG;AACb,QAAQ,OAAO;AACf,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE;AAC7B,YAAY,KAAK,EAAE,IAAI,CAAC,KAAK;AAC7B,SAAS,CAAC;AACV,KAAK;AACL,CAAC;AACD,qBAAqB,CAAC,IAAI,GAAG,kBAAkB;;AAE/C,MAAM,2BAA2B,SAAS,qBAAqB,CAAC;AAChE,CAAC;AACD,2BAA2B,CAAC,IAAI,GAAG,wBAAwB;;AAE3D,MAAM,sBAAsB,SAAS,eAAe,CAAC;AACrD,IAAI,WAAW,CAAC,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,EAAE;AACxC,QAAQ,KAAK,CAAC,UAAU,EAAE,2BAA2B,CAAC,CAAC;AACvD,KAAK;AACL,IAAI,UAAU,CAAC,WAAW,EAAE;AAC5B,QAAQ,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAEZ,qBAA+B,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC;AAC3H,KAAK;AACL,IAAI,UAAU,CAAC,WAAW,EAAE;AAC5B,QAAQ,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;AAC1C,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;AAC3E,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE;AACvC,YAAY,IAAI,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAChD,QAAQ,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,WAAW,CAAC;AAC5C,KAAK;AACL,CAAC;AACD,sBAAsB,CAAC,IAAI,GAAG,eAAe;;AAE7C,MAAM,yBAAyB,SAAS,sBAAsB,CAAC;AAC/D,IAAI,UAAU,CAAC,WAAW,EAAE;AAC5B,QAAQ,IAAI,CAAC,UAAU,CAAC,YAAY,GAAGA,qBAA+B,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AACjG,QAAQ,IAAI;AACZ,YAAY,IAAI,CAAC,UAAU,CAAC,KAAK,GAAGC,OAAiB,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AAChF,SAAS;AACT,QAAQ,OAAO,EAAE,EAAE;AACnB,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,mCAAmC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAC7F,YAAY,IAAI,CAAC,UAAU,CAAC,KAAK,GAAGA,OAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC5E,SAAS;AACT,KAAK;AACL,IAAI,UAAU,CAAC,WAAW,EAAE;AAC5B,QAAQ,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,UAAU,CAACA,OAAiB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;AACrG,QAAQ,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,WAAW,CAAC;AAC5C,KAAK;AACL,CAAC;AACD,yBAAyB,CAAC,IAAI,GAAG,sBAAsB;;AAEvD,IAAI,IAAI,CAAC;AACT,MAAM,UAAU,SAAS,yBAAyB,CAAC;AACnD,IAAI,WAAW,CAAC,UAAU,GAAG,EAAE,EAAE;AACjC,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;AACpC,KAAK;AACL,CAAC;AACD,IAAI,GAAG,UAAU,CAAC;AAClB,CAAC,MAAM;AACP,IAAI,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;AAChC,CAAC,GAAG,CAAC;AACL,UAAU,CAAC,IAAI,GAAG,YAAY;;AAE9B,MAAM,wBAAwB,SAAS,sBAAsB,CAAC;AAC9D,IAAI,UAAU,CAAC,WAAW,EAAE;AAC5B,QAAQ,IAAI,CAAC,UAAU,CAAC,KAAK,GAAGA,OAAiB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;AAC7E,QAAQ,IAAI,CAAC,UAAU,CAAC,YAAY,GAAGD,qBAA+B,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AACjG,KAAK;AACL,IAAI,UAAU,CAAC,WAAW,EAAE;AAC5B,QAAQ,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,WAAW,CAAC;AAC5C,QAAQ,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,UAAU,CAACC,OAAiB,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC;AACtG,KAAK;AACL,CAAC;AACD,wBAAwB,CAAC,IAAI,GAAG,qBAAqB;;AAErD,IAAI,IAAI,CAAC;AACT,MAAM,SAAS,SAAS,wBAAwB,CAAC;AACjD,IAAI,WAAW,CAAC,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,EAAE;AACxC,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;AACpC,KAAK;AACL,CAAC;AACD,IAAI,GAAG,SAAS,CAAC;AACjB,CAAC,MAAM;AACP,IAAI,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC;AAC/B,CAAC,GAAG,CAAC;AACL,SAAS,CAAC,IAAI,GAAG,WAAW;;AAE5B,MAAM,8BAA8B,SAAS,sBAAsB,CAAC;AACpE,IAAI,UAAU,CAAC,WAAW,EAAE;AAC5B,QAAQ,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/G,QAAQ,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;AACrD,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AACtD,YAAY,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5C,YAAY,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAChD,YAAY,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AACpC,YAAY,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AACpC,SAAS;AACT,QAAQ,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;AAC7F,KAAK;AACL,IAAI,UAAU,CAAC,WAAW,EAAE;AAC5B,QAAQ,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC;AAC7C,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;AAC1F,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;AAC5C,YAAY,MAAM,OAAO,GAAGC,UAAkB,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7E,YAAY,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;AACrD,YAAY,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;AACnC,gBAAgB,SAAS;AACzB,YAAY,MAAM,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC5C,YAAY,KAAK,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;AAC3D,gBAAgB,YAAY,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC5D,SAAS;AACT,QAAQ,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,WAAW,CAAC;AAC5C,KAAK;AACL,CAAC;AACD,8BAA8B,CAAC,IAAI,GAAG,2BAA2B;;AAEjE,IAAI,IAAI,CAAC;AACT,MAAM,eAAe,SAAS,8BAA8B,CAAC;AAC7D,IAAI,WAAW,CAAC,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,EAAE;AACxC,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;AACpC,KAAK;AACL,CAAC;AACD,IAAI,GAAG,eAAe,CAAC;AACvB,CAAC,MAAM;AACP,IAAI,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC;AACrC,CAAC,GAAG,CAAC;AACL,eAAe,CAAC,IAAI,GAAG,iBAAiB;;AAExC,IAAI,IAAI,CAAC;AACT,MAAM,aAAa,SAAS,sBAAsB,CAAC;AACnD,IAAI,WAAW,CAAC,UAAU,GAAG,EAAE,EAAE;AACjC,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;AACpC,KAAK;AACL,CAAC;AACD,IAAI,GAAG,aAAa,CAAC;AACrB,CAAC,MAAM;AACP,IAAI,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;AACnC,CAAC,GAAG,CAAC;AACL,aAAa,CAAC,IAAI,GAAG,eAAe;;AAEpC,IAAI,IAAI,CAAC;AACT,MAAM,eAAe,SAAS,sBAAsB,CAAC;AACrD,IAAI,WAAW,CAAC,UAAU,GAAG,EAAE,EAAE;AACjC,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;AACpC,KAAK;AACL,CAAC;AACD,IAAI,GAAG,eAAe,CAAC;AACvB,CAAC,MAAM;AACP,IAAI,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC;AACrC,CAAC,GAAG,CAAC;AACL,eAAe,CAAC,IAAI,GAAG,iBAAiB;;AAExC,IAAI,IAAI,CAAC;AACT,MAAM,aAAa,SAAS,sBAAsB,CAAC;AACnD,IAAI,WAAW,CAAC,UAAU,GAAG,EAAE,EAAE;AACjC,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;AACpC,KAAK;AACL,CAAC;AACD,IAAI,GAAG,aAAa,CAAC;AACrB,CAAC,MAAM;AACP,IAAI,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;AACnC,CAAC,GAAG,CAAC;AACL,aAAa,CAAC,IAAI,GAAG,eAAe;;AAEpC,IAAI,IAAI,CAAC;AACT,MAAM,cAAc,SAAS,sBAAsB,CAAC;AACpD,IAAI,WAAW,CAAC,UAAU,GAAG,EAAE,EAAE;AACjC,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;AACpC,KAAK;AACL,CAAC;AACD,IAAI,GAAG,cAAc,CAAC;AACtB,CAAC,MAAM;AACP,IAAI,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC;AACpC,CAAC,GAAG,CAAC;AACL,cAAc,CAAC,IAAI,GAAG,gBAAgB;;AAEtC,IAAI,IAAI,CAAC;AACT,MAAM,SAAS,SAAS,sBAAsB,CAAC;AAC/C,IAAI,WAAW,CAAC,UAAU,GAAG,EAAE,EAAE;AACjC,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;AACpC,KAAK;AACL,CAAC;AACD,IAAI,GAAG,SAAS,CAAC;AACjB,CAAC,MAAM;AACP,IAAI,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC;AAC/B,CAAC,GAAG,CAAC;AACL,SAAS,CAAC,IAAI,GAAG,WAAW;;AAE5B,IAAI,IAAI,CAAC;AACT,MAAM,aAAa,SAAS,sBAAsB,CAAC;AACnD,IAAI,WAAW,CAAC,UAAU,GAAG,EAAE,EAAE;AACjC,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;AACpC,KAAK;AACL,CAAC;AACD,IAAI,GAAG,aAAa,CAAC;AACrB,CAAC,MAAM;AACP,IAAI,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;AACnC,CAAC,GAAG,CAAC;AACL,aAAa,CAAC,IAAI,GAAG,eAAe;;AAEpC,IAAI,IAAI,CAAC;AACT,MAAM,aAAa,SAAS,sBAAsB,CAAC;AACnD,IAAI,WAAW,CAAC,UAAU,GAAG,EAAE,EAAE;AACjC,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;AACpC,KAAK;AACL,CAAC;AACD,IAAI,GAAG,aAAa,CAAC;AACrB,CAAC,MAAM;AACP,IAAI,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;AACnC,CAAC,GAAG,CAAC;AACL,aAAa,CAAC,IAAI,GAAG,eAAe;;AAEpC,IAAI,IAAI,CAAC;AACT,MAAM,aAAa,SAAS,sBAAsB,CAAC;AACnD,IAAI,WAAW,CAAC,UAAU,GAAG,EAAE,EAAE;AACjC,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;AACpC,KAAK;AACL,CAAC;AACD,IAAI,GAAG,aAAa,CAAC;AACrB,CAAC,MAAM;AACP,IAAI,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;AACnC,CAAC,GAAG,CAAC;AACL,aAAa,CAAC,IAAI,GAAG,eAAe;;AAEpC,IAAI,IAAI,CAAC;AACT,MAAM,eAAe,SAAS,sBAAsB,CAAC;AACrD,IAAI,WAAW,CAAC,UAAU,GAAG,EAAE,EAAE;AACjC,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;AACpC,KAAK;AACL,CAAC;AACD,IAAI,GAAG,eAAe,CAAC;AACvB,CAAC,MAAM;AACP,IAAI,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC;AACrC,CAAC,GAAG,CAAC;AACL,eAAe,CAAC,IAAI,GAAG,iBAAiB;;AAExC,IAAI,IAAI,CAAC;AACT,MAAM,OAAO,SAAS,aAAa,CAAC;AACpC,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,EAAE;AAC1D,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AACtB,QAAQ,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACvB,QAAQ,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;AACrB,QAAQ,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AACtB,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACxB,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACxB,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACnC,YAAY,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACxE,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;AACjD,gBAAgB,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACtE,SAAS;AACT,QAAQ,IAAI,SAAS,EAAE;AACvB,YAAY,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACrC,YAAY,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC3E,SAAS;AACT,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;AACpC,KAAK;AACL,IAAI,UAAU,CAAC,WAAW,EAAE;AAC5B,QAAQ,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAEF,qBAA+B,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AACpH,KAAK;AACL,IAAI,QAAQ,GAAG;AACf,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AACpC,QAAQ,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACnD,QAAQ,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;AAC5C,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;AAC3C,YAAY,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACxC,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK;AACL,IAAI,QAAQ,CAAC,SAAS,EAAE;AACxB,QAAQ,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,cAAc,EAAE,CAAC;AAC/C,QAAQ,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AACjD,QAAQ,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC;AAC1C,QAAQ,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;AAC5C,QAAQ,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC;AAChD,QAAQ,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC;AAChD,KAAK;AACL,IAAI,MAAM,GAAG;AACb,QAAQ,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;AAC9G,KAAK;AACL,IAAI,UAAU,CAAC,WAAW,EAAE;AAC5B,QAAQ,MAAM,MAAM,GAAG,+CAA+C,CAAC;AACvE,QAAQ,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACrD,QAAQ,IAAI,WAAW,KAAK,IAAI,EAAE;AAClC,YAAY,IAAI,CAAC,KAAK,GAAG,mCAAmC,CAAC;AAC7D,YAAY,OAAO;AACnB,SAAS;AACT,QAAQ,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClD,QAAQ,IAAI,IAAI,IAAI,EAAE;AACtB,YAAY,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AACpC;AACA,YAAY,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AACpC,QAAQ,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClD,QAAQ,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAChD,QAAQ,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACjD,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACnD,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACnD,KAAK;AACL,IAAI,QAAQ,CAAC,QAAQ,GAAG,KAAK,EAAE;AAC/B,QAAQ,IAAI,QAAQ,KAAK,KAAK,EAAE;AAChC,YAAY,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7C,YAAY,WAAW,CAAC,CAAC,CAAC,GAAGa,SAAiB,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAClH,YAAY,WAAW,CAAC,CAAC,CAAC,GAAGA,SAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC9D,YAAY,WAAW,CAAC,CAAC,CAAC,GAAGA,SAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC5D,YAAY,WAAW,CAAC,CAAC,CAAC,GAAGA,SAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC7D,YAAY,WAAW,CAAC,CAAC,CAAC,GAAGA,SAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAC/D,YAAY,WAAW,CAAC,CAAC,CAAC,GAAGA,SAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAC/D,YAAY,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACjC,YAAY,OAAO,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxC,SAAS;AACT,QAAQ,OAAO,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACxC,KAAK;AACL,IAAI,eAAe,GAAG;AACtB,QAAQ,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAC3E,KAAK;AACL,IAAI,MAAM,GAAG;AACb,QAAQ,OAAO;AACf,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE;AAC7B,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;AAC3B,YAAY,KAAK,EAAE,IAAI,CAAC,KAAK;AAC7B,YAAY,GAAG,EAAE,IAAI,CAAC,GAAG;AACzB,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;AAC3B,YAAY,MAAM,EAAE,IAAI,CAAC,MAAM;AAC/B,YAAY,MAAM,EAAE,IAAI,CAAC,MAAM;AAC/B,SAAS,CAAC;AACV,KAAK;AACL,CAAC;AACD,IAAI,GAAG,OAAO,CAAC;AACf,CAAC,MAAM;AACP,IAAI,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;AAC7B,CAAC,GAAG,CAAC;AACL,OAAO,CAAC,IAAI,GAAG,SAAS;;AAExB,IAAI,IAAI,CAAC;AACT,MAAM,eAAe,SAAS,OAAO,CAAC;AACtC,IAAI,WAAW,CAAC,UAAU,GAAG,EAAE,EAAE;AACjC,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;AACxF,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;AACpC,KAAK;AACL,IAAI,QAAQ,CAAC,SAAS,EAAE;AACxB,QAAQ,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,kBAAkB,EAAE,CAAC;AAC1D,KAAK;AACL,IAAI,MAAM,GAAG;AACb,QAAQ,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE;AAChI,KAAK;AACL,IAAI,UAAU,CAAC,WAAW,EAAE;AAC5B,QAAQ,IAAI,KAAK,GAAG,KAAK,CAAC;AAC1B,QAAQ,IAAI,UAAU,GAAG,EAAE,CAAC;AAC5B,QAAQ,IAAI,cAAc,GAAG,EAAE,CAAC;AAChC,QAAQ,IAAI,YAAY,GAAG,CAAC,CAAC;AAC7B,QAAQ,IAAI,MAAM,CAAC;AACnB,QAAQ,IAAI,cAAc,GAAG,CAAC,CAAC;AAC/B,QAAQ,IAAI,gBAAgB,GAAG,CAAC,CAAC;AACjC,QAAQ,IAAI,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;AACzD,YAAY,UAAU,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC1E,YAAY,KAAK,GAAG,IAAI,CAAC;AACzB,SAAS;AACT,aAAa;AACb,YAAY,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AAC3E,YAAY,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;AACvC,gBAAgB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;AACrE,YAAY,UAAU,GAAG,WAAW,CAAC;AACrC,SAAS;AACT,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC9C,gBAAgB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;AACrE,YAAY,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC9C,gBAAgB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;AACrE,SAAS;AACT,aAAa;AACb,YAAY,IAAI,UAAU,GAAG,CAAC,CAAC;AAC/B,YAAY,IAAI,kBAAkB,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC7D,YAAY,IAAI,gBAAgB,GAAG,EAAE,CAAC;AACtC,YAAY,IAAI,kBAAkB,KAAK,CAAC,CAAC,EAAE;AAC3C,gBAAgB,kBAAkB,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC7D,gBAAgB,UAAU,GAAG,CAAC,CAAC,CAAC;AAChC,aAAa;AACb,YAAY,IAAI,kBAAkB,KAAK,CAAC,CAAC,EAAE;AAC3C,gBAAgB,gBAAgB,GAAG,UAAU,CAAC,SAAS,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC;AAChF,gBAAgB,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;AACzE,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,MAAM,gBAAgB,CAAC,MAAM,KAAK,CAAC,CAAC;AACtF,oBAAoB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;AACzE,gBAAgB,IAAI,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC5E,gBAAgB,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;AAC3C,oBAAoB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;AACzE,gBAAgB,cAAc,GAAG,UAAU,GAAG,MAAM,CAAC;AACrD,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;AACnD,oBAAoB,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC5E,oBAAoB,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;AAC/C,wBAAwB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;AAC7E,oBAAoB,gBAAgB,GAAG,UAAU,GAAG,MAAM,CAAC;AAC3D,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,qBAAqB,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC5D,QAAQ,IAAI,qBAAqB,KAAK,CAAC,CAAC;AACxC,YAAY,qBAAqB,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC5D,QAAQ,IAAI,qBAAqB,KAAK,CAAC,CAAC,EAAE;AAC1C,YAAY,MAAM,iBAAiB,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;AACpG,YAAY,IAAI,KAAK,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;AAClD,gBAAgB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;AACrE,YAAY,YAAY,GAAG,iBAAiB,CAAC,OAAO,EAAE,CAAC;AACvD,YAAY,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC;AAC5E,SAAS;AACT;AACA,YAAY,cAAc,GAAG,UAAU,CAAC;AACxC,QAAQ,QAAQ,IAAI;AACpB,YAAY,MAAM,cAAc,CAAC,MAAM,KAAK,CAAC;AAC7C,gBAAgB,MAAM,GAAG,yBAAyB,CAAC;AACnD,gBAAgB,IAAI,qBAAqB,KAAK,CAAC,CAAC;AAChD,oBAAoB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;AACzE,gBAAgB,MAAM;AACtB,YAAY,MAAM,cAAc,CAAC,MAAM,KAAK,EAAE;AAC9C,gBAAgB,MAAM,GAAG,gCAAgC,CAAC;AAC1D,gBAAgB,IAAI,qBAAqB,KAAK,CAAC,CAAC,EAAE;AAClD,oBAAoB,IAAI,cAAc,GAAG,EAAE,GAAG,YAAY,CAAC;AAC3D,oBAAoB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AAC7D,oBAAoB,cAAc,GAAG,EAAE,IAAI,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;AACzE,oBAAoB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AAC7D,oBAAoB,cAAc,GAAG,IAAI,IAAI,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;AAC3E,oBAAoB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AAClE,iBAAiB;AACjB,gBAAgB,MAAM;AACtB,YAAY,MAAM,cAAc,CAAC,MAAM,KAAK,EAAE;AAC9C,gBAAgB,MAAM,GAAG,uCAAuC,CAAC;AACjE,gBAAgB,IAAI,qBAAqB,KAAK,CAAC,CAAC,EAAE;AAClD,oBAAoB,IAAI,cAAc,GAAG,EAAE,GAAG,YAAY,CAAC;AAC3D,oBAAoB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AAC7D,oBAAoB,cAAc,GAAG,IAAI,IAAI,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;AAC3E,oBAAoB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AAClE,iBAAiB;AACjB,gBAAgB,MAAM;AACtB,YAAY,MAAM,cAAc,CAAC,MAAM,KAAK,EAAE;AAC9C,gBAAgB,MAAM,GAAG,8CAA8C,CAAC;AACxE,gBAAgB,IAAI,qBAAqB,KAAK,CAAC,CAAC,EAAE;AAClD,oBAAoB,MAAM,cAAc,GAAG,IAAI,GAAG,YAAY,CAAC;AAC/D,oBAAoB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AAClE,iBAAiB;AACjB,gBAAgB,MAAM;AACtB,YAAY;AACZ,gBAAgB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;AACrE,SAAS;AACT,QAAQ,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACxD,QAAQ,IAAI,WAAW,KAAK,IAAI;AAChC,YAAY,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;AACjE,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrD,YAAY,QAAQ,CAAC;AACrB,gBAAgB,KAAK,CAAC;AACtB,oBAAoB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC7D,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,CAAC;AACtB,oBAAoB,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC9D,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,CAAC;AACtB,oBAAoB,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC5D,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,CAAC;AACtB,oBAAoB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,cAAc,CAAC;AAC9E,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,CAAC;AACtB,oBAAoB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,gBAAgB,CAAC;AAClF,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,CAAC;AACtB,oBAAoB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC/D,oBAAoB,MAAM;AAC1B,gBAAgB;AAChB,oBAAoB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;AACzE,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,KAAK,KAAK,KAAK,EAAE;AAC7B,YAAY,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAC9H,YAAY,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC;AAClD,YAAY,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;AAChD,YAAY,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;AAC5C,YAAY,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;AAC/C,YAAY,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;AACnD,YAAY,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;AACnD,YAAY,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,kBAAkB,EAAE,CAAC;AAC7D,SAAS;AACT,KAAK;AACL,IAAI,QAAQ,CAAC,QAAQ,GAAG,KAAK,EAAE;AAC/B,QAAQ,IAAI,QAAQ,KAAK,KAAK,EAAE;AAChC,YAAY,MAAM,WAAW,GAAG,EAAE,CAAC;AACnC,YAAY,WAAW,CAAC,IAAI,CAACA,SAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9D,YAAY,WAAW,CAAC,IAAI,CAACA,SAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/D,YAAY,WAAW,CAAC,IAAI,CAACA,SAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7D,YAAY,WAAW,CAAC,IAAI,CAACA,SAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9D,YAAY,WAAW,CAAC,IAAI,CAACA,SAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AAChE,YAAY,WAAW,CAAC,IAAI,CAACA,SAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AAChE,YAAY,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,EAAE;AACxC,gBAAgB,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtC,gBAAgB,WAAW,CAAC,IAAI,CAACA,SAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;AACzE,aAAa;AACb,YAAY,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClC,YAAY,OAAO,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxC,SAAS;AACT,QAAQ,OAAO,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACxC,KAAK;AACL,IAAI,MAAM,GAAG;AACb,QAAQ,OAAO;AACf,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE;AAC7B,YAAY,WAAW,EAAE,IAAI,CAAC,WAAW;AACzC,SAAS,CAAC;AACV,KAAK;AACL,CAAC;AACD,IAAI,GAAG,eAAe,CAAC;AACvB,CAAC,MAAM;AACP,IAAI,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC;AACrC,CAAC,GAAG,CAAC;AACL,eAAe,CAAC,IAAI,GAAG,iBAAiB;;AAExC,IAAI,IAAI,CAAC;AACT,MAAM,IAAI,SAAS,UAAU,CAAC;AAC9B,IAAI,WAAW,CAAC,UAAU,GAAG,EAAE,EAAE;AACjC,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;AACpC,KAAK;AACL,CAAC;AACD,IAAI,GAAG,IAAI,CAAC;AACZ,CAAC,MAAM;AACP,IAAI,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC;AAC1B,CAAC,GAAG,CAAC;AACL,IAAI,CAAC,IAAI,GAAG,MAAM;;AAElB,IAAI,IAAI,CAAC;AACT,MAAM,SAAS,SAAS,UAAU,CAAC;AACnC,IAAI,WAAW,CAAC,UAAU,GAAG,EAAE,EAAE;AACjC,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;AACpC,KAAK;AACL,CAAC;AACD,IAAI,GAAG,SAAS,CAAC;AACjB,CAAC,MAAM;AACP,IAAI,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC;AAC/B,CAAC,GAAG,CAAC;AACL,SAAS,CAAC,IAAI,GAAG,WAAW;;AAE5B,IAAI,IAAI,CAAC;AACT,MAAM,QAAQ,SAAS,UAAU,CAAC;AAClC,IAAI,WAAW,CAAC,UAAU,GAAG,EAAE,EAAE;AACjC,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;AACpC,KAAK;AACL,CAAC;AACD,IAAI,GAAG,QAAQ,CAAC;AAChB,CAAC,MAAM;AACP,IAAI,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC9B,CAAC,GAAG,CAAC;AACL,QAAQ,CAAC,IAAI,GAAG,UAAU;;AAE1B,IAAI,IAAI,CAAC;AACT,MAAM,QAAQ,SAAS,UAAU,CAAC;AAClC,IAAI,WAAW,CAAC,UAAU,GAAG,EAAE,EAAE;AACjC,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;AACpC,KAAK;AACL,CAAC;AACD,IAAI,GAAG,QAAQ,CAAC;AAChB,CAAC,MAAM;AACP,IAAI,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC9B,CAAC,GAAG,CAAC;AACL,QAAQ,CAAC,IAAI,GAAG,UAAU;;AAE1B,IAAI,EAAE,CAAC;AACP,MAAM,IAAI,SAAS,UAAU,CAAC;AAC9B,IAAI,WAAW,CAAC,UAAU,GAAG,EAAE,EAAE;AACjC,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;AACpC,KAAK;AACL,CAAC;AACD,EAAE,GAAG,IAAI,CAAC;AACV,CAAC,MAAM;AACP,IAAI,SAAS,CAAC,IAAI,GAAG,EAAE,CAAC;AACxB,CAAC,GAAG,CAAC;AACL,IAAI,CAAC,IAAI,GAAG,MAAM;;AAElB,MAAM,GAAG,CAAC;AACV,IAAI,WAAW,CAAC,EAAE,IAAI,GAAG,YAAY,EAAE,QAAQ,GAAG,KAAK,GAAG,GAAG,EAAE,EAAE;AACjE,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACjC,KAAK;AACL;;AAEA,MAAM,MAAM,SAAS,GAAG,CAAC;AACzB,IAAI,WAAW,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,EAAE;AACpD,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AAC3B,KAAK;AACL;;AAEA,MAAM,QAAQ,SAAS,GAAG,CAAC;AAC3B,IAAI,WAAW,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,EAAE;AAC1E,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AAC3B,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AAC3B,KAAK;AACL;;AAEA,MAAM,OAAO,CAAC;AACd,IAAI,WAAW,CAAC,EAAE,IAAI,GAAG,UAAU,EAAE,GAAG,EAAE,EAAE;AAC5C,QAAQ,IAAI,CAAC,QAAQ,GAAGb,qBAA+B,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAC3E,KAAK;AACL,IAAI,IAAI,IAAI,GAAG;AACf,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC;AAC5C,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;AACpB,QAAQ,IAAI,CAAC,QAAQ,GAAGA,qBAA+B,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5E,KAAK;AACL,IAAI,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE;AACnD,QAAQ,MAAM,SAAS,GAAG,WAAW,GAAG,WAAW,CAAC;AACpD,QAAQ,IAAI,CAAC,QAAQ,GAAGA,qBAA+B,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AACnH,QAAQ,OAAO,SAAS,CAAC;AACzB,KAAK;AACL,IAAI,KAAK,CAAC,QAAQ,EAAE;AACpB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC;AAC5C,KAAK;AACL;;AAEA,SAAS,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE;AACrD,IAAI,IAAI,WAAW,YAAY,MAAM,EAAE;AACvC,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3D,YAAY,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAChF,YAAY,IAAI,MAAM,CAAC,QAAQ,EAAE;AACjC,gBAAgB,OAAO;AACvB,oBAAoB,QAAQ,EAAE,IAAI;AAClC,oBAAoB,MAAM,EAAE,IAAI;AAChC,iBAAiB,CAAC;AAClB,aAAa;AACb,SAAS;AACT,QAAQ;AACR,YAAY,MAAM,OAAO,GAAG;AAC5B,gBAAgB,QAAQ,EAAE,KAAK;AAC/B,gBAAgB,MAAM,EAAE;AACxB,oBAAoB,KAAK,EAAE,8BAA8B;AACzD,iBAAiB;AACjB,aAAa,CAAC;AACd,YAAY,IAAI,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC;AAChD,gBAAgB,OAAO,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;AAChD,YAAY,OAAO,OAAO,CAAC;AAC3B,SAAS;AACT,KAAK;AACL,IAAI,IAAI,WAAW,YAAY,GAAG,EAAE;AACpC,QAAQ,IAAI,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC;AAC5C,YAAY,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;AAC/C,QAAQ,OAAO;AACf,YAAY,QAAQ,EAAE,IAAI;AAC1B,YAAY,MAAM,EAAE,IAAI;AACxB,SAAS,CAAC;AACV,KAAK;AACL,IAAI,IAAI,CAAC,IAAI,YAAY,MAAM,MAAM,KAAK,EAAE;AAC5C,QAAQ,OAAO;AACf,YAAY,QAAQ,EAAE,KAAK;AAC3B,YAAY,MAAM,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE;AAClD,SAAS,CAAC;AACV,KAAK;AACL,IAAI,IAAI,CAAC,SAAS,YAAY,MAAM,MAAM,KAAK,EAAE;AACjD,QAAQ,OAAO;AACf,YAAY,QAAQ,EAAE,KAAK;AAC3B,YAAY,MAAM,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE;AACjD,SAAS,CAAC;AACV,KAAK;AACL,IAAI,IAAI,CAAC,WAAW,YAAY,MAAM,MAAM,KAAK,EAAE;AACnD,QAAQ,OAAO;AACf,YAAY,QAAQ,EAAE,KAAK;AAC3B,YAAY,MAAM,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE;AACnD,SAAS,CAAC;AACV,KAAK;AACL,IAAI,IAAI,CAAC,QAAQ,IAAI,WAAW,MAAM,KAAK,EAAE;AAC7C,QAAQ,OAAO;AACf,YAAY,QAAQ,EAAE,KAAK;AAC3B,YAAY,MAAM,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE;AACnD,SAAS,CAAC;AACV,KAAK;AACL,IAAI,IAAI,CAAC,QAAQ,IAAI,WAAW,CAAC,OAAO,MAAM,KAAK,EAAE;AACrD,QAAQ,OAAO;AACf,YAAY,QAAQ,EAAE,KAAK;AAC3B,YAAY,MAAM,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE;AACnD,SAAS,CAAC;AACV,KAAK;AACL,IAAI,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,OAAO,MAAM,KAAK,EAAE;AACnD,QAAQ,OAAO;AACf,YAAY,QAAQ,EAAE,KAAK;AAC3B,YAAY,MAAM,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE;AACnD,SAAS,CAAC;AACV,KAAK;AACL,IAAI,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACvD,IAAI,IAAI,SAAS,CAAC,UAAU,KAAK,CAAC,EAAE;AACpC,QAAQ,OAAO;AACf,YAAY,QAAQ,EAAE,KAAK;AAC3B,YAAY,MAAM,EAAE,EAAE,KAAK,EAAE,yCAAyC,EAAE;AACxE,SAAS,CAAC;AACV,KAAK;AACL,IAAI,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;AAC1F,IAAI,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE;AAC9B,QAAQ,OAAO;AACf,YAAY,QAAQ,EAAE,KAAK;AAC3B,YAAY,MAAM,EAAE,EAAE,KAAK,EAAE,yCAAyC,EAAE;AACxE,SAAS,CAAC;AACV,KAAK;AACL,IAAI,IAAI,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,KAAK,EAAE;AACjE,QAAQ,OAAO;AACf,YAAY,QAAQ,EAAE,KAAK;AAC3B,YAAY,MAAM,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE;AACnD,SAAS,CAAC;AACV,KAAK;AACL,IAAI,IAAI,WAAW,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE;AACrE,QAAQ,OAAO;AACf,YAAY,QAAQ,EAAE,KAAK;AAC3B,YAAY,MAAM,EAAE,IAAI;AACxB,SAAS,CAAC;AACV,KAAK;AACL,IAAI,IAAI,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,KAAK,EAAE;AAClE,QAAQ,OAAO;AACf,YAAY,QAAQ,EAAE,KAAK;AAC3B,YAAY,MAAM,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE;AACnD,SAAS,CAAC;AACV,KAAK;AACL,IAAI,IAAI,WAAW,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE;AACvE,QAAQ,OAAO;AACf,YAAY,QAAQ,EAAE,KAAK;AAC3B,YAAY,MAAM,EAAE,IAAI;AACxB,SAAS,CAAC;AACV,KAAK;AACL,IAAI,IAAI,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,KAAK,KAAK,EAAE;AACtE,QAAQ,OAAO;AACf,YAAY,QAAQ,EAAE,KAAK;AAC3B,YAAY,MAAM,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE;AACnD,SAAS,CAAC;AACV,KAAK;AACL,IAAI,IAAI,WAAW,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE;AAC/E,QAAQ,OAAO;AACf,YAAY,QAAQ,EAAE,KAAK;AAC3B,YAAY,MAAM,EAAE,IAAI;AACxB,SAAS,CAAC;AACV,KAAK;AACL,IAAI,IAAI,EAAE,WAAW,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE;AAC/C,QAAQ,OAAO;AACf,YAAY,QAAQ,EAAE,KAAK;AAC3B,YAAY,MAAM,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE;AACnD,SAAS,CAAC;AACV,KAAK;AACL,IAAI,IAAI,WAAW,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE;AACvE,QAAQ,OAAO;AACf,YAAY,QAAQ,EAAE,KAAK;AAC3B,YAAY,MAAM,EAAE,IAAI;AACxB,SAAS,CAAC;AACV,KAAK;AACL,IAAI,IAAI,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE;AACvC,QAAQ,IAAI,CAAC,cAAc,IAAI,WAAW,CAAC,OAAO,MAAM,KAAK,EAAE;AAC/D,YAAY,OAAO;AACnB,gBAAgB,QAAQ,EAAE,KAAK;AAC/B,gBAAgB,MAAM,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE;AACvD,aAAa,CAAC;AACd,SAAS;AACT,QAAQ,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC;AAC5D,QAAQ,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC;AACxD,QAAQ,IAAI,UAAU,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE;AACnD,YAAY,OAAO;AACnB,gBAAgB,QAAQ,EAAE,KAAK;AAC/B,gBAAgB,MAAM,EAAE,IAAI;AAC5B,aAAa,CAAC;AACd,SAAS;AACT,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpD,YAAY,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE;AAC/C,gBAAgB,OAAO;AACvB,oBAAoB,QAAQ,EAAE,KAAK;AACnC,oBAAoB,MAAM,EAAE,IAAI;AAChC,iBAAiB,CAAC;AAClB,aAAa;AACb,SAAS;AACT,KAAK;AACL,IAAI,IAAI,WAAW,CAAC,IAAI,EAAE;AAC1B,QAAQ,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AAChF,QAAQ,IAAI,WAAW,CAAC,IAAI;AAC5B,YAAY,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;AAC/C,KAAK;AACL,IAAI,IAAI,WAAW,YAAY,SAAS,CAAC,WAAW,EAAE;AACtD,QAAQ,IAAI,SAAS,GAAG,CAAC,CAAC;AAC1B,QAAQ,IAAI,MAAM,GAAG;AACrB,YAAY,QAAQ,EAAE,KAAK;AAC3B,YAAY,MAAM,EAAE;AACpB,gBAAgB,KAAK,EAAE,eAAe;AACtC,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,IAAI,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;AAC5D,QAAQ,IAAI,SAAS,GAAG,CAAC,EAAE;AAC3B,YAAY,IAAI,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,QAAQ,EAAE;AACrE,gBAAgB,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;AAC9D,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,SAAS,KAAK,CAAC,EAAE;AAC7B,YAAY,OAAO;AACnB,gBAAgB,QAAQ,EAAE,IAAI;AAC9B,gBAAgB,MAAM,EAAE,IAAI;AAC5B,aAAa,CAAC;AACd,SAAS;AACT,QAAQ,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;AACpD,aAAa,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;AACzD,YAAY,IAAI,SAAS,GAAG,IAAI,CAAC;AACjC,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;AACxE,gBAAgB,SAAS,GAAG,SAAS,KAAK,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC;AAC7F,YAAY,IAAI,SAAS,EAAE;AAC3B,gBAAgB,OAAO;AACvB,oBAAoB,QAAQ,EAAE,IAAI;AAClC,oBAAoB,MAAM,EAAE,IAAI;AAChC,iBAAiB,CAAC;AAClB,aAAa;AACb,YAAY,IAAI,WAAW,CAAC,IAAI,EAAE;AAClC,gBAAgB,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AACxF,gBAAgB,IAAI,WAAW,CAAC,IAAI;AACpC,oBAAoB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAClD,aAAa;AACb,YAAY,IAAI,CAAC,KAAK,GAAG,4BAA4B,CAAC;AACtD,YAAY,OAAO;AACnB,gBAAgB,QAAQ,EAAE,KAAK;AAC/B,gBAAgB,MAAM,EAAE,IAAI;AAC5B,aAAa,CAAC;AACd,SAAS;AACT,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;AAC5C,YAAY,IAAI,CAAC,CAAC,GAAG,SAAS,KAAK,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE;AACtE,gBAAgB,IAAI,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,KAAK,EAAE;AACxE,oBAAoB,MAAM,OAAO,GAAG;AACpC,wBAAwB,QAAQ,EAAE,KAAK;AACvC,wBAAwB,MAAM,EAAE,IAAI;AACpC,qBAAqB,CAAC;AACtB,oBAAoB,IAAI,CAAC,KAAK,GAAG,mDAAmD,CAAC;AACrF,oBAAoB,IAAI,WAAW,CAAC,IAAI,EAAE;AAC1C,wBAAwB,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AAChG,wBAAwB,IAAI,WAAW,CAAC,IAAI,EAAE;AAC9C,4BAA4B,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC1D,4BAA4B,OAAO,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;AAC5D,yBAAyB;AACzB,qBAAqB;AACrB,oBAAoB,OAAO,OAAO,CAAC;AACnC,iBAAiB;AACjB,aAAa;AACb,iBAAiB;AACjB,gBAAgB,IAAI,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,QAAQ,EAAE;AACzE,oBAAoB,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACvH,oBAAoB,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,EAAE;AACnD,wBAAwB,IAAI,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ;AACpE,4BAA4B,SAAS,EAAE,CAAC;AACxC,6BAA6B;AAC7B,4BAA4B,IAAI,WAAW,CAAC,IAAI,EAAE;AAClD,gCAAgC,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AACxG,gCAAgC,IAAI,WAAW,CAAC,IAAI;AACpD,oCAAoC,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAClE,6BAA6B;AAC7B,4BAA4B,OAAO,MAAM,CAAC;AAC1C,yBAAyB;AACzB,qBAAqB;AACrB,oBAAoB,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;AACxH,wBAAwB,IAAI,SAAS,GAAG,EAAE,CAAC;AAC3C,wBAAwB,IAAI,CAAC,KAAK,IAAI,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACjH,4BAA4B,SAAS,GAAG,SAAS,CAAC;AAClD;AACA,4BAA4B,SAAS,GAAG,IAAI,CAAC;AAC7C,wBAAwB,IAAI,OAAO,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,WAAW;AAClG,4BAA4B,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AACjF,wBAAwB,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5G,qBAAqB;AACrB,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7H,oBAAoB,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,EAAE;AACnD,wBAAwB,IAAI,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ;AACpE,4BAA4B,SAAS,EAAE,CAAC;AACxC,6BAA6B;AAC7B,4BAA4B,IAAI,WAAW,CAAC,IAAI,EAAE;AAClD,gCAAgC,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AACxG,gCAAgC,IAAI,WAAW,CAAC,IAAI;AACpD,oCAAoC,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAClE,6BAA6B;AAC7B,4BAA4B,OAAO,MAAM,CAAC;AAC1C,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,EAAE;AACvC,YAAY,MAAM,OAAO,GAAG;AAC5B,gBAAgB,QAAQ,EAAE,KAAK;AAC/B,gBAAgB,MAAM,EAAE,IAAI;AAC5B,aAAa,CAAC;AACd,YAAY,IAAI,WAAW,CAAC,IAAI,EAAE;AAClC,gBAAgB,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AACxF,gBAAgB,IAAI,WAAW,CAAC,IAAI,EAAE;AACtC,oBAAoB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAClD,oBAAoB,OAAO,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;AACpD,iBAAiB;AACjB,aAAa;AACb,YAAY,OAAO,OAAO,CAAC;AAC3B,SAAS;AACT,QAAQ,OAAO;AACf,YAAY,QAAQ,EAAE,IAAI;AAC1B,YAAY,MAAM,EAAE,IAAI;AACxB,SAAS,CAAC;AACV,KAAK;AACL,IAAI,IAAI,WAAW,CAAC,eAAe;AACnC,SAAS,cAAc,IAAI,SAAS,CAAC,UAAU,CAAC,EAAE;AAClD,QAAQ,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACrE,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;AAChC,YAAY,MAAM,OAAO,GAAG;AAC5B,gBAAgB,QAAQ,EAAE,KAAK;AAC/B,gBAAgB,MAAM,EAAE,IAAI,CAAC,MAAM;AACnC,aAAa,CAAC;AACd,YAAY,IAAI,WAAW,CAAC,IAAI,EAAE;AAClC,gBAAgB,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AACxF,gBAAgB,IAAI,WAAW,CAAC,IAAI,EAAE;AACtC,oBAAoB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAClD,oBAAoB,OAAO,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;AACpD,iBAAiB;AACjB,aAAa;AACb,YAAY,OAAO,OAAO,CAAC;AAC3B,SAAS;AACT,QAAQ,OAAO,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC;AAC7E,KAAK;AACL,IAAI,OAAO;AACX,QAAQ,QAAQ,EAAE,IAAI;AACtB,QAAQ,MAAM,EAAE,IAAI;AACpB,KAAK,CAAC;AACN,CAAC;AACD,SAAS,YAAY,CAAC,WAAW,EAAE,WAAW,EAAE;AAChD,IAAI,IAAI,CAAC,WAAW,YAAY,MAAM,MAAM,KAAK,EAAE;AACnD,QAAQ,OAAO;AACf,YAAY,QAAQ,EAAE,KAAK;AAC3B,YAAY,MAAM,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE;AACxD,SAAS,CAAC;AACV,KAAK;AACL,IAAI,MAAM,IAAI,GAAG,YAAY,CAACA,qBAA+B,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC;AACzF,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;AAC5B,QAAQ,OAAO;AACf,YAAY,QAAQ,EAAE,KAAK;AAC3B,YAAY,MAAM,EAAE,IAAI,CAAC,MAAM;AAC/B,SAAS,CAAC;AACV,KAAK;AACL,IAAI,OAAO,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAChE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrjGO,IAAI,YAAY;AACvB,CAAC,UAAU,YAAY,EAAE;AACzB,IAAI,YAAY,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU;AAC3D,IAAI,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK;AACjD,IAAI,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ;AACvD,CAAC,EAAE,YAAY,KAAK,YAAY,GAAG,EAAE,CAAC,CAAC;AAChC,IAAI,YAAY;AACvB,CAAC,UAAU,YAAY,EAAE;AACzB,IAAI,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK;AACjD,IAAI,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS;AACzD,IAAI,YAAY,CAAC,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,aAAa;AACjE,IAAI,YAAY,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW;AAC7D,IAAI,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS;AACzD,IAAI,YAAY,CAAC,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY;AAC/D,IAAI,YAAY,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,GAAG,kBAAkB;AAC3E,IAAI,YAAY,CAAC,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY;AAC/D,IAAI,YAAY,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW;AAC7D,IAAI,YAAY,CAAC,YAAY,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,GAAG,iBAAiB;AAC1E,IAAI,YAAY,CAAC,YAAY,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,GAAG,eAAe;AACtE,IAAI,YAAY,CAAC,YAAY,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,GAAG,iBAAiB;AAC1E,IAAI,YAAY,CAAC,YAAY,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,GAAG,eAAe;AACtE,IAAI,YAAY,CAAC,YAAY,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,GAAG,gBAAgB;AACxE,IAAI,YAAY,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,GAAG,WAAW;AAC9D,IAAI,YAAY,CAAC,YAAY,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,GAAG,eAAe;AACtE,IAAI,YAAY,CAAC,YAAY,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,GAAG,eAAe;AACtE,IAAI,YAAY,CAAC,YAAY,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,GAAG,eAAe;AACtE,IAAI,YAAY,CAAC,YAAY,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,GAAG,iBAAiB;AAC1E,IAAI,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,SAAS;AAC1D,IAAI,YAAY,CAAC,YAAY,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,GAAG,iBAAiB;AAC1E,IAAI,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM;AACpD,IAAI,YAAY,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,GAAG,WAAW;AAC9D,IAAI,YAAY,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,UAAU;AAC5D,IAAI,YAAY,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,UAAU;AAC5D,IAAI,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM;AACpD,IAAI,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM;AACpD,CAAC,EAAE,YAAY,KAAK,YAAY,GAAG,EAAE,CAAC,CAAC;;AChChC,MAAM,eAAe,GAAG;AAC/B,IAAI,OAAO,EAAE,CAAC,KAAK,KAAK,KAAK,YAAYc,IAAW,GAAG,IAAI,GAAG,KAAK,CAAC,qBAAqB;AACzF,IAAI,KAAK,EAAE,CAAC,KAAK,KAAK;AACtB,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;AAC5B,YAAY,OAAO,IAAIA,IAAW,EAAE;AACpC;AACA,QAAQ,MAAM,MAAM,GAAGC,OAAc,CAAC,KAAK,CAAC;AAC5C,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;AACjC,YAAY,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;AAChD;AACA,QAAQ,OAAO,MAAM,CAAC,MAAM;AAC5B,KAAK;AACL,CAAC;AACM,MAAM,mBAAmB,GAAG;AACnC,IAAI,OAAO,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,UAAU,IAAI;AACpE,UAAU,KAAK,CAAC,UAAU,CAAC,QAAQ;AACnC,UAAU,KAAK,CAAC,UAAU,CAAC,QAAQ;AACnC,IAAI,KAAK,EAAE,CAAC,KAAK,KAAK,IAAIC,OAAc,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC;AAC3D,CAAC;AACM,MAAM,sBAAsB,GAAG;AACtC,IAAI,OAAO,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,UAAU,CAAC,QAAQ;AACjD,IAAI,KAAK,EAAE,CAAC,KAAK,KAAK,IAAIC,UAAiB,CAAC,EAAE,KAAK,EAAE,CAAC;AACtD,CAAC;AASM,MAAM,qBAAqB,GAAG;AACrC,IAAI,OAAO,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,UAAU,CAAC,YAAY;AACrD,IAAI,KAAK,EAAE,CAAC,KAAK,KAAK,IAAIC,WAAgB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAC/D,CAAC;AACM,MAAM,4BAA4B,GAAG;AAC5C,IAAI,OAAO,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE;AACnD,IAAI,KAAK,EAAE,CAAC,KAAK,KAAK,IAAIC,kBAAuB,CAAC,EAAE,KAAK,EAAE,CAAC;AAC5D,CAAC;AACM,MAAM,mBAAmB,GAAG;AACnC,IAAI,OAAO,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,UAAU,CAAC,KAAK;AAC9C,IAAI,KAAK,EAAE,CAAC,KAAK,KAAK,IAAIC,SAAc,CAAC,EAAE,KAAK,EAAE,CAAC;AACnD,CAAC;AACM,MAAM,uBAAuB,GAAG;AACvC,IAAI,OAAO,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,UAAU,CAAC,YAAY;AACrD,IAAI,KAAK,EAAE,CAAC,KAAK,KAAK,IAAIC,aAAkB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AACjE,CAAC;AAKD,SAAS,qBAAqB,CAAC,QAAQ,EAAE;AACzC,IAAI,OAAO;AACX,QAAQ,OAAO,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,UAAU,CAAC,KAAK;AAClD,QAAQ,KAAK,EAAE,CAAC,KAAK,KAAK,IAAI,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC;AACjD,KAAK;AACL;AACO,MAAM,sBAAsB,GAAG,qBAAqB,CAACC,UAAiB,CAAC;AACvE,MAAM,qBAAqB,GAAG,qBAAqB,CAACC,SAAgB,CAAC;AACrE,MAAM,2BAA2B,GAAG,qBAAqB,CAACC,eAAsB,CAAC;AACjF,MAAM,yBAAyB,GAAG,qBAAqB,CAACC,aAAoB,CAAC;AAC7E,MAAM,2BAA2B,GAAG,qBAAqB,CAACC,eAAsB,CAAC;AACjF,MAAM,yBAAyB,GAAG,qBAAqB,CAACC,aAAoB,CAAC;AAC7E,MAAM,0BAA0B,GAAG,qBAAqB,CAACC,cAAqB,CAAC;AAC/E,MAAM,qBAAqB,GAAG,qBAAqB,CAACC,SAAgB,CAAC;AACrE,MAAM,yBAAyB,GAAG,qBAAqB,CAACC,aAAoB,CAAC;AAC7E,MAAM,yBAAyB,GAAG,qBAAqB,CAACC,aAAoB,CAAC;AAC7E,MAAM,yBAAyB,GAAG,qBAAqB,CAACC,aAAoB,CAAC;AAC7E,MAAM,2BAA2B,GAAG,qBAAqB,CAACC,eAAsB,CAAC;AACjF,MAAM,mBAAmB,GAAG;AACnC,IAAI,OAAO,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,EAAE;AACtC,IAAI,KAAK,EAAE,CAAC,KAAK,KAAK,IAAIC,OAAc,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAC9D,CAAC;AACM,MAAM,2BAA2B,GAAG;AAC3C,IAAI,OAAO,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,EAAE;AACtC,IAAI,KAAK,EAAE,CAAC,KAAK,KAAK,IAAIC,eAAsB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AACtE,CAAC;AACM,MAAM,gBAAgB,GAAG;AAChC,IAAI,OAAO,EAAE,MAAM,IAAI;AACvB,IAAI,KAAK,EAAE,MAAM;AACjB,QAAQ,OAAO,IAAIrB,IAAW,EAAE;AAChC,KAAK;AACL,CAAC;AACM,SAAS,gBAAgB,CAAC,IAAI,EAAE;AACvC,IAAI,QAAQ,IAAI;AAChB,QAAQ,KAAK,YAAY,CAAC,GAAG;AAC7B,YAAY,OAAO,eAAe;AAClC,QAAQ,KAAK,YAAY,CAAC,SAAS;AACnC,YAAY,OAAO,qBAAqB;AACxC,QAAQ,KAAK,YAAY,CAAC,SAAS;AACnC,YAAY,OAAO,qBAAqB;AACxC,QAAQ,KAAK,YAAY,CAAC,OAAO;AACjC,YAAY,OAAO,mBAAmB;AACtC,QAAQ,KAAK,YAAY,CAAC,eAAe;AACzC,YAAY,OAAO,2BAA2B;AAC9C,QAAQ,KAAK,YAAY,CAAC,UAAU;AACpC,YAAY,OAAO,sBAAsB;AACzC,QAAQ,KAAK,YAAY,CAAC,aAAa;AACvC,YAAY,OAAO,yBAAyB;AAC5C,QAAQ,KAAK,YAAY,CAAC,eAAe;AACzC,YAAY,OAAO,2BAA2B;AAC9C,QAAQ,KAAK,YAAY,CAAC,aAAa;AACvC,YAAY,OAAO,yBAAyB;AAC5C,QAAQ,KAAK,YAAY,CAAC,SAAS;AACnC,YAAY,OAAO,qBAAqB;AACxC,QAAQ,KAAK,YAAY,CAAC,OAAO;AACjC,YAAY,OAAO,mBAAmB;AACtC,QAAQ,KAAK,YAAY,CAAC,IAAI;AAC9B,YAAY,OAAO,gBAAgB;AACnC,QAAQ,KAAK,YAAY,CAAC,aAAa;AACvC,YAAY,OAAO,yBAAyB;AAC5C,QAAQ,KAAK,YAAY,CAAC,gBAAgB;AAC1C,YAAY,OAAO,4BAA4B;AAC/C,QAAQ,KAAK,YAAY,CAAC,WAAW;AACrC,YAAY,OAAO,uBAAuB;AAC1C,QAAQ,KAAK,YAAY,CAAC,eAAe;AACzC,YAAY,OAAO,2BAA2B;AAC9C,QAAQ,KAAK,YAAY,CAAC,aAAa;AACvC,YAAY,OAAO,yBAAyB;AAC5C,QAAQ,KAAK,YAAY,CAAC,OAAO;AACjC,YAAY,OAAO,mBAAmB;AACtC,QAAQ,KAAK,YAAY,CAAC,eAAe;AACzC,YAAY,OAAO,2BAA2B;AAC9C,QAAQ,KAAK,YAAY,CAAC,UAAU;AACpC,YAAY,OAAO,sBAAsB;AACzC,QAAQ,KAAK,YAAY,CAAC,cAAc;AACxC,YAAY,OAAO,0BAA0B;AAC7C,QAAQ,KAAK,YAAY,CAAC,aAAa;AACvC,YAAY,OAAO,yBAAyB;AAC5C,QAAQ;AACR,YAAY,OAAO,IAAI;AACvB;AACA;;ACvIO,SAASsB,eAAa,CAAC,MAAM,EAAE;AACtC,IAAI,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,SAAS,EAAE;AAC1D,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE;AAChE,YAAY,OAAO,IAAI;AACvB;AACA,aAAa;AACb,YAAY,OAAOA,eAAa,CAAC,MAAM,CAAC,SAAS,CAAC;AAClD;AACA;AACA,SAAS;AACT,QAAQ,OAAO,CAAC,EAAE,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,IAAI,MAAM,IAAI,SAAS,IAAI,MAAM,CAAC;AACnG;AACA;AACO,SAAS,aAAa,CAAC,MAAM,EAAE;AACtC,IAAI,IAAI,EAAE;AACV,IAAI,IAAI,MAAM,EAAE;AAChB,QAAQ,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC;AACnD,QAAQ,IAAI,CAAC,CAAC,EAAE,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,SAAS,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,WAAW,MAAM,KAAK,EAAE;AAClJ,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,OAAO,aAAa,CAAC,KAAK,CAAC;AACnC;AACA,IAAI,OAAO,KAAK;AAChB;AACO,SAAS,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE;AAC7C,IAAI,IAAI,EAAE,MAAM,IAAI,MAAM,CAAC,EAAE;AAC7B,QAAQ,OAAO,KAAK;AACpB;AACA,IAAI,IAAI,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,EAAE;AACjD,QAAQ,OAAO,KAAK;AACpB;AACA,IAAI,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC;AACrC,IAAI,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC;AACrC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE;AAChD,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC7B,YAAY,OAAO,KAAK;AACxB;AACA;AACA,IAAI,OAAO,IAAI;AACf;;ACpCO,MAAM,gBAAgB,CAAC;AAC9B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,OAAO,EAAE;AAClC;AACA,IAAI,GAAG,CAAC,MAAM,EAAE;AAChB,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;AACrC;AACA,IAAI,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,KAAK,EAAE;AACrC,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;AAC7C,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,uBAAuB,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAClG;AACA,QAAQ,IAAI,WAAW,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AAC3C,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;AACzI;AACA,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,KAAK,CAAC,MAAM,EAAE;AAClB,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;AACvC,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AAC5B,YAAY,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;AACrD;AACA;AACA,IAAI,aAAa,CAAC,MAAM,EAAE;AAC1B,QAAQ,MAAM,MAAM,GAAG;AACvB,YAAY,IAAI,EAAE,YAAY,CAAC,QAAQ;AACvC,YAAY,KAAK,EAAE,EAAE;AACrB,SAAS;AACT,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;AAC1D,QAAQ,IAAI,YAAY,EAAE;AAC1B,YAAY,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC;AAC/C,YAAY,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC;AAC9E;AACA,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE;AAC7B,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;AAC3E,QAAQ,MAAM,SAAS,GAAG,EAAE;AAC5B,QAAQ,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE;AACxC,YAAY,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AAC1C,YAAY,MAAM,IAAI,GAAG,QAAQ,GAAG,GAAG,GAAG,EAAE;AAC5C,YAAY,IAAI,QAAQ;AACxB,YAAY,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE;AACjD,gBAAgB,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5D,gBAAgB,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC;AACrD,gBAAgB,IAAI,CAAC,QAAQ,EAAE;AAC/B,oBAAoB,MAAM,IAAI,KAAK,CAAC,CAAC,+BAA+B,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;AACtF;AACA,gBAAgB,QAAQ,GAAG,IAAI,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;AACjD;AACA,iBAAiB,IAAIA,eAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC/C,gBAAgB,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE;AAChD,gBAAgB,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;AAClD;AACA,iBAAiB,IAAI,IAAI,CAAC,QAAQ,EAAE;AACpC,gBAAgB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AACtD,gBAAgB,IAAI,UAAU,CAAC,IAAI,KAAK,YAAY,CAAC,MAAM,EAAE;AAC7D,oBAAoB,QAAQ,GAAG,IAAIC,GAAU,CAAC,EAAE,IAAI,EAAE,CAAC;AACvD;AACA,qBAAqB;AACrB,oBAAoB,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AAC5D,oBAAoB,QAAQ,CAAC,IAAI,GAAG,IAAI;AACxC;AACA;AACA,iBAAiB;AACjB,gBAAgB,QAAQ,GAAG,IAAIA,GAAU,CAAC,EAAE,IAAI,EAAE,CAAC;AACnD;AACA,YAAY,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;AAC/E,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC/B,gBAAgB,QAAQ,CAAC,IAAI,GAAG,EAAE;AAClC,gBAAgB,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,KAAK;AACpD,sBAAsBC;AACtB,sBAAsBC,QAAe;AACrC,gBAAgB,QAAQ,GAAG,IAAI,SAAS,CAAC;AACzC,oBAAoB,IAAI,EAAE,EAAE;AAC5B,oBAAoB,KAAK,EAAE;AAC3B,wBAAwB,IAAIC,QAAe,CAAC;AAC5C,4BAA4B,IAAI;AAChC,4BAA4B,KAAK,EAAE,QAAQ;AAC3C,yBAAyB,CAAC;AAC1B,qBAAqB;AACrB,iBAAiB,CAAC;AAClB;AACA,YAAY,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;AACrE,gBAAgB,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnC,oBAAoB,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAIJ,eAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACnF,wBAAwB,MAAM,SAAS,GAAG,IAAI,CAAC;AAC/C,8BAA8BK;AAC9B,8BAA8BC,SAAgB;AAC9C,wBAAwB,SAAS,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC;AACrD,4BAA4B,IAAI;AAChC,4BAA4B,QAAQ;AACpC,4BAA4B,OAAO,EAAE;AACrC,gCAAgC,QAAQ,EAAE,CAAC;AAC3C,gCAAgC,SAAS,EAAE,IAAI,CAAC,OAAO;AACvD,6BAA6B;AAC7B,yBAAyB,CAAC,CAAC;AAC3B;AACA,yBAAyB;AACzB,wBAAwB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7C,wBAAwB,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ;AAC1D,wBAAwB,IAAI,KAAK,GAAG,CAAC;AACrC,8BAA8B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACxD,8BAA8B,QAAQ;AACtC,wBAAwB,KAAK,GAAG,YAAY,IAAI,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AAC5F,wBAAwB,SAAS,CAAC,IAAI,CAAC,IAAID,WAAkB,CAAC;AAC9D,4BAA4B,IAAI,EAAE,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE;AACzD,4BAA4B,QAAQ;AACpC,4BAA4B,OAAO,EAAE;AACrC,gCAAgC,QAAQ,EAAE,CAAC;AAC3C,gCAAgC,SAAS,EAAE,IAAI,CAAC,OAAO;AACvD,6BAA6B;AAC7B,4BAA4B,KAAK,EAAE,KAAK;AACxC,yBAAyB,CAAC,CAAC;AAC3B;AACA;AACA,qBAAqB;AACrB,oBAAoB,SAAS,CAAC,IAAI,CAAC,IAAIA,WAAkB,CAAC;AAC1D,wBAAwB,QAAQ;AAChC,wBAAwB,OAAO,EAAE;AACjC,4BAA4B,QAAQ,EAAE,CAAC;AACvC,4BAA4B,SAAS,EAAE,IAAI,CAAC,OAAO;AACnD,yBAAyB;AACzB,wBAAwB,KAAK,EAAE,CAAC,QAAQ,CAAC;AACzC,qBAAqB,CAAC,CAAC;AACvB;AACA;AACA,iBAAiB;AACjB,gBAAgB,QAAQ,CAAC,QAAQ,GAAG,QAAQ;AAC5C,gBAAgB,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AACxC;AACA;AACA,QAAQ,QAAQ,MAAM,CAAC,IAAI;AAC3B,YAAY,KAAK,YAAY,CAAC,QAAQ;AACtC,gBAAgB,OAAO,IAAIF,QAAe,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AAC1E,YAAY,KAAK,YAAY,CAAC,GAAG;AACjC,gBAAgB,OAAO,IAAID,KAAU,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACrE,YAAY,KAAK,YAAY,CAAC,MAAM;AACpC,gBAAgB,OAAO,IAAIK,MAAa,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACxE,YAAY;AACZ,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,4BAA4B,CAAC,CAAC;AAC/D;AACA;AACA,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE;AACxB,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;AACtC,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,gBAAgB,CAAC,MAAM,EAAE;AAC7B,QAAQ,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC;AACpD,QAAQ,IAAI,MAAM,EAAE;AACpB,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;AACjD,YAAY,OAAO,MAAM,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;AAC1D;AACA,QAAQ,OAAO,IAAI;AACnB;AACA;;AC7JO,MAAMC,eAAa,GAAG,IAAI,gBAAgB,EAAE;;ACE5C,MAAM,OAAO,GAAG,CAAC,OAAO,KAAK,CAAC,MAAM,KAAK;AAChD,IAAI,IAAI,MAAM;AACd,IAAI,IAAI,CAACA,eAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;AACpC,QAAQ,MAAM,GAAGA,eAAa,CAAC,aAAa,CAAC,MAAM,CAAC;AACpD,QAAQA,eAAa,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;AACzC;AACA,SAAS;AACT,QAAQ,MAAM,GAAGA,eAAa,CAAC,GAAG,CAAC,MAAM,CAAC;AAC1C;AACA,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;AAClC,CAAC;AAIM,MAAM,OAAO,GAAG,CAAC,OAAO,KAAK,CAAC,MAAM,EAAE,WAAW,KAAK;AAC7D,IAAI,IAAI,MAAM;AACd,IAAI,IAAI,CAACA,eAAa,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;AAChD,QAAQ,MAAM,GAAGA,eAAa,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC;AAChE,QAAQA,eAAa,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC;AACrD;AACA,SAAS;AACT,QAAQ,MAAM,GAAGA,eAAa,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC;AACtD;AACA,IAAI,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC;AAClD,IAAI,IAAI,OAAO,WAAW,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE;AACxE,QAAQ,MAAMC,kBAAgB,GAAGC,gBAA2B,CAAC,OAAO,CAAC,IAAI,CAAC;AAC1E,QAAQ,IAAI,CAACD,kBAAgB,EAAE;AAC/B,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,2CAA2C,EAAE,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AACvH;AACA,QAAQ,WAAW,CAAC,SAAS,GAAGA,kBAAgB;AAChD;AACA,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,WAAW;AAC3C,CAAC;;ACnCM,MAAM,wBAAwB,SAAS,KAAK,CAAC;AACpD,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE;AACzB;AACA;;ACCO,MAAM,SAAS,CAAC;AACvB,IAAI,OAAO,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE;AAC/B,QAAQ,MAAM,UAAU,GAAG9B,OAAc,CAAC,IAAI,CAAC;AAC/C,QAAQ,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE;AACrC,YAAY,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC;AACpD;AACA,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC;AAC3D,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,OAAO,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE;AACvC,QAAQ,IAAI,EAAE;AACd,QAAQ,IAAI;AACZ,YAAY,IAAIqB,eAAa,CAAC,MAAM,CAAC,EAAE;AACvC,gBAAgB,MAAM,KAAK,GAAG,IAAI,MAAM,EAAE;AAC1C,gBAAgB,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;AAChD;AACA,YAAY,MAAM,MAAM,GAAGQ,eAAa,CAAC,GAAG,CAAC,MAAM,CAAC;AACpD,YAAYA,eAAa,CAAC,KAAK,CAAC,MAAM,CAAC;AACvC,YAAY,IAAI,YAAY,GAAG,MAAM,CAAC,MAAM;AAC5C,YAAY,IAAI,UAAU,CAAC,WAAW,KAAKH,WAAkB,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,CAAC,MAAM,EAAE;AACtG,gBAAgB,YAAY,GAAG,IAAIA,WAAkB,CAAC;AACtD,oBAAoB,OAAO,EAAE;AAC7B,wBAAwB,QAAQ,EAAE,CAAC;AACnC,wBAAwB,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,SAAS;AAC/D,qBAAqB;AACrB,oBAAoB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK;AACzD,iBAAiB,CAAC;AAClB,gBAAgB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE;AAChD,oBAAoB,OAAO,UAAU,CAAC,GAAG,CAAC;AAC1C;AACA;AACA,YAAY,MAAM,kBAAkB,GAAGM,aAAoB,CAAC,EAAE,EAAE,UAAU,EAAE,YAAY,CAAC;AACzF,YAAY,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE;AAC9C,gBAAgB,MAAM,IAAI,wBAAwB,CAAC,CAAC,uBAAuB,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3I;AACA,YAAY,MAAM,GAAG,GAAG,IAAI,MAAM,EAAE;AACpC,YAAY,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE;AACvC,gBAAgB,IAAI,EAAE,OAAO,IAAI,UAAU,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE;AACvG,oBAAoB,MAAM,IAAI,KAAK,CAAC,CAAC,8EAA8E,CAAC,CAAC;AACrH;AACA,gBAAgB,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ;AAChD,gBAAgB,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AAClD,oBAAoB,MAAM,SAAS,GAAGD,gBAA2B,CAAC,QAAQ,CAAC;AAC3E,oBAAoB,IAAI,CAAC,SAAS,EAAE;AACpC,wBAAwB,MAAM,IAAI,KAAK,CAAC,CAAC,+CAA+C,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACpH;AACA,oBAAoB,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,OAAO,KAAK,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC5G;AACA,qBAAqB;AACrB,oBAAoB,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACjH;AACA;AACA,YAAY,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE;AAC5C,gBAAgB,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC;AACtE,gBAAgB,IAAI,CAAC,eAAe,EAAE;AACtC,oBAAoB;AACpB;AACA,gBAAgB,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AACpD,gBAAgB,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI;AACtD,gBAAgB,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAIV,eAAa,CAAC,cAAc,CAAC,EAAE;AACzF,oBAAoB,MAAM,SAAS,GAAG,CAAC,EAAE,GAAG,UAAU,CAAC,SAAS,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,IAAIA,eAAa,CAAC,cAAc;AAChI,0BAA0B,IAAI,cAAc;AAC5C,0BAA0B,IAAI,CAAC;AAC/B,oBAAoB,IAAI,CAAC,SAAS,EAAE;AACpC,wBAAwB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC;AAC7D;AACA,oBAAoB,IAAI,UAAU,CAAC,QAAQ,EAAE;AAC7C,wBAAwB,IAAI,UAAU,CAAC,QAAQ,EAAE;AACjD,4BAA4B,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,KAAK;AACtE,kCAAkCG;AAClC,kCAAkCD,KAAU;AAC5C,4BAA4B,MAAM,OAAO,GAAG,IAAI,SAAS,EAAE;AAC3D,4BAA4B,OAAO,CAAC,UAAU,GAAG,eAAe,CAAC,UAAU;AAC3E,4BAA4B,MAAM,UAAU,GAAGvB,OAAc,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACnF,4BAA4B,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;AAC1D,gCAAgC,MAAM,IAAI,KAAK,CAAC,CAAC,6BAA6B,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1G;AACA,4BAA4B,IAAI,EAAE,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE;AACjI,gCAAgC,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC;AACjI;AACA,4BAA4B,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK;AAC5E,4BAA4B,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,KAAK,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACjG;AACA,6BAA6B;AAC7B,4BAA4B,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,OAAO,KAAK,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC3G;AACA;AACA,yBAAyB;AACzB,wBAAwB,IAAI,KAAK,GAAG,eAAe;AACnD,wBAAwB,IAAI,UAAU,CAAC,QAAQ,EAAE;AACjD,4BAA4B,IAAI,OAAO;AACvC,4BAA4B,IAAIqB,eAAa,CAAC,cAAc,CAAC,EAAE;AAC/D,gCAAgC,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC3E;AACA,iCAAiC;AACjC,gCAAgC,MAAM,YAAY,GAAG,YAAY,CAAC,cAAc,CAAC;AACjF,gCAAgC,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC;AACrE,gCAAgC,IAAI,CAAC,QAAQ,EAAE;AAC/C,oCAAoC,MAAM,IAAI,KAAK,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,0BAA0B,CAAC,CAAC;AAC5G;AACA,gCAAgC,OAAO,GAAG,IAAI,QAAQ,EAAE;AACxD;AACA,4BAA4B,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU;AACjE,4BAA4B,KAAK,GAAGrB,OAAc,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;AAC/E;AACA,wBAAwB,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;AAC3D;AACA;AACA,qBAAqB;AACrB,oBAAoB,IAAI,UAAU,CAAC,QAAQ,EAAE;AAC7C,wBAAwB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;AAC7D,4BAA4B,MAAM,IAAI,KAAK,CAAC,uFAAuF,CAAC;AACpI;AACA,wBAAwB,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AAClH;AACA,yBAAyB;AACzB,wBAAwB,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,cAAc,CAAC;AAChF;AACA;AACA;AACA,YAAY,OAAO,GAAG;AACtB;AACA,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,IAAI,KAAK,YAAY,wBAAwB,EAAE;AAC3D,gBAAgB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AAC/C;AACA,YAAY,MAAM,KAAK;AACvB;AACA;AACA;;AClIO,MAAM,aAAa,CAAC;AAC3B,IAAI,OAAO,SAAS,CAAC,GAAG,EAAE;AAC1B,QAAQ,IAAI,GAAG,YAAYiC,SAAgB,EAAE;AAC7C,YAAY,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;AACnC;AACA,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;AAC3C;AACA,IAAI,OAAO,KAAK,CAAC,GAAG,EAAE;AACtB,QAAQ,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAIZ,eAAa,CAAC,GAAG,CAAC,EAAE;AAClE,YAAY,OAAO,GAAG,CAAC,KAAK,EAAE;AAC9B;AACA,QAAQ,IAAI,EAAE,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC,EAAE;AAC/C,YAAY,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC;AACxE;AACA,QAAQ,MAAM,MAAM,GAAG,GAAG,CAAC,WAAW;AACtC,QAAQ,MAAM,MAAM,GAAGQ,eAAa,CAAC,GAAG,CAAC,MAAM,CAAC;AAChD,QAAQA,eAAa,CAAC,KAAK,CAAC,MAAM,CAAC;AACnC,QAAQ,IAAI,SAAS,GAAG,EAAE;AAC1B,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE;AAC7B,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AACrC,gBAAgB,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC;AAC3E;AACA,YAAY,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE;AACrD,gBAAgB,MAAM,SAAS,GAAGE,gBAA2B,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC9E,gBAAgB,IAAI,CAAC,SAAS,EAAE;AAChC,oBAAoB,MAAM,IAAI,KAAK,CAAC,CAAC,+CAA+C,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAChH;AACA,gBAAgB,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9D;AACA,iBAAiB;AACjB,gBAAgB,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AACtG;AACA;AACA,aAAa;AACb,YAAY,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE;AAC5C,gBAAgB,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AACpD,gBAAgB,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC;AACxC,gBAAgB,IAAI,OAAO,KAAK;AAChC,uBAAuB,UAAU,CAAC,YAAY,KAAK;AACnD,wBAAwB,OAAO,UAAU,CAAC,YAAY,KAAK,QAAQ,IAAI,OAAO,OAAO,KAAK;AAC1F,2BAA2B,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;AAC5G,oBAAoB;AACpB;AACA,gBAAgB,MAAM,QAAQ,GAAG,aAAa,CAAC,SAAS,CAAC,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC;AAC1F,gBAAgB,IAAI,OAAO,UAAU,CAAC,OAAO,KAAK,QAAQ,EAAE;AAC5D,oBAAoB,IAAI,UAAU,CAAC,QAAQ,EAAE;AAC7C,wBAAwB,IAAI,CAAC,UAAU,CAAC;AACxC,gCAAgC,OAAO,UAAU,CAAC,IAAI,KAAK,QAAQ,IAAIV,eAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE;AACxG,4BAA4B,MAAM,KAAK,GAAG,EAAE;AAC5C,4BAA4B,KAAK,CAAC,QAAQ,GAAG,QAAQ,YAAYtB,IAAW,GAAG,QAAQ,CAAC,qBAAqB,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE;AAC3I,4BAA4B,SAAS,CAAC,IAAI,CAAC,IAAI4B,SAAgB,CAAC;AAChE,gCAAgC,QAAQ,EAAE,UAAU,CAAC,QAAQ;AAC7D,gCAAgC,OAAO,EAAE;AACzC,oCAAoC,QAAQ,EAAE,CAAC;AAC/C,oCAAoC,SAAS,EAAE,UAAU,CAAC,OAAO;AACjE,iCAAiC;AACjC,gCAAgC,GAAG,KAAK;AACxC,6BAA6B,CAAC,CAAC;AAC/B;AACA,6BAA6B;AAC7B,4BAA4B,SAAS,CAAC,IAAI,CAAC,IAAID,WAAkB,CAAC;AAClE,gCAAgC,QAAQ,EAAE,UAAU,CAAC,QAAQ;AAC7D,gCAAgC,OAAO,EAAE;AACzC,oCAAoC,QAAQ,EAAE,CAAC;AAC/C,oCAAoC,SAAS,EAAE,UAAU,CAAC,OAAO;AACjE,iCAAiC;AACjC,gCAAgC,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK;AAChE,6BAA6B,CAAC,CAAC;AAC/B;AACA;AACA,yBAAyB;AACzB,wBAAwB,SAAS,CAAC,IAAI,CAAC,IAAIA,WAAkB,CAAC;AAC9D,4BAA4B,QAAQ,EAAE,UAAU,CAAC,QAAQ;AACzD,4BAA4B,OAAO,EAAE;AACrC,gCAAgC,QAAQ,EAAE,CAAC;AAC3C,gCAAgC,SAAS,EAAE,UAAU,CAAC,OAAO;AAC7D,6BAA6B;AAC7B,4BAA4B,KAAK,EAAE,CAAC,QAAQ,CAAC;AAC7C,yBAAyB,CAAC,CAAC;AAC3B;AACA;AACA,qBAAqB,IAAI,UAAU,CAAC,QAAQ,EAAE;AAC9C,oBAAoB,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC1D;AACA,qBAAqB;AACrB,oBAAoB,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC5C;AACA;AACA;AACA,QAAQ,IAAI,SAAS;AACrB,QAAQ,QAAQ,MAAM,CAAC,IAAI;AAC3B,YAAY,KAAK,YAAY,CAAC,QAAQ;AACtC,gBAAgB,SAAS,GAAG,IAAIF,QAAe,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AACrE,gBAAgB;AAChB,YAAY,KAAK,YAAY,CAAC,GAAG;AACjC,gBAAgB,SAAS,GAAG,IAAID,KAAU,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAChE,gBAAgB;AAChB,YAAY,KAAK,YAAY,CAAC,MAAM;AACpC,gBAAgB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;AACnC,oBAAoB,MAAM,IAAI,KAAK,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;AACtG;AACA,gBAAgB,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC;AACxC,gBAAgB;AAChB;AACA,QAAQ,OAAO,SAAS;AACxB;AACA,IAAI,OAAO,SAAS,CAAC,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE;AACvD,QAAQ,IAAI,QAAQ;AACpB,QAAQ,IAAI,QAAQ,UAAU,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE;AACnD,YAAY,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS;AAClD,YAAY,IAAI,CAAC,SAAS,EAAE;AAC5B,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,kCAAkC,EAAE,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChJ;AACA,YAAY,IAAI,UAAU,CAAC,QAAQ,EAAE;AACrC,gBAAgB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAC7C,oBAAoB,MAAM,IAAI,SAAS,CAAC,8CAA8C,CAAC;AACvF;AACA,gBAAgB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,KAAK,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACxF,gBAAgB,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,KAAK;AAC1D,sBAAsBC;AACtB,sBAAsBD,KAAU;AAChC,gBAAgB,QAAQ,GAAG,IAAI,SAAS,CAAC;AACzC,oBAAoB,KAAK,EAAE,KAAK;AAChC,iBAAiB,CAAC;AAClB;AACA,iBAAiB;AACjB,gBAAgB,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC;AACnD;AACA;AACA,aAAa;AACb,YAAY,IAAI,UAAU,CAAC,QAAQ,EAAE;AACrC,gBAAgB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAC7C,oBAAoB,MAAM,IAAI,SAAS,CAAC,8CAA8C,CAAC;AACvF;AACA,gBAAgB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACnF,gBAAgB,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,KAAK;AAC1D,sBAAsBC;AACtB,sBAAsBD,KAAU;AAChC,gBAAgB,QAAQ,GAAG,IAAI,SAAS,CAAC;AACzC,oBAAoB,KAAK,EAAE,KAAK;AAChC,iBAAiB,CAAC;AAClB;AACA,iBAAiB;AACjB,gBAAgB,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AAC9C;AACA;AACA,QAAQ,OAAO,QAAQ;AACvB;AACA;;ACrJO,MAAM,UAAU,CAAC;AACxB,IAAI,OAAO,SAAS,CAAC,GAAG,EAAE;AAC1B,QAAQ,OAAO,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC;AAC3C;AACA,IAAI,OAAO,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE;AAC/B,QAAQ,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;AAC5C;AACA,IAAI,OAAO,QAAQ,CAAC,IAAI,EAAE;AAC1B,QAAQ,MAAM,GAAG,GAAG,qBAAqB,CAAC,cAAc,CAAC,IAAI;AAC7D,cAAc,qBAAqB,CAAC,aAAa,CAAC,IAAI;AACtD,cAAc,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC;AACxC,QAAQ,MAAM,GAAG,GAAGvB,OAAc,CAAC,GAAG,CAAC;AACvC,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;AAC/B,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,0BAA0B,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5E;AACA,QAAQ,OAAO,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE;AACpC;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrBA;AACA;AACA;;AAEA,MAAM,SAAS,SAAS,KAAK,CAAC;AAC9B,IAAI,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE;AACrC,QAAQ,KAAK,CAAC,UAAU;AACxB,cAAc,CAAC,EAAE,OAAO,CAAC,2CAA2C,CAAC;AACrE,cAAc,OAAO,CAAC,CAAC;AACvB,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC/B,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AACrC,KAAK;AACL;;AAEA,MAAM,cAAc,SAAS,SAAS,CAAC;AACvC,IAAI,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE;AAC7C,QAAQ,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACnC,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,KAAK;AACL;;AAEA,MAAM,WAAW,SAAS,cAAc,CAAC;AACzC,IAAI,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE;AAC7C,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC,uBAAuB,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AACtG,KAAK;AACL;;AAEA,MAAM,eAAe,SAAS,SAAS,CAAC;AACxC;;AAEA,MAAM,eAAe,SAAS,SAAS,CAAC;AACxC,IAAI,WAAW,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE;AACjD,QAAQ,KAAK,CAAC,CAAC,qBAAqB,EAAE,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AACpF,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AACrC,KAAK;AACL;;AAEA,MAAM,QAAQ,SAAS,WAAW,CAAC;AACnC,IAAI,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,EAAE,EAAE;AAC3C,QAAQ,KAAK,CAAC,MAAM,EAAE,mCAAmC,CAAC,CAAC;AAC3D,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,KAAK;AACL;;AAEA,IAAI,aAAa,CAAC;AAClB,CAAC,UAAU,aAAa,EAAE;AAC1B,IAAI,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;AACpD,IAAI,aAAa,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;AAC5D,IAAI,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC;AAC1D,IAAI,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC;AAC1D,CAAC,EAAE,aAAa,KAAK,aAAa,GAAG,EAAE,CAAC,CAAC;;AAEzC,SAAS,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE;AAChC,IAAI,QAAQ,IAAI;AAChB,QAAQ,KAAK,aAAa,CAAC,OAAO;AAClC,YAAY,OAAO,OAAO,KAAK,KAAK,SAAS,CAAC;AAC9C,QAAQ,KAAK,aAAa,CAAC,MAAM;AACjC,YAAY,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AAC7C,QAAQ,KAAK,aAAa,CAAC,MAAM;AACjC,YAAY,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AAC7C,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,CAAC;AACD,SAAS,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE;AACzC,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE;AACjC,QAAQ,MAAM,IAAI,SAAS,CAAC,CAAC,cAAc,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,KAAK;AACL,CAAC;AACD,SAAS,aAAa,CAAC,MAAM,EAAE;AAC/B,IAAI,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE;AACpC,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE;AAClE,YAAY,OAAO,IAAI,CAAC;AACxB,SAAS;AACT,aAAa;AACb,YAAY,OAAO,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACnD,SAAS;AACT,KAAK;AACL,SAAS;AACT,QAAQ,OAAO,CAAC,EAAE,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC9D,KAAK;AACL;;AAEA,MAAM,iBAAiB,CAAC;AACxB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;AAC/B,KAAK;AACL,IAAI,GAAG,CAAC,MAAM,EAAE;AAChB,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;AACzE,KAAK;AACL,IAAI,GAAG,CAAC,MAAM,EAAE;AAChB,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAC/E,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB,YAAY,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;AACpE,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK;AACL,IAAI,MAAM,CAAC,MAAM,EAAE;AACnB,QAAQ,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACrC,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAC3D,QAAQ,IAAI,YAAY,EAAE;AAC1B,YAAY,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAChD,YAAY,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;AAC9B,YAAY,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,KAAK,EAAE;AACnD,gBAAgB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACjF,aAAa;AACb,SAAS;AACT,QAAQ,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;AAC/B,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK;AACL,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE;AACxB,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACvC,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL,IAAI,gBAAgB,CAAC,MAAM,EAAE;AAC7B,QAAQ,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;AACxC,QAAQ,IAAI,MAAM,EAAE;AACpB,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAClD,YAAY,OAAO,MAAM,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAC3D,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL;;AAEA,MAAM,cAAc,GAAG,SAAS,CAAC;AACjC,MAAM,aAAa,GAAG,IAAI,iBAAiB,EAAE;;AAE7C,MAAM,iBAAiB,CAAC;AACxB,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;AAC3C,KAAK;AACL,IAAI,QAAQ,CAAC,KAAK,EAAE;AACpB,QAAQ,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC5E,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACvC,YAAY,MAAM,IAAI,eAAe,CAAC,+BAA+B,CAAC,CAAC;AACvE,SAAS;AACT,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAClC,YAAY,MAAM,IAAI,eAAe,CAAC,CAAC,gCAAgC,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAChG,SAAS;AACT,KAAK;AACL;;AAEA,MAAM,mBAAmB,CAAC;AAC1B,IAAI,WAAW,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,EAAE,GAAG,GAAG,MAAM,CAAC,SAAS,EAAE;AAChE,QAAQ,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;AACvB,QAAQ,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;AACvB,KAAK;AACL,IAAI,QAAQ,CAAC,KAAK,EAAE;AACpB,QAAQ,kBAAkB,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;AACxD,QAAQ,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE;AACvD,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,KAAK,MAAM,CAAC,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;AACzE,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,KAAK,MAAM,CAAC,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;AACzE,YAAY,MAAM,IAAI,eAAe,CAAC,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACzF,SAAS;AACT,KAAK;AACL;;AAEA,MAAM,mBAAmB,CAAC;AAC1B,IAAI,WAAW,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,EAAE,GAAG,GAAG,MAAM,CAAC,SAAS,EAAE;AAChE,QAAQ,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;AACvB,QAAQ,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;AACvB,KAAK;AACL,IAAI,QAAQ,CAAC,KAAK,EAAE;AACpB,QAAQ,kBAAkB,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;AACxD,QAAQ,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE;AACrD,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,KAAK,MAAM,CAAC,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;AACzE,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,KAAK,MAAM,CAAC,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;AACzE,YAAY,MAAM,IAAI,eAAe,CAAC,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACzF,SAAS;AACT,KAAK;AACL;;AAEA,MAAM,gBAAgB,CAAC;AACvB,IAAI,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE;AAC9C,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AACnC,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AACnC,KAAK;AACL,IAAI,QAAQ,CAAC,KAAK,EAAE;AACpB,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;AACvC,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;AAC9C,gBAAgB,MAAM,IAAI,eAAe,CAAC,CAAC,6BAA6B,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1F,aAAa;AACb,YAAY,OAAO;AACnB,SAAS;AACT,QAAQ,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;AAC1C,YAAY,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;AAC/C,gBAAgB,MAAM,IAAI,eAAe,CAAC,CAAC,+BAA+B,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/F,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;AAC1C,YAAY,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;AAC/C,gBAAgB,MAAM,IAAI,eAAe,CAAC,CAAC,+BAA+B,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/F,aAAa;AACb,SAAS;AACT,KAAK;AACL;;AAEA,MAAM,qBAAqB,CAAC;AAC5B,IAAI,WAAW,CAAC,WAAW,EAAE;AAC7B,QAAQ,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AACvC,KAAK;AACL,IAAI,QAAQ,CAAC,KAAK,EAAE;AACpB,QAAQ,kBAAkB,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;AACxD,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AAC/C,YAAY,MAAM,IAAI,eAAe,CAAC,CAAC,qBAAqB,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAClH,SAAS;AACT,KAAK;AACL;;AAEA,MAAM,aAAa,CAAC;AACpB,IAAI,OAAO,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE;AACzC,QAAQ,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;AAC3D,QAAQ,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AACpC,YAAY,KAAK,MAAM,UAAU,IAAI,UAAU,CAAC,WAAW,EAAE;AAC7D,gBAAgB,IAAI,UAAU,YAAY,gBAAgB,IAAI,UAAU,CAAC,QAAQ,EAAE;AACnF,oBAAoB,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC9C,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC/C,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK;AACL,IAAI,OAAO,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE;AACzC,QAAQ,IAAI,UAAU,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC1D,YAAY,MAAM,IAAI,SAAS,CAAC,qBAAqB,CAAC,CAAC;AACvD,SAAS;AACT,QAAQ,IAAI,OAAO,UAAU,CAAC,IAAI,KAAK,QAAQ,EAAE;AACjD,YAAY,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;AAClE,YAAY,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE;AACpC,gBAAgB,kBAAkB,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;AACvD,aAAa;AACb,SAAS;AACT,KAAK;AACL,IAAI,OAAO,eAAe,CAAC,MAAM,EAAE,IAAI,GAAG,cAAc,EAAE;AAC1D,QAAQ,OAAO,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AAC1E,KAAK;AACL;;AAEA,MAAM,cAAc,SAAS,aAAa,CAAC;AAC3C,IAAI,OAAO,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;AACpD,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC/C,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AACrD,KAAK;AACL,IAAI,OAAO,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE;AACrC,QAAQ,IAAI,GAAG,CAAC;AAChB,QAAQ,IAAI,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;AAChD,QAAQ,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,cAAc,CAAC;AAChE,QAAQ,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE;AAChC,YAAY,OAAO,GAAG,CAAC,MAAM,EAAE,CAAC;AAChC,SAAS;AACT,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AAChC,YAAY,GAAG,GAAG,EAAE,CAAC;AACrB,YAAY,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;AACpC,gBAAgB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AACrD,aAAa;AACb,SAAS;AACT,aAAa,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC1C,YAAY,IAAI,YAAY,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;AAClE,gBAAgB,MAAM,IAAI,SAAS,CAAC,4CAA4C,CAAC,CAAC;AAClF,aAAa;AACb,YAAY,YAAY,IAAI,YAAY,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;AAC7D,YAAY,IAAI,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;AACjD,gBAAgB,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAC/D,gBAAgB,GAAG,GAAG,EAAE,CAAC;AACzB,gBAAgB,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAC7E,gBAAgB,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE;AAC/C,oBAAoB,IAAI;AACxB,wBAAwB,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;AACtD,wBAAwB,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AACjD,wBAAwB,IAAI,KAAK,CAAC;AAClC,wBAAwB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,KAAK,SAAS;AACnE,gCAAgC,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,CAAC,YAAY,CAAC,EAAE;AACnG,4BAA4B,SAAS;AACrC,yBAAyB;AACzB,wBAAwB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,KAAK,SAAS,EAAE;AACrE,4BAA4B,MAAM,IAAI,eAAe,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;AAC3G,yBAAyB;AACzB,wBAAwB,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC3D,4BAA4B,IAAI,IAAI,CAAC,SAAS,EAAE;AAChD,gCAAgC,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnD,oCAAoC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;AAChG,iCAAiC;AACjC,qCAAqC;AACrC,oCAAoC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAChF,iCAAiC;AACjC,6BAA6B;AAC7B,iCAAiC;AACjC,gCAAgC,KAAK,GAAG,OAAO,CAAC;AAChD,6BAA6B;AAC7B,yBAAyB;AACzB,6BAA6B;AAC7B,4BAA4B,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC/C,gCAAgC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;AAC7F,6BAA6B;AAC7B,iCAAiC;AACjC,gCAAgC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;AAC7E,6BAA6B;AAC7B,yBAAyB;AACzB,wBAAwB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACrD,wBAAwB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACtD,wBAAwB,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;AACtD,qBAAqB;AACrB,oBAAoB,OAAO,CAAC,EAAE;AAC9B,wBAAwB,IAAI,CAAC,YAAY,eAAe,EAAE;AAC1D,4BAA4B,MAAM,CAAC,CAAC;AACpC,yBAAyB;AACzB,6BAA6B;AAC7B,4BAA4B,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACzH,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,iBAAiB;AACjB,gBAAgB,GAAG,GAAG,EAAE,CAAC;AACzB,gBAAgB,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;AACvC,oBAAoB,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;AACrE,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,aAAa;AACb,YAAY,GAAG,GAAG,GAAG,CAAC;AACtB,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK;AACL;;AAEA,MAAM,UAAU,SAAS,aAAa,CAAC;AACvC,IAAI,OAAO,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;AAChC,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACrC,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC3C,KAAK;AACL,IAAI,OAAO,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE;AACrC,QAAQ,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;AAClD,QAAQ,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,cAAc,CAAC;AAChE,QAAQ,MAAM,GAAG,GAAG,IAAI,YAAY,EAAE,CAAC;AACvC,QAAQ,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE;AAChC,YAAY,OAAO,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACxC,SAAS;AACT,QAAQ,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACvD,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AACrE,QAAQ,MAAM,SAAS,GAAG,EAAE,CAAC;AAC7B,QAAQ,IAAI,OAAO,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AAC9D,YAAY,UAAU,CAAC,mBAAmB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;AACxE,SAAS;AACT,QAAQ,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE;AACvC,YAAY,IAAI;AAChB,gBAAgB,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;AAC9C,gBAAgB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;AAC9C,gBAAgB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAC3C,gBAAgB,IAAI,KAAK,KAAK,SAAS,KAAK,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,EAAE;AAC/F,oBAAoB,SAAS;AAC7B,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,KAAK,SAAS,EAAE;AAC3D,oBAAoB,MAAM,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;AACrF,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC7C,gBAAgB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC9C,gBAAgB,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE;AACrD,oBAAoB,IAAI,IAAI,CAAC,SAAS,EAAE;AACxC,wBAAwB,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3C,4BAA4B,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;AAC3F,yBAAyB;AACzB,6BAA6B;AAC7B,4BAA4B,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC3E,yBAAyB;AACzB,qBAAqB;AACrB,yBAAyB;AACzB,wBAAwB,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACzC,qBAAqB;AACrB,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB,MAAM,UAAU,GAAG;AACvC,wBAAwB,GAAG,OAAO;AAClC,wBAAwB,YAAY,EAAE,IAAI,CAAC,IAAI;AAC/C,wBAAwB,UAAU;AAClC,qBAAqB,CAAC;AACtB,oBAAoB,IAAI,IAAI,CAAC,QAAQ,EAAE;AACvC,wBAAwB,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;AACpF,qBAAqB;AACrB,yBAAyB;AACzB,wBAAwB,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AACpE,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,YAAY,OAAO,CAAC,EAAE;AACtB,gBAAgB,IAAI,EAAE,CAAC,YAAY,WAAW,CAAC,EAAE;AACjD,oBAAoB,CAAC,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/F,iBAAiB;AACjB,gBAAgB,IAAI,OAAO,CAAC,aAAa,EAAE;AAC3C,oBAAoB,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACvC,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB,MAAM,CAAC,CAAC;AAC5B,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC5C,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;AACzB,YAAY,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AACxD,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK;AACL,IAAI,OAAO,mBAAmB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE;AAC5D,QAAQ,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9C,QAAQ,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACrD,QAAQ,MAAM,IAAI,GAAG,EAAE,CAAC;AACxB,QAAQ,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE;AACrC,YAAY,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;AACjD,gBAAgB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/B,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;AACzB,YAAY,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC7C,SAAS;AACT,KAAK;AACL;;AAEA,SAAS,cAAc,CAAC,IAAI,EAAE;AAC9B,IAAI,MAAM,WAAW,GAAG,EAAE,CAAC;AAC3B,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;AACtB,QAAQ,WAAW,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9D,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,GAAG,EAAE;AAC/E,QAAQ,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;AAChF,YAAY,WAAW,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AAC5F,SAAS;AACT,QAAQ,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;AAChF,YAAY,WAAW,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AAC5F,SAAS;AACT,QAAQ,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE;AAC5C,YAAY,WAAW,CAAC,IAAI,CAAC,IAAI,qBAAqB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AAC1E,SAAS;AACT,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,GAAG,EAAE;AAChG,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;AACvG,YAAY,WAAW,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAChG,SAAS;AACT,KAAK;AACL,IAAI,OAAO,WAAW,CAAC;AACvB,CAAC;AACD,MAAM,QAAQ,GAAG,CAAC,OAAO,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW,KAAK;AAC5D,IAAI,MAAM,YAAY,GAAG,CAAC,oBAAoB,EAAE,WAAW,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC5G,IAAI,IAAI,MAAM,CAAC;AACf,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;AAChD,QAAQ,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC1D,QAAQ,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACtD,KAAK;AACL,SAAS;AACT,QAAQ,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACvD,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,WAAW,EAAE;AAClD,YAAY,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC9D,YAAY,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAC1D,SAAS;AACT,KAAK;AACL,IAAI,MAAM,aAAa,GAAG;AAC1B,QAAQ,IAAI,EAAE,aAAa,CAAC,GAAG;AAC/B,QAAQ,WAAW,EAAE,EAAE;AACvB,KAAK,CAAC;AACN,IAAI,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AAC9D,IAAI,WAAW,CAAC,WAAW,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;AAC1D,IAAI,IAAI,OAAO,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC9C,QAAQ,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;AACtF,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,qCAAqC,CAAC,CAAC,CAAC;AACpF,SAAS;AACT,KAAK;AACL,IAAI,IAAI,WAAW,CAAC;AACpB,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACvC,QAAQ,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;AACrC,KAAK;AACL,SAAS;AACT,QAAQ,WAAW,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,cAAc,CAAC,CAAC;AACzD,KAAK;AACL,IAAI,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;AAC1C,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;AACvC,YAAY,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;AAC1C,SAAS;AACT,QAAQ,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AACrD,QAAQ,WAAW,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC;AAC/C,KAAK;AACL,CAAC;;ACjeD;AACA;AACA;;;AASA,MAAM,WAAW,SAAS,KAAK,CAAC;AAChC;;AAEA,MAAM,cAAc,SAAS,WAAW,CAAC;AACzC;;AAEA,MAAM,yBAAyB,SAAS,WAAW,CAAC;AACpD,IAAI,WAAW,CAAC,UAAU,EAAE;AAC5B,QAAQ,KAAK,CAAC,CAAC,uBAAuB,EAAE,UAAU,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC5E;AACA;;AAEA,MAAM,cAAc,SAAS,WAAW,CAAC;AACzC;;AAEA,MAAM,qBAAqB,SAAS,WAAW,CAAC;AAChD,IAAI,WAAW,CAAC,QAAQ,EAAE;AAC1B,QAAQ,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,2BAA2B,CAAC,CAAC;AACvD;AACA;;AAEA,MAAM,YAAY,CAAC;AACnB,IAAI,OAAO,aAAa,CAAC,GAAG,EAAE;AAC9B,QAAQ,MAAM,MAAM,GAAG;AACvB,aAAa,OAAO,CAAC,yBAAyB,EAAE,EAAE;AAClD,aAAa,OAAO,CAAC,IAAI,EAAE,EAAE;AAC7B,aAAa,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;AAC9B,QAAQ,OAAO,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;AACzC;AACA,IAAI,OAAO,YAAY,CAAC,GAAG,EAAE;AAC7B,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;AAC7C,QAAQ,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC;AACpC;AACA,IAAI,OAAO,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;AACzC,QAAQ,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC/C,QAAQ,IAAI,MAAM;AAClB,QAAQ,IAAI,MAAM,GAAG,CAAC;AACtB,QAAQ,MAAM,IAAI,GAAG,EAAE;AACvB,QAAQ,OAAO,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE;AACvC,YAAY,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC;AACtD,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE;AAC/B,gBAAgB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AACjC;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA,YAAY,MAAM,IAAI,EAAE;AACxB;AACA,QAAQ,MAAM,YAAY,GAAG,GAAG,CAAC,WAAW,EAAE;AAC9C,QAAQ,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,YAAY,CAAC,KAAK,CAAC;AACnG;AACA,IAAI,OAAO,KAAK,CAAC,IAAI,EAAE;AACvB,QAAQ,OAAO,yDAAyD,CAAC,IAAI,CAAC,IAAI,CAAC;AACnF;AACA,IAAI,OAAO,UAAU,CAAC,GAAG,EAAE;AAC3B,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AAC9B,YAAY,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC;AAC5E;AACA,QAAQ,MAAM,GAAG,GAAG,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC;AACpD,QAAQ,IAAI,CAAC,GAAG,EAAE;AAClB,YAAY,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC;AACtD;AACA,QAAQ,OAAO,GAAG,CAAC,CAAC,CAAC;AACrB;AACA,IAAI,OAAO,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE;AACpC,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;AACxC,QAAQ,OAAO,OAAO,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,WAAW,EAAE;AAC1D;AACA,IAAI,OAAO,aAAa,CAAC,GAAG,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,aAAa,CAAC;AAClD;AACA,IAAI,OAAO,oBAAoB,CAAC,GAAG,EAAE;AACrC,QAAQ,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,qBAAqB,CAAC;AAC1D;AACA,IAAI,OAAO,KAAK,CAAC,GAAG,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC;AAC/C;AACA,IAAI,OAAO,WAAW,CAAC,GAAG,EAAE;AAC5B,QAAQ,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,YAAY,CAAC;AACjD;AACA;;AAEA,SAAS,KAAK,CAAC,IAAI,EAAE;AACrB,IAAI,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,IAAI,IAAI;AACpD;;AAEA,MAAM,cAAc,CAAC;AACrB,IAAI,MAAM,MAAM,CAAC,GAAG,IAAI,EAAE;AAC1B,QAAQ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;AAC1C,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;AAC9C;AACA,IAAI,WAAW,CAAC,SAAS,EAAE,KAAK,EAAE;AAClC,QAAQ,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;AAC1C;AACA,IAAI,MAAM,QAAQ,CAAC,UAAU,EAAE,KAAK,EAAE;AACtC,QAAQ,MAAM,IAAI,yBAAyB,CAAC,QAAQ,CAAC;AACrD;AACA,IAAI,MAAM,WAAW,CAAC,GAAG,IAAI,EAAE;AAC/B,QAAQ,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;AAC/C,QAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;AACnD;AACA,IAAI,gBAAgB,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE;AACnE,QAAQ,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;AAC1C,QAAQ,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC;AAC9C,QAAQ,IAAI,EAAE,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE;AAC9C,YAAY,MAAM,IAAI,SAAS,CAAC,CAAC,2CAA2C,CAAC,CAAC;AAC9E;AACA,QAAQ,IAAI,aAAa;AACzB,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACxC,YAAY,aAAa,GAAG,IAAI,CAAC,MAAM;AACvC;AACA,aAAa;AACb,YAAY,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;AAChF;AACA,QAAQ,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,aAAa,CAAC;AACrD;AACA,IAAI,sBAAsB,CAAC,UAAU,EAAE;AACvC;AACA,IAAI,MAAM,aAAa,CAAC,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,KAAK,EAAE;AACxE,QAAQ,MAAM,IAAI,yBAAyB,CAAC,aAAa,CAAC;AAC1D;AACA,IAAI,MAAM,IAAI,CAAC,GAAG,IAAI,EAAE;AACxB,QAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;AACxC,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;AAC5C;AACA,IAAI,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE;AAC/C,QAAQ,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;AAC1C,QAAQ,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC;AAC5C,QAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC;AACxC;AACA,IAAI,MAAM,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE;AACpD,QAAQ,MAAM,IAAI,yBAAyB,CAAC,MAAM,CAAC;AACnD;AACA,IAAI,MAAM,MAAM,CAAC,GAAG,IAAI,EAAE;AAC1B,QAAQ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;AAC1C,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;AAC9C;AACA,IAAI,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE;AAC7D,QAAQ,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;AAC1C,QAAQ,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC;AAC5C,QAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC1C;AACA,IAAI,MAAM,QAAQ,CAAC,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE;AAClE,QAAQ,MAAM,IAAI,yBAAyB,CAAC,QAAQ,CAAC;AACrD;AACA,IAAI,MAAM,OAAO,CAAC,GAAG,IAAI,EAAE;AAC3B,QAAQ,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;AAC3C,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;AAC/C;AACA,IAAI,YAAY,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,KAAK,EAAE;AAChE,QAAQ,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;AAC1C,QAAQ,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC;AAC5C,QAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAC,CAAC;AACvE;AACA,IAAI,MAAM,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE;AACvD,QAAQ,MAAM,IAAI,yBAAyB,CAAC,SAAS,CAAC;AACtD;AACA,IAAI,MAAM,OAAO,CAAC,GAAG,IAAI,EAAE;AAC3B,QAAQ,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;AAC3C,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;AAC/C;AACA,IAAI,YAAY,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,KAAK,EAAE;AAChE,QAAQ,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;AAC1C,QAAQ,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC;AAC5C,QAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAC,CAAC;AACvE;AACA,IAAI,MAAM,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE;AACvD,QAAQ,MAAM,IAAI,yBAAyB,CAAC,SAAS,CAAC;AACtD;AACA,IAAI,MAAM,UAAU,CAAC,GAAG,IAAI,EAAE;AAC9B,QAAQ,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;AAC9C,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;AAClD;AACA,IAAI,eAAe,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,KAAK,EAAE;AACxE,QAAQ,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;AAC1C,QAAQ,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC;AAC5C,QAAQ,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,GAAG,YAAY,GAAG,KAAK,CAAC,CAAC;AAC9E,QAAQ,IAAI,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;AAC9B,YAAY,MAAM,IAAI,cAAc,CAAC,8BAA8B,CAAC;AACpE;AACA;AACA,IAAI,MAAM,YAAY,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE;AAChE,QAAQ,MAAM,IAAI,yBAAyB,CAAC,YAAY,CAAC;AACzD;AACA,IAAI,MAAM,SAAS,CAAC,GAAG,IAAI,EAAE;AAC7B,QAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;AAC7C,QAAQ,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;AACjD;AACA,IAAI,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE;AAC1C,QAAQ,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;AACnC,QAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;AAChC,QAAQ,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE;AAC9B,YAAY,MAAM,IAAI,WAAW,CAAC,yBAAyB,CAAC;AAC5D;AACA;AACA,IAAI,MAAM,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE;AAC/C,QAAQ,MAAM,IAAI,yBAAyB,CAAC,WAAW,CAAC;AACxD;AACA,IAAI,MAAM,SAAS,CAAC,GAAG,IAAI,EAAE;AAC7B,QAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;AAC7C,QAAQ,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;AACjD;AACA,IAAI,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE;AAClF,QAAQ,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;AACnC,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC;AAC1C,QAAQ,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;AAC1C,QAAQ,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC;AACzC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACxC,YAAY,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC;AACvD;AACA;AACA,IAAI,MAAM,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,KAAK,EAAE;AACzF,QAAQ,MAAM,IAAI,yBAAyB,CAAC,WAAW,CAAC;AACxD;AACA,IAAI,kBAAkB,CAAC,SAAS,EAAE;AAClC,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;AACtE,YAAY,MAAM,IAAI,cAAc,CAAC,mBAAmB,CAAC;AACzD;AACA;AACA,IAAI,oBAAoB,CAAC,UAAU,EAAE;AACrC;AACA,IAAI,qBAAqB,CAAC,UAAU,EAAE;AACtC;AACA,IAAI,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE;AACpC,QAAQ,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AACpC,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE;AAC/C,gBAAgB,MAAM,IAAI,SAAS,CAAC,oDAAoD,CAAC;AACzF;AACA;AACA;AACA,IAAI,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE;AAClC,QAAQ,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC;AAC9C,QAAQ,IAAI,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;AAC7D,YAAY,MAAM,IAAI,WAAW,CAAC,CAAC,oCAAoC,CAAC,CAAC;AACzE;AACA;AACA,IAAI,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE;AAC1C,QAAQ,IAAI,EAAE,QAAQ,IAAI,IAAI,CAAC,EAAE;AACjC,YAAY,MAAM,IAAI,qBAAqB,CAAC,QAAQ,CAAC;AACrD;AACA;AACA,IAAI,kBAAkB,CAAC,SAAS,EAAE,cAAc,EAAE;AAClD,QAAQ,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE;AAC3C,YAAY,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;AACrE,gBAAgB;AAChB;AACA;AACA,QAAQ,MAAM,IAAI,cAAc,CAAC,CAAC,qBAAqB,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACrF;AACA,IAAI,iBAAiB,CAAC,UAAU,EAAE;AAClC;AACA,IAAI,cAAc,CAAC,MAAM,EAAE;AAC3B,QAAQ,QAAQ,MAAM;AACtB,YAAY,KAAK,KAAK;AACtB,YAAY,KAAK,OAAO;AACxB,YAAY,KAAK,MAAM;AACvB,YAAY,KAAK,KAAK;AACtB,gBAAgB;AAChB,YAAY;AACZ,gBAAgB,MAAM,IAAI,SAAS,CAAC,oEAAoE,CAAC;AACzG;AACA;AACA,IAAI,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE;AAClC,QAAQ,IAAI,CAAC,OAAO,EAAE;AACtB,YAAY,MAAM,IAAI,SAAS,CAAC,oDAAoD,CAAC;AACrF;AACA,QAAQ,IAAI,MAAM,KAAK,KAAK,EAAE;AAC9B,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;AACjC,gBAAgB,MAAM,IAAI,SAAS,CAAC,8BAA8B,CAAC;AACnE;AACA;AACA,aAAa,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;AACjE,YAAY,MAAM,IAAI,SAAS,CAAC,gDAAgD,CAAC;AACjF;AACA;AACA,IAAI,WAAW,CAAC,IAAI,EAAE;AACtB,QAAQ,OAAO,qBAAqB,CAAC,aAAa,CAAC,IAAI,CAAC;AACxD;AACA;;AAEA,MAAM,WAAW,SAAS,cAAc,CAAC;AACzC,IAAI,sBAAsB,CAAC,SAAS,EAAE;AACtC,QAAQ,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,QAAQ,CAAC;AACvD,QAAQ,IAAI,OAAO,SAAS,CAAC,MAAM,KAAK,QAAQ,EAAE;AAClD,YAAY,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC;AAChE;AACA,QAAQ,QAAQ,SAAS,CAAC,MAAM;AAChC,YAAY,KAAK,GAAG;AACpB,YAAY,KAAK,GAAG;AACpB,YAAY,KAAK,GAAG;AACpB,gBAAgB;AAChB,YAAY;AACZ,gBAAgB,MAAM,IAAI,SAAS,CAAC,kCAAkC,CAAC;AACvE;AACA;AACA,IAAI,qBAAqB,CAAC,SAAS,EAAE;AACrC,QAAQ,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC;AAC9C;AACA;;uBAEA,MAAM,cAAc,SAAS,WAAW,CAAC;AACzC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,SAAS;AAC7B,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC;AACpE;AACA,IAAI,oBAAoB,CAAC,SAAS,EAAE;AACpC,QAAQ,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC;AACnD,QAAQ,IAAI,EAAE,SAAS,CAAC,EAAE,YAAY,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE;AACxF,YAAY,MAAM,IAAI,SAAS,CAAC,uDAAuD,CAAC;AACxF;AACA,QAAQ,IAAI,SAAS,CAAC,EAAE,CAAC,UAAU,KAAK,EAAE,EAAE;AAC5C,YAAY,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC;AAChE;AACA;AACA;;wBAEA,MAAM,eAAe,SAAS,WAAW,CAAC;AAC1C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,UAAU;AAC9B,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC;AACxC;AACA,IAAI,oBAAoB,CAAC,SAAS,EAAE;AACpC,QAAQ,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,QAAQ,CAAC;AACvD,QAAQ,IAAI,OAAO,SAAS,CAAC,MAAM,KAAK,QAAQ,EAAE;AAClD,YAAY,MAAM,IAAI,SAAS,CAAC,yBAAyB,CAAC;AAC1D;AACA,QAAQ,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AAClC,YAAY,MAAM,IAAI,cAAc,CAAC,6BAA6B,CAAC;AACnE;AACA;AACA;;uBAEA,MAAM,cAAc,SAAS,WAAW,CAAC;AACzC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,SAAS;AAC7B,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC;AACpE;AACA,IAAI,oBAAoB,CAAC,SAAS,EAAE;AACpC,QAAQ,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,SAAS,CAAC;AACxD,QAAQ,IAAI,EAAE,SAAS,CAAC,OAAO,YAAY,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE;AAClG,YAAY,MAAM,IAAI,SAAS,CAAC,4DAA4D,CAAC;AAC7F;AACA,QAAQ,IAAI,SAAS,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE,EAAE;AACjD,YAAY,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC;AAChE;AACA,QAAQ,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,QAAQ,CAAC;AACvD,QAAQ,IAAI,OAAO,SAAS,CAAC,MAAM,KAAK,QAAQ,EAAE;AAClD,YAAY,MAAM,IAAI,SAAS,CAAC,yBAAyB,CAAC;AAC1D;AACA,QAAQ,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AAClC,YAAY,MAAM,IAAI,cAAc,CAAC,6BAA6B,CAAC;AACnE;AACA;AACA;;uBAEA,MAAM,cAAc,SAAS,WAAW,CAAC;AACzC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,SAAS;AAC7B,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC;AACpE;AACA;;uBAEA,MAAM,cAAc,SAAS,WAAW,CAAC;AACzC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,SAAS;AAC7B,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC;AACpE;AACA,IAAI,oBAAoB,CAAC,SAAS,EAAE;AACpC,QAAQ,IAAI,EAAE;AACd,QAAQ,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC;AACnD,QAAQ,IAAI,EAAE,SAAS,CAAC,EAAE,YAAY,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE;AACxF,YAAY,MAAM,IAAI,SAAS,CAAC,uDAAuD,CAAC;AACxF;AACA,QAAQ,IAAI,SAAS,CAAC,EAAE,CAAC,UAAU,GAAG,CAAC,EAAE;AACzC,YAAY,MAAM,IAAI,cAAc,CAAC,yDAAyD,CAAC;AAC/F;AACA,QAAQ,CAAC,EAAE,GAAG,SAAS,CAAC,SAAS,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,IAAI,SAAS,CAAC,SAAS,GAAG,GAAG,CAAC;AAC/F,QAAQ,QAAQ,SAAS,CAAC,SAAS;AACnC,YAAY,KAAK,EAAE;AACnB,YAAY,KAAK,EAAE;AACnB,YAAY,KAAK,EAAE;AACnB,YAAY,KAAK,GAAG;AACpB,YAAY,KAAK,GAAG;AACpB,YAAY,KAAK,GAAG;AACpB,YAAY,KAAK,GAAG;AACpB,gBAAgB;AAChB,YAAY;AACZ,gBAAgB,MAAM,IAAI,cAAc,CAAC,4DAA4D,CAAC;AACtG;AACA;AACA;;sBAEA,MAAM,aAAa,SAAS,WAAW,CAAC;AACxC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,QAAQ;AAC5B,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC;AAC9C;AACA;;AAEA,MAAM,WAAW,SAAS,cAAc,CAAC;AACzC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC;AACpE;AACA,IAAI,oBAAoB,CAAC,SAAS,EAAE;AACpC,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;AACzB,YAAY,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC;AACvD,YAAY,IAAI,EAAE,SAAS,CAAC,EAAE,YAAY,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE;AAC5F,gBAAgB,MAAM,IAAI,SAAS,CAAC,uDAAuD,CAAC;AAC5F;AACA,YAAY,IAAI,SAAS,CAAC,EAAE,CAAC,UAAU,KAAK,IAAI,CAAC,MAAM,EAAE;AACzD,gBAAgB,MAAM,IAAI,SAAS,CAAC,CAAC,qBAAqB,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAChF;AACA;AACA;AACA,IAAI,sBAAsB,CAAC,SAAS,EAAE;AACtC,QAAQ,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,QAAQ,CAAC;AACvD,QAAQ,IAAI,OAAO,SAAS,CAAC,MAAM,KAAK,QAAQ,EAAE;AAClD,YAAY,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC;AAChE;AACA,QAAQ,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,WAAW,EAAE;AACnD,YAAY,MAAM,IAAI,cAAc,CAAC,CAAC,0BAA0B,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AACrF;AACA;AACA,IAAI,qBAAqB,CAAC,SAAS,EAAE;AACrC,QAAQ,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC;AAC9C;AACA;;AAEA,MAAM,WAAW,SAAS,cAAc,CAAC;AACzC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,cAAc,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;AACxE;AACA,IAAI,sBAAsB,CAAC,SAAS,EAAE;AACtC,QAAQ,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,MAAM,CAAC;AACrD,QAAQ,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC;AACpE,QAAQ,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,gBAAgB,CAAC;AAC/D,QAAQ,IAAI,EAAE,SAAS,CAAC,cAAc,IAAI,SAAS,CAAC,cAAc,YAAY,UAAU,CAAC,EAAE;AAC3F,YAAY,MAAM,IAAI,SAAS,CAAC,6CAA6C,CAAC;AAC9E;AACA,QAAQ,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,cAAc,CAAC;AACzE,QAAQ,IAAI,EAAE,cAAc,KAAK,MAAM,IAAI,cAAc,KAAK,MAAM,CAAC,EAAE;AACvE,YAAY,MAAM,IAAI,SAAS,CAAC,wCAAwC,CAAC;AACzE;AACA,QAAQ,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,eAAe,CAAC;AAC9D,QAAQ,IAAI,SAAS,CAAC,aAAa,GAAG;AACtC,eAAe,SAAS,CAAC,aAAa,GAAG;AACzC,eAAe,SAAS,CAAC,aAAa,GAAG,KAAK,EAAE;AAChD,YAAY,MAAM,IAAI,SAAS,CAAC,yEAAyE,CAAC;AAC1G;AACA;AACA,IAAI,iBAAiB,CAAC,SAAS,EAAE;AACjC,QAAQ,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,MAAM,CAAC;AACrD,QAAQ,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC;AACpE;AACA;;uBAEA,MAAM,cAAc,SAAS,WAAW,CAAC;AACzC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,mBAAmB;AACvC,QAAQ,IAAI,CAAC,MAAM,GAAG;AACtB,YAAY,UAAU,EAAE,CAAC,MAAM,CAAC;AAChC,YAAY,SAAS,EAAE,CAAC,QAAQ,CAAC;AACjC,SAAS;AACT;AACA;;uBAEA,MAAM,cAAc,SAAS,WAAW,CAAC;AACzC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,SAAS;AAC7B,QAAQ,IAAI,CAAC,MAAM,GAAG;AACtB,YAAY,UAAU,EAAE,CAAC,MAAM,CAAC;AAChC,YAAY,SAAS,EAAE,CAAC,QAAQ,CAAC;AACjC,SAAS;AACT;AACA,IAAI,oBAAoB,CAAC,SAAS,EAAE;AACpC,QAAQ,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,YAAY,CAAC;AAC3D,QAAQ,IAAI,OAAO,SAAS,CAAC,UAAU,KAAK,QAAQ,EAAE;AACtD,YAAY,MAAM,IAAI,SAAS,CAAC,6BAA6B,CAAC;AAC9D;AACA,QAAQ,IAAI,SAAS,CAAC,UAAU,GAAG,CAAC,EAAE;AACtC,YAAY,MAAM,IAAI,UAAU,CAAC,qCAAqC,CAAC;AACvE;AACA;AACA;;wBAEA,MAAM,eAAe,SAAS,WAAW,CAAC;AAC1C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,UAAU;AAC9B,QAAQ,IAAI,CAAC,MAAM,GAAG;AACtB,YAAY,UAAU,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC;AAChD,YAAY,SAAS,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;AAC7C,SAAS;AACT;AACA,IAAI,oBAAoB,CAAC,SAAS,EAAE;AACpC,QAAQ,IAAI,SAAS,CAAC;AACtB,eAAe,EAAE,SAAS,CAAC,KAAK,YAAY,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE;AACjG,YAAY,MAAM,IAAI,SAAS,CAAC,0DAA0D,CAAC;AAC3F;AACA;AACA;;AAEA,MAAM,gBAAgB,SAAS,cAAc,CAAC;AAC9C,IAAI,sBAAsB,CAAC,SAAS,EAAE;AACtC,QAAQ,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,YAAY,CAAC;AAC3D,QAAQ,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC;AAClD;AACA,IAAI,eAAe,CAAC,UAAU,EAAE;AAChC,QAAQ,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE;AAC7C,YAAY,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,WAAW,EAAE,EAAE;AACjE,gBAAgB;AAChB;AACA;AACA,QAAQ,MAAM,IAAI,cAAc,CAAC,CAAC,2BAA2B,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7F;AACA;;sBAEA,MAAM,aAAa,SAAS,gBAAgB,CAAC;AAC7C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,OAAO;AAC3B,QAAQ,IAAI,CAAC,cAAc,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;AACxE,QAAQ,IAAI,CAAC,MAAM,GAAG;AACtB,YAAY,UAAU,EAAE,CAAC,MAAM,CAAC;AAChC,YAAY,SAAS,EAAE,CAAC,QAAQ,CAAC;AACjC,SAAS;AACT,QAAQ,IAAI,CAAC,WAAW,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;AAC/D;AACA,IAAI,oBAAoB,CAAC,SAAS,EAAE;AACpC,QAAQ,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,MAAM,CAAC;AACrD,QAAQ,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC;AACpE;AACA;;AAEA,MAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC;kBACjD,MAAM,SAAS,CAAC;AAChB,IAAI,OAAO,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE;AACxD,QAAQ,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE;AAC9B,QAAQ,GAAG,CAAC,SAAS,GAAG,SAAS;AACjC,QAAQ,GAAG,CAAC,IAAI,GAAG,IAAI;AACvB,QAAQ,GAAG,CAAC,WAAW,GAAG,WAAW;AACrC,QAAQ,GAAG,CAAC,MAAM,GAAG,MAAM;AAC3B,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,OAAO,SAAS,CAAC,IAAI,EAAE;AAC3B,QAAQ,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7C;AACA,IAAI,KAAK,MAAM,CAAC,WAAW,CAAC,GAAG;AAC/B,QAAQ,OAAO,WAAW;AAC1B;AACA;;qBAEA,MAAM,YAAY,SAAS,gBAAgB,CAAC;AAC5C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM;AAC1B,QAAQ,IAAI,CAAC,MAAM,GAAG;AACtB,YAAY,UAAU,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC;AACnD,YAAY,SAAS,EAAE,EAAE;AACzB,SAAS;AACT,QAAQ,IAAI,CAAC,WAAW,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;AAC/D;AACA,IAAI,oBAAoB,CAAC,SAAS,EAAE;AACpC,QAAQ,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,QAAQ,CAAC;AACvD,QAAQ,IAAI,EAAE,SAAS,CAAC,MAAM,YAAYkC,WAAS,CAAC,EAAE;AACtD,YAAY,MAAM,IAAI,SAAS,CAAC,4BAA4B,CAAC;AAC7D;AACA,QAAQ,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;AAChD,YAAY,MAAM,IAAI,cAAc,CAAC,6BAA6B,CAAC;AACnE;AACA,QAAQ,IAAI,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;AAC3D,YAAY,MAAM,IAAI,cAAc,CAAC,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvE;AACA;AACA;;uBAEA,MAAM,cAAc,SAASC,cAAY,CAAC;AAC1C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,SAAS;AAC7B,QAAQ,IAAI,CAAC,WAAW,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC;AAC7C;AACA;;sBAEA,MAAM,aAAa,SAAS,gBAAgB,CAAC;AAC7C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,OAAO;AAC3B,QAAQ,IAAI,CAAC,MAAM,GAAG;AACtB,YAAY,UAAU,EAAE,CAAC,MAAM,CAAC;AAChC,YAAY,SAAS,EAAE,CAAC,QAAQ,CAAC;AACjC,SAAS;AACT,QAAQ,IAAI,CAAC,WAAW,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC;AAC/C;AACA;;AAEA,IAAI,gBAAgB,GAAG,MAAM,gBAAgB,CAAC;AAC9C,IAAI,WAAW,CAAC,KAAK,EAAE;AACvB,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,IAAI,CAAC,KAAK,GAAG,KAAK;AAC9B;AACA;AACA,CAAC;AACD,UAAU,CAAC;AACX,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,gBAAgB,EAAE;AACnD,CAAC,EAAE,gBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAC/C,gBAAgB,GAAG,UAAU,CAAC;AAC9B,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,MAAM,EAAE;AACzC,CAAC,EAAE,gBAAgB,CAAC;;AAEpB,MAAM,mBAAmB,CAAC;AAC1B,IAAI,WAAW,CAAC,MAAM,EAAE;AACxB,QAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;AACnC;AACA;AACA,UAAU,CAAC;AACX,IAAI,OAAO,CAAC;AACZ,QAAQ,IAAI,EAAE,YAAY,CAAC,gBAAgB;AAC3C,KAAK;AACL,CAAC,EAAE,mBAAmB,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;AACtD,UAAU,CAAC;AACX,IAAI,OAAO,CAAC;AACZ,QAAQ,IAAI,EAAE,YAAY,CAAC,GAAG;AAC9B,QAAQ,QAAQ,EAAE,IAAI;AACtB,KAAK;AACL,CAAC,EAAE,mBAAmB,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;;AAEvD,MAAM,cAAc,CAAC;AACrB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,CAAC;AACxB,QAAQ,IAAI,CAAC,mBAAmB,GAAG,IAAI,mBAAmB,EAAE;AAC5D,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC;AAC5C;AACA;AACA,UAAU,CAAC;AACX,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE;AAC1C,CAAC,EAAE,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AAC/C,UAAU,CAAC;AACX,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE;AACzC,CAAC,EAAE,cAAc,CAAC,SAAS,EAAE,qBAAqB,EAAE,KAAK,CAAC,CAAC;AAC3D,UAAU,CAAC;AACX,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,WAAW,EAAE;AAC9C,CAAC,EAAE,cAAc,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;AAClD,UAAU,CAAC;AACX,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE;AACtD,CAAC,EAAE,cAAc,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;;AAElD,MAAM,aAAa,CAAC;AACpB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,kBAAkB,GAAG,IAAI,mBAAmB,EAAE;AAC3D,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC;AAC3C;AACA;AACA,UAAU,CAAC;AACX,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE;AACzC,CAAC,EAAE,aAAa,CAAC,SAAS,EAAE,oBAAoB,EAAE,KAAK,CAAC,CAAC;AACzD,UAAU,CAAC;AACX,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,SAAS,EAAE;AAC5C,CAAC,EAAE,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;;AAEhD,MAAM,iCAAiC,GAAG;AAC1C,IAAI,QAAQ,EAAE,CAAC,KAAK,KAAK,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC;AACrD,IAAI,MAAM,EAAE,CAAC,KAAK,KAAK,OAAO,CAAC,WAAW,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;AACjE,CAAC;;AAED,MAAM,8BAA8B,GAAG;AACvC,IAAI,OAAO,EAAE,CAAC,KAAK,KAAK;AACxB,QAAQ,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ;AAClD,QAAQ,OAAO,EAAE,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC5C,cAAc,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC/C,cAAc,KAAK,CAAC,UAAU,CAAC,QAAQ;AACvC,KAAK;AACL,IAAI,KAAK,EAAE,CAAC,KAAK,KAAK;AACtB,QAAQ,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG;AACpD,cAAc,OAAO,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK;AACvD,cAAc,KAAK;AACnB,QAAQ,OAAO,IAAIC,OAAY,CAAC,EAAE,QAAQ,EAAE,CAAC;AAC7C,KAAK;AACL,CAAC;;sBAQD,MAAM,aAAa,CAAC;AACpB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,CAAC;AACxB,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC;AACzC,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC;AAChD,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC;AACjD,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC;AACxC,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC;AACxC,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC;AAC3C,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC;AAC3C,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC;AAC7C;AACA;AACA,UAAU,CAAC;AACX,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE;AAC1E,CAAC,EAAEC,eAAa,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AAC9C,UAAU,CAAC;AACX,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,8BAA8B,EAAE,CAAC;AACtF,IAAI,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,iCAAiC,EAAE;AACxE,CAAC,EAAEA,eAAa,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AAC9C,UAAU,CAAC;AACX,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,8BAA8B,EAAE,CAAC;AACtF,IAAI,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,iCAAiC,EAAE;AACxE,CAAC,EAAEA,eAAa,CAAC,SAAS,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;AACrD,UAAU,CAAC;AACX,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,8BAA8B,EAAE,CAAC;AACtF,IAAI,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,iCAAiC,EAAE;AACxE,CAAC,EAAEA,eAAa,CAAC,SAAS,EAAE,iBAAiB,EAAE,KAAK,CAAC,CAAC;AACtD,UAAU,CAAC;AACX,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,8BAA8B,EAAE,CAAC;AACtF,IAAI,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,iCAAiC,EAAE;AACxE,CAAC,EAAEA,eAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC7C,UAAU,CAAC;AACX,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,8BAA8B,EAAE,CAAC;AACtF,IAAI,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,iCAAiC,EAAE;AACxE,CAAC,EAAEA,eAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC7C,UAAU,CAAC;AACX,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,8BAA8B,EAAE,CAAC;AACtF,IAAI,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,iCAAiC,EAAE;AACzE,CAAC,EAAEA,eAAa,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;AAChD,UAAU,CAAC;AACX,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,8BAA8B,EAAE,CAAC;AACtF,IAAI,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,iCAAiC,EAAE;AACzE,CAAC,EAAEA,eAAa,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;AAChD,UAAU,CAAC;AACX,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,8BAA8B,EAAE,CAAC;AACtF,IAAI,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,iCAAiC,EAAE;AACzE,CAAC,EAAEA,eAAa,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;AAClD,UAAU,CAAC;AACX,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE;AACtD,CAAC,EAAEA,eAAa,CAAC,SAAS,EAAE,iBAAiB,EAAE,KAAK,CAAC,CAAC;;qBAEtD,MAAM,YAAY,CAAC;AACnB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC;AACzC,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC;AAChD;AACA;AACA,UAAU,CAAC;AACX,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,8BAA8B,EAAE,CAAC;AACtF,IAAI,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,iCAAiC,EAAE;AACxE,CAAC,EAAEC,cAAY,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AAC7C,UAAU,CAAC;AACX,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,8BAA8B,EAAE,CAAC;AACtF,IAAI,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,iCAAiC,EAAE;AACxE,CAAC,EAAEA,cAAY,CAAC,SAAS,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;;AAEpD,IAAIC,aAAW,GAAG,MAAM,WAAW,CAAC;AACpC,IAAI,WAAW,CAAC,KAAK,EAAE;AACvB,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC;AACvC,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,IAAI,CAAC,KAAK,GAAG,KAAK;AAC9B;AACA;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,IAAI,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;AAC9C,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;AAC/B,YAAY,MAAM,IAAI,WAAW,CAAC,wEAAwE,CAAC;AAC3G;AACA,QAAQ,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnD,QAAQ,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;AACrC,QAAQ,MAAM,MAAM,GAAG,CAAC;AACxB,QAAQ,MAAM,IAAI,GAAG;AACrB,YAAY,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;AAC7E,YAAY,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;AAC3F,SAAS;AACT,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,QAAQ,CAAC,IAAI,EAAE;AACnB,QAAQ,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,EAAE;AAC5B,YAAY,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;AAC3D;AACA,QAAQ,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,EAAE;AAC5B,YAAY,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;AAC3D;AACA,QAAQ,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/C,QAAQ,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/C,QAAQ,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;AAClE,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM;AACjD,QAAQ,OAAO,IAAI;AACnB;AACA,CAAC;AACD,UAAU,CAAC;AACX,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,WAAW,EAAE;AAC9C,CAAC,EAAEA,aAAW,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAC1CA,aAAW,GAAG,UAAU,CAAC;AACzB,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,MAAM,EAAE;AACzC,CAAC,EAAEA,aAAW,CAAC;;qBAEf,MAAM,YAAY,CAAC;AACnB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,CAAC;AACxB,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC;AAC5C;AACA,IAAI,QAAQ,CAAC,IAAI,EAAE;AACnB,QAAQ,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,EAAE;AAC5B,YAAY,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;AAC3D;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;AACvD,QAAQ,IAAI,GAAG,IAAI,IAAI,EAAE;AACzB,YAAY,MAAM,SAAS,GAAG,IAAIA,aAAW,EAAE;AAC/C,YAAY,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;AACpC,YAAY,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC;AACtD,YAAY,IAAI,UAAU,IAAI,GAAG,CAAC,UAAU,EAAE;AAC9C,gBAAgB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,QAAQ;AACxD;AACA;AACA,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,GAAG,GAAG,EAAE;AACtB,QAAQ,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AACpD,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AAC5B,YAAY,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAIA,aAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC;AACxE;AACA,QAAQ,OAAO,GAAG;AAClB;AACA;AACA,UAAU,CAAC;AACX,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE;AAC1E,CAAC,EAAEC,cAAY,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AAC7C,UAAU,CAAC;AACX,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,WAAW,EAAE;AAC9C,CAAC,EAAEA,cAAY,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;AAChD,UAAU,CAAC;AACX,IAAI,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE;AAClE,CAAC,EAAEA,cAAY,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;AAChD,UAAU,CAAC;AACX,IAAI,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;AACxE,CAAC,EAAEA,cAAY,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;;AAE/C,MAAM,iCAAiC,GAAG;AAC1C,IAAI,OAAO,EAAE,CAAC,KAAK,KAAK;AACxB,QAAQ,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC;AAC/D,QAAQ,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AAC9B,cAAc,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAClC,cAAc,KAAK,CAAC,MAAM;AAC1B,KAAK;AACL,IAAI,KAAK,EAAE,CAAC,KAAK,KAAK;AACtB,QAAQ,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC;AAC3C,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE;AAC5B,YAAY,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7D,YAAY,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;AAClC,YAAY,OAAO,IAAIJ,OAAY,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;AAClE;AACA,QAAQ,OAAO,IAAIA,OAAY,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AACpD,KAAK;AACL,CAAC;;AAED,IAAI,OAAO,gBAAgB,MAAM,CAAC,MAAM,CAAC;AACzC,EAAE,SAAS,EAAE,IAAI;AACjB,EAAE,iCAAiC,EAAE;AACrC,CAAC,CAAC;;AAEF,MAAM,OAAO,CAAC;AACd,IAAI,OAAO,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE;AACxC,QAAQ,MAAM,IAAI,GAAG,qBAAqB,CAAC,YAAY,CAAC,IAAI,CAAC;AAC7D,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AACpD,YAAY,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC;AACvE;AACA,QAAQ,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC;AACvC,QAAQ,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE;AAC9C,YAAY,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC;AAC9D;AACA,QAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACvC,QAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC/C,QAAQ,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;AAC/B;AACA,IAAI,OAAO,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE;AACzC,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AAC7C,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,EAAE;AACxE,YAAY,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC;AAC9E;AACA,QAAQ,MAAM,CAAC,GAAG,qBAAqB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7D,QAAQ,MAAM,CAAC,GAAG,qBAAqB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7D,QAAQ,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;AAChD,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AAClB,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACrB,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;AAC5B,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,OAAO,OAAO,CAAC,SAAS,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACvC;AACA,IAAI,OAAO,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE;AACjD,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;AAC5C,QAAQ,MAAM,CAAC,GAAG,qBAAqB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;AACjE,QAAQ,MAAM,CAAC,GAAG,qBAAqB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;AACjE,QAAQ,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC;AAC5C,QAAQ,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACvC,QAAQ,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC;AAC7C,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,OAAO,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE;AAC5C,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;AAC5C,QAAQ,MAAM,IAAI,GAAG,qBAAqB,CAAC,YAAY,CAAC,IAAI,CAAC;AAC7D,QAAQ,IAAI,IAAI,CAAC,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE;AACxC,YAAY,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC;AAC9D;AACA,QAAQ,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC;AACrC,QAAQ,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAClC,QAAQ,OAAO;AACf,YAAY,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAChC,YAAY,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAChC,SAAS;AACT;AACA,IAAI,OAAO,SAAS,CAAC,IAAI,EAAE;AAC3B,QAAQ,IAAI,CAAC,GAAG,CAAC;AACjB,QAAQ,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AACzD,YAAY,CAAC,EAAE;AACf;AACA,QAAQ,IAAI,CAAC,KAAK,CAAC,EAAE;AACrB,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;AACzC;AACA,IAAI,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE;AAChC,QAAQ,IAAI,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE;AAClC,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC;AACxC,QAAQ,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;AACzC,QAAQ,OAAO,GAAG;AAClB;AACA;;AAEA,MAAM,cAAc,CAAC;AACrB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC;AACnC,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC;AACnC;AACA,IAAI,OAAO,sBAAsB,CAAC,KAAK,EAAE;AACzC,QAAQ,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,GAAG,CAAC;AAC9C,QAAQ,MAAM,KAAK,GAAG,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,CAAC,CAAC;AACnE,QAAQ,MAAM,WAAW,GAAG,IAAI,cAAc,EAAE;AAChD,QAAQ,WAAW,CAAC,CAAC,GAAG,qBAAqB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;AACpE,QAAQ,WAAW,CAAC,CAAC,GAAG,qBAAqB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;AACpE,QAAQ,OAAO,WAAW;AAC1B;AACA,IAAI,oBAAoB,CAAC,SAAS,EAAE;AACpC,QAAQ,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,KAAK,CAAC,GAAG,SAAS,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACjI,QAAQ,MAAM,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,CAAC;AAClE,QAAQ,OAAO,SAAS,CAAC,MAAM;AAC/B;AACA;AACA,UAAU,CAAC;AACX,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,iCAAiC,EAAE;AACxF,CAAC,EAAE,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AACzC,UAAU,CAAC;AACX,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,iCAAiC,EAAE;AACxF,CAAC,EAAE,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;;AAEzC,MAAM,gBAAgB,SAAS,cAAc,CAAC;AAC9C;AACA,UAAU,CAAC;AACX,IAAI,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;AACxF,CAAC,EAAE,gBAAgB,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;;AAEnD,IAAIK,cAAY,GAAG,MAAM,YAAY,CAAC;AACtC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC;AACvC;AACA,IAAI,QAAQ,CAAC,IAAI,EAAE;AACnB,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;AACrB,YAAY,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;AAC3D;AACA,QAAQ,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;AAClD,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,GAAG,GAAG;AACpB,YAAY,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;AAC9C,SAAS;AACT,QAAQ,OAAO,GAAG;AAClB;AACA,CAAC;AACD,UAAU,CAAC;AACX,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,WAAW,EAAE;AAC9C,CAAC,EAAEA,cAAY,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAC3CA,cAAY,GAAG,UAAU,CAAC;AAC1B,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,MAAM,EAAE;AACzC,CAAC,EAAEA,cAAY,CAAC;;AAEhB,IAAIC,aAAW,GAAG,MAAM,WAAW,CAAC;AACpC,IAAI,WAAW,CAAC,KAAK,EAAE;AACvB,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC;AACvC,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,IAAI,CAAC,KAAK,GAAG,KAAK;AAC9B;AACA;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,IAAI,GAAG;AACrB,YAAY,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;AAC9C,SAAS;AACT,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,QAAQ,CAAC,IAAI,EAAE;AACnB,QAAQ,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,EAAE;AAC5B,YAAY,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;AAC3D;AACA,QAAQ,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;AAClD,QAAQ,OAAO,IAAI;AACnB;AACA,CAAC;AACD,UAAU,CAAC;AACX,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,SAAS,EAAE;AAC5C,CAAC,EAAEA,aAAW,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAC1CA,aAAW,GAAG,UAAU,CAAC;AACzB,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,MAAM,EAAE;AACzC,CAAC,EAAEA,aAAW,CAAC;;AAEf,IAAI,eAAe,GAAG,MAAM,eAAe,CAAC;AAC5C,CAAC;AACD,UAAU,CAAC;AACX,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,WAAW,EAAE,CAAC;AAC/C,IAAI,QAAQ,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,iCAAiC,EAAE;AACzF,CAAC,EAAE,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAC1C,eAAe,GAAG,UAAU,CAAC;AAC7B,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,MAAM,EAAE;AACzC,CAAC,EAAE,eAAe,CAAC;;AAEnB,MAAM,WAAW,GAAG,qBAAqB;AACzC,MAAM,eAAe,GAAG,WAAW;AACnC,MAAM,WAAW,GAAG,CAAC,EAAE,eAAe,CAAC,GAAG,CAAC;AAC3C,MAAM,WAAW,GAAG,CAAC,EAAE,eAAe,CAAC,GAAG,CAAC;AAC3C,MAAM,WAAW,GAAG,CAAC,EAAE,eAAe,CAAC,GAAG,CAAC;AAC3C,MAAM,YAAY,GAAG,oBAAoB;AACzC,MAAM,iBAAiB,GAAG,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC;AAC7C,MAAM,iBAAiB,GAAG,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC;AAC7C,MAAM,iBAAiB,GAAG,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC;AAC7C,MAAM,iBAAiB,GAAG,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC;AAC7C,MAAM,iBAAiB,GAAG,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC;AAC7C,MAAM,iBAAiB,GAAG,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC;AAC7C,MAAM,iBAAiB,GAAG,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC;AAC7C,MAAM,iBAAiB,GAAG,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC;AAC7C,MAAM,iBAAiB,GAAG,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC;AAC7C,MAAM,iBAAiB,GAAG,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC;AAC9C,MAAM,iBAAiB,GAAG,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC;AAC9C,MAAM,iBAAiB,GAAG,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC;AAC9C,MAAM,iBAAiB,GAAG,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC;AAC9C,MAAM,iBAAiB,GAAG,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC;AAC9C,MAAM,QAAQ,GAAG,aAAa;AAC9B,MAAM,MAAM,GAAG,aAAa;AAC5B,MAAM,SAAS,GAAG,aAAa;AAC/B,MAAM,OAAO,GAAG,aAAa;;AAE7B,IAAI,OAAO,gBAAgB,MAAM,CAAC,MAAM,CAAC;AACzC,EAAE,SAAS,EAAE,IAAI;AACjB,EAAE,mBAAmB,EAAE,mBAAmB;AAC1C,EAAE,IAAI,eAAe,CAAC,GAAG,EAAE,OAAO,eAAe,CAAC,EAAE;AACpD,EAAE,cAAc,EAAE,cAAc;AAChC,EAAE,YAAY,EAAEF,cAAY;AAC5B,EAAE,IAAI,WAAW,CAAC,GAAG,EAAE,OAAOD,aAAW,CAAC,EAAE;AAC5C,EAAE,IAAI,YAAY,CAAC,GAAG,EAAE,OAAOE,cAAY,CAAC,EAAE;AAC9C,EAAE,IAAI,WAAW,CAAC,GAAG,EAAE,OAAOC,aAAW,CAAC,EAAE;AAC5C,EAAE,IAAI,gBAAgB,CAAC,GAAG,EAAE,OAAO,gBAAgB,CAAC,EAAE;AACtD,EAAE,gBAAgB,EAAE,gBAAgB;AACpC,EAAE,cAAc,EAAE,cAAc;AAChC,EAAE,aAAa,EAAE,aAAa;AAC9B,EAAE,aAAa,EAAEL,eAAa;AAC9B,EAAE,YAAY,EAAEC,cAAY;AAC5B,EAAE,UAAU,EAAE,OAAO;AACrB,EAAE,iBAAiB,EAAE,iBAAiB;AACtC,EAAE,iBAAiB,EAAE,iBAAiB;AACtC,EAAE,iBAAiB,EAAE,iBAAiB;AACtC,EAAE,iBAAiB,EAAE,iBAAiB;AACtC,EAAE,iBAAiB,EAAE,iBAAiB;AACtC,EAAE,iBAAiB,EAAE,iBAAiB;AACtC,EAAE,iBAAiB,EAAE,iBAAiB;AACtC,EAAE,iBAAiB,EAAE,iBAAiB;AACtC,EAAE,iBAAiB,EAAE,iBAAiB;AACtC,EAAE,iBAAiB,EAAE,iBAAiB;AACtC,EAAE,iBAAiB,EAAE,iBAAiB;AACtC,EAAE,iBAAiB,EAAE,iBAAiB;AACtC,EAAE,iBAAiB,EAAE,iBAAiB;AACtC,EAAE,iBAAiB,EAAE,iBAAiB;AACtC,EAAE,SAAS,EAAE,SAAS;AACtB,EAAE,OAAO,EAAE,OAAO;AAClB,EAAE,eAAe,EAAE,eAAe;AAClC,EAAE,WAAW,EAAE,WAAW;AAC1B,EAAE,WAAW,EAAE,WAAW;AAC1B,EAAE,WAAW,EAAE,WAAW;AAC1B,EAAE,WAAW,EAAE,WAAW;AAC1B,EAAE,YAAY,EAAE,YAAY;AAC5B,EAAE,QAAQ,EAAE,QAAQ;AACpB,EAAE,MAAM,EAAE;AACV,CAAC,CAAC;;AAEF,MAAM,QAAQ,CAAC;AACf,IAAI,WAAW,GAAG;AAClB,IAAI,OAAO,QAAQ,CAAC,IAAI,EAAE;AAC1B,QAAQ,MAAM,GAAG,GAAG,IAAI,gBAAgB,EAAE;AAC1C,QAAQ,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE;AAC3B,QAAQ,MAAM,GAAG,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC;AAC7C,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AACxB,YAAY,GAAG,IAAI;AACnB,YAAY,GAAG;AACf,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAClC;AACA,IAAI,OAAO,IAAI,CAAC,QAAQ,EAAE;AAC1B,QAAQ,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE;AACzC,QAAQ,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;AACvC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,QAAQ,EAAE;AAC5F,gBAAgB,OAAO,IAAI;AAC3B;AACA;AACA,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,OAAO,GAAG,CAAC,QAAQ,EAAE;AACzB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;AACvC,QAAQ,IAAI,CAAC,GAAG,EAAE;AAClB,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,4BAA4B,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AACvE;AACA,QAAQ,OAAO,GAAG;AAClB;AACA;AACA,QAAQ,CAAC,KAAK,GAAG,EAAE;AACnB,QAAQ,CAAC,KAAK,GAAG,EAAE;AACnB,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAChE,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAChE,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAChE,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAChE,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAChF,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAChF,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAChF,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAChF,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAChF,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAChF,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAChF,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAChF,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAChF,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAChF,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAChF,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAChF,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAChF,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;;uBAEhF,MAAM,cAAc,SAAS,cAAc,CAAC;AAC5C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,QAAQ;AAC5B,QAAQ,IAAI,CAAC,MAAM,GAAG;AACtB,YAAY,UAAU,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC;AACnD,YAAY,SAAS,EAAE,EAAE;AACzB,SAAS;AACT;AACA,IAAI,oBAAoB,CAAC,SAAS,EAAE;AACpC,QAAQ,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,QAAQ,CAAC;AACvD;AACA;;wBAEA,MAAM,eAAe,SAAS,cAAc,CAAC;AAC7C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,SAAS;AAC7B,QAAQ,IAAI,CAAC,MAAM,GAAG;AACtB,YAAY,UAAU,EAAE,CAAC,MAAM,CAAC;AAChC,YAAY,SAAS,EAAE,CAAC,QAAQ,CAAC;AACjC,SAAS;AACT;AACA;;qBAEA,MAAM,YAAY,SAAS,cAAc,CAAC;AAC1C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM;AAC1B,QAAQ,IAAI,CAAC,cAAc,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;AACxE,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC;AACxC;AACA,IAAI,gBAAgB,CAAC,OAAO,EAAE;AAC9B,QAAQ,QAAQ,OAAO,CAAC,WAAW,EAAE;AACrC,YAAY,KAAK,OAAO;AACxB,YAAY,KAAK,SAAS;AAC1B,YAAY,KAAK,SAAS;AAC1B,YAAY,KAAK,SAAS;AAC1B,gBAAgB,OAAO,GAAG;AAC1B,YAAY;AACZ,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AACtE;AACA;AACA,IAAI,sBAAsB,CAAC,SAAS,EAAE;AACtC,QAAQ,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,MAAM,CAAC;AACrD,QAAQ,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC;AACpE,QAAQ,IAAI,QAAQ,IAAI,SAAS,EAAE;AACnC,YAAY,IAAI,OAAO,SAAS,CAAC,MAAM,KAAK,QAAQ,EAAE;AACtD,gBAAgB,MAAM,IAAI,SAAS,CAAC,yBAAyB,CAAC;AAC9D;AACA,YAAY,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AACtC,gBAAgB,MAAM,IAAI,UAAU,CAAC,gCAAgC,CAAC;AACtE;AACA;AACA;AACA,IAAI,iBAAiB,CAAC,SAAS,EAAE;AACjC,QAAQ,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,MAAM,CAAC;AACrD,QAAQ,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC;AACpE;AACA;;uBAEA,MAAM,cAAc,SAAS,cAAc,CAAC;AAC5C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,QAAQ;AAC5B,QAAQ,IAAI,CAAC,cAAc,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;AACxE,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,YAAY,EAAE,WAAW,CAAC;AACjD;AACA,IAAI,oBAAoB,CAAC,SAAS,EAAE;AACpC,QAAQ,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,MAAM,CAAC;AACrD,QAAQ,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC;AACpE,QAAQ,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,MAAM,CAAC;AACrD,QAAQ,IAAI,EAAE,SAAS,CAAC,IAAI,YAAY,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE;AAC5F,YAAY,MAAM,IAAI,SAAS,CAAC,yDAAyD,CAAC;AAC1F;AACA,QAAQ,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,YAAY,CAAC;AAC3D,QAAQ,IAAI,OAAO,SAAS,CAAC,UAAU,KAAK,QAAQ,EAAE;AACtD,YAAY,MAAM,IAAI,SAAS,CAAC,6BAA6B,CAAC;AAC9D;AACA,QAAQ,IAAI,SAAS,CAAC,UAAU,GAAG,CAAC,EAAE;AACtC,YAAY,MAAM,IAAI,SAAS,CAAC,4BAA4B,CAAC;AAC7D;AACA;AACA,IAAI,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE;AAChF,QAAQ,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;AACzF,QAAQ,IAAI,WAAW,EAAE;AACzB,YAAY,MAAM,IAAI,WAAW,CAAC,8BAA8B,CAAC;AACjE;AACA;AACA;;qBAEA,MAAM,YAAY,SAAS,cAAc,CAAC;AAC1C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM;AAC1B,QAAQ,IAAI,CAAC,cAAc,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;AACxE,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC;AACjD;AACA,IAAI,oBAAoB,CAAC,SAAS,EAAE;AACpC,QAAQ,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,MAAM,CAAC;AACrD,QAAQ,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC;AACpE,QAAQ,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,MAAM,CAAC;AACrD,QAAQ,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;AACnE,YAAY,MAAM,IAAI,SAAS,CAAC,yDAAyD,CAAC;AAC1F;AACA,QAAQ,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,MAAM,CAAC;AACrD,QAAQ,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;AACnE,YAAY,MAAM,IAAI,SAAS,CAAC,yDAAyD,CAAC;AAC1F;AACA;AACA,IAAI,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE;AAChF,QAAQ,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;AACzF,QAAQ,IAAI,WAAW,EAAE;AACzB,YAAY,MAAM,IAAI,WAAW,CAAC,8BAA8B,CAAC;AACjE;AACA;AACA;;AAEA,MAAM,aAAa,SAAS,cAAc,CAAC;AAC3C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,MAAM,GAAG,EAAE;AACxB,QAAQ,IAAI,CAAC,aAAa,GAAG,CAAC;AAC9B;AACA,IAAI,MAAM,CAAC,GAAG,IAAI,EAAE;AACpB,QAAQ,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;AAC7C;AACA,IAAI,WAAW,CAAC,SAAS,EAAE,IAAI,EAAE;AACjC,QAAQ,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC;AAC1C,QAAQ,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC;AAC5C,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AACxC,YAAY,MAAM,IAAI,SAAS,CAAC,yBAAyB,CAAC;AAC1D;AACA,QAAQ,IAAI,MAAM,GAAG,CAAC,EAAE;AACxB,YAAY,MAAM,IAAI,SAAS,CAAC,qBAAqB,CAAC;AACtD;AACA;AACA;;yBAEA,MAAM,gBAAgB,SAAS,aAAa,CAAC;AAC7C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,UAAU;AAC9B,QAAQ,IAAI,CAAC,aAAa,GAAG,EAAE;AAC/B;AACA;;yBAEA,MAAM,gBAAgB,SAAS,aAAa,CAAC;AAC7C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,UAAU;AAC9B,QAAQ,IAAI,CAAC,aAAa,GAAG,EAAE;AAC/B;AACA;;eAEA,MAAM,MAAM,CAAC;AACb,IAAI,KAAK,MAAM,CAAC,WAAW,CAAC,GAAG;AAC/B,QAAQ,OAAO,QAAQ;AACvB;AACA,IAAI,UAAU,GAAG;AACjB,QAAQ,MAAM,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;AAC1D,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI;AACnC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI;AACnC,QAAQ,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;AACnD,QAAQ,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3I;AACA;;AAEA,MAAM,eAAe,CAAC;AACtB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,KAAK,GAAG,EAAE;AACvB;AACA,IAAI,GAAG,CAAC,aAAa,EAAE;AACvB,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI;AAC9D;AACA,IAAI,GAAG,CAAC,QAAQ,EAAE;AAClB,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,QAAQ;AAC1D;AACA,IAAI,QAAQ,CAAC,aAAa,EAAE;AAC5B,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;AAC9D,QAAQ,IAAI,QAAQ,EAAE;AACtB,YAAY,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;AAC5C;AACA,QAAQ,OAAO,QAAQ;AACvB;AACA,IAAI,GAAG,CAAC,IAAI,EAAE;AACd,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/B;AACA,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM;AAC7C;AACA,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,MAAM,UAAU,GAAG,EAAE;AAC7B,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE;AACtC,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAC5C,YAAY,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC1C;AACA,QAAQ,OAAO,UAAU,CAAC,IAAI,EAAE;AAChC;AACA;;AAEA,MAAM,YAAY,GAAG;AACrB,IAAI,KAAK,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC;AAC1C,IAAI,OAAO,EAAE,CAAC,SAAS,CAAC;AACxB,IAAI,MAAM,EAAE,CAAC,QAAQ,CAAC;AACtB,IAAI,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ;AAC9B,CAAC;AACD,MAAM,sBAAsB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC;qBACvD,MAAM,YAAY,CAAC;AACnB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,EAAE;AAC9C;AACA,IAAI,OAAO,iBAAiB,CAAC,IAAI,EAAE;AACnC,QAAQ,OAAO;AACf,eAAe,OAAO,IAAI,KAAK;AAC/B,eAAe,MAAM,IAAI;AACzB,eAAe,MAAM,IAAI;AACzB,cAAc;AACd,cAAc,KAAK;AACnB;AACA,IAAI,KAAK,MAAM,CAAC,WAAW,CAAC,GAAG;AAC/B,QAAQ,OAAO,cAAc;AAC7B;AACA,IAAI,MAAM,MAAM,CAAC,GAAG,IAAI,EAAE;AAC1B,QAAQ,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC;AACtD,QAAQ,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI;AACjD,QAAQ,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;AAClE,QAAQ,MAAM,YAAY,GAAG,qBAAqB,CAAC,aAAa,CAAC,IAAI,CAAC;AACtE,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC;AACjE,QAAQ,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,iBAAiB,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;AACxF,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,MAAM,WAAW,CAAC,GAAG,IAAI,EAAE;AAC/B,QAAQ,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC;AAC3D,QAAQ,MAAM,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI;AACnE,QAAQ,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;AAClE,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC;AACjE,QAAQ,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,EAAE,GAAG,iBAAiB,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;AACnI,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,MAAM,IAAI,CAAC,GAAG,IAAI,EAAE;AACxB,QAAQ,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC;AACpD,QAAQ,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI;AACtD,QAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;AAChC,QAAQ,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;AAClE,QAAQ,MAAM,YAAY,GAAG,qBAAqB,CAAC,aAAa,CAAC,IAAI,CAAC;AACtE,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC;AACjE,QAAQ,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,iBAAiB,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;AACvH,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,MAAM,MAAM,CAAC,GAAG,IAAI,EAAE;AAC1B,QAAQ,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC;AACtD,QAAQ,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI;AACjE,QAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;AAChC,QAAQ,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;AAClE,QAAQ,MAAM,YAAY,GAAG,qBAAqB,CAAC,aAAa,CAAC,IAAI,CAAC;AACtE,QAAQ,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,aAAa,CAAC,SAAS,CAAC;AAChF,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC;AACjE,QAAQ,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,iBAAiB,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,iBAAiB,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;AAC5I,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,MAAM,OAAO,CAAC,GAAG,IAAI,EAAE;AAC3B,QAAQ,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC;AACvD,QAAQ,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI;AACtD,QAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;AAChC,QAAQ,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;AAClE,QAAQ,MAAM,YAAY,GAAG,qBAAqB,CAAC,aAAa,CAAC,IAAI,CAAC;AACtE,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC;AACjE,QAAQ,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,iBAAiB,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,GAAG,MAAM,CAAC;AAC9I,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,MAAM,OAAO,CAAC,GAAG,IAAI,EAAE;AAC3B,QAAQ,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC;AACvD,QAAQ,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI;AACtD,QAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;AAChC,QAAQ,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;AAClE,QAAQ,MAAM,YAAY,GAAG,qBAAqB,CAAC,aAAa,CAAC,IAAI,CAAC;AACtE,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC;AACjE,QAAQ,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,iBAAiB,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,GAAG,MAAM,CAAC;AAC9I,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,MAAM,UAAU,CAAC,GAAG,IAAI,EAAE;AAC9B,QAAQ,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC,EAAE,YAAY,CAAC;AAC1D,QAAQ,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI;AAC5D,QAAQ,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;AACpC,QAAQ,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;AAClE,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC;AACjE,QAAQ,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,iBAAiB,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,GAAG,MAAM,CAAC;AAC/I,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,MAAM,SAAS,CAAC,GAAG,IAAI,EAAE;AAC7B,QAAQ,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC;AACzD,QAAQ,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI;AAC5F,QAAQ,MAAM,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC;AAC5E,QAAQ,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,IAAI,CAAC;AAC5E,QAAQ,cAAc,CAAC,qBAAqB,CAAC,sBAAsB,CAAC;AACpE,QAAQ,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;AAClE,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC;AACjE,QAAQ,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC;AACrD,QAAQ,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,iBAAiB,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,cAAc,CAAC,MAAM,IAAI,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,GAAG,MAAM,CAAC;AAC3K,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;AACpG;AACA,IAAI,MAAM,SAAS,CAAC,GAAG,IAAI,EAAE;AAC7B,QAAQ,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC;AACzD,QAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI;AAC7C,QAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;AAChC,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;AACnC,YAAY,MAAM,IAAI,SAAS,CAAC,4BAA4B,CAAC;AAC7D;AACA,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACtD,YAAY,MAAM,IAAI,YAAY,CAAC,qCAAqC,CAAC;AACzE;AACA,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;AAC7D,QAAQ,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;AACvE,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,MAAM,SAAS,CAAC,GAAG,IAAI,EAAE;AAC7B,QAAQ,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC;AACzD,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI;AACpF,QAAQ,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;AAClE,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC;AACjE,QAAQ,IAAI,MAAM,KAAK,KAAK,EAAE;AAC9B,YAAY,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;AAC7D,gBAAgB,MAAM,IAAI,SAAS,CAAC,2CAA2C,CAAC;AAChF;AACA;AACA,aAAa,IAAI,sBAAsB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC1D,YAAY,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;AAChE,gBAAgB,MAAM,IAAI,SAAS,CAAC,qDAAqD,CAAC;AAC1F;AACA;AACA,aAAa;AACb,YAAY,MAAM,IAAI,SAAS,CAAC,oFAAoF,CAAC;AACrH;AACA,QAAQ,OAAO,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,iBAAiB,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;AACpI;AACA,IAAI,MAAM,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,IAAI,EAAE;AACpE,QAAQ,IAAI,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAChE,QAAQ,IAAI,MAAM,KAAK,KAAK,EAAE;AAC9B,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;AAChD,YAAY,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC;AAClD;AACA,QAAQ,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;AACtE,QAAQ,MAAM,YAAY,GAAG,qBAAqB,CAAC,aAAa,CAAC,OAAO,CAAC;AACzE,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC;AACjE,QAAQ,OAAO,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,iBAAiB,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC;AACvI;AACA,IAAI,MAAM,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,qBAAqB,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE;AAChI,QAAQ,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC;AACxE,QAAQ,MAAM,YAAY,GAAG,qBAAqB,CAAC,aAAa,CAAC,UAAU,CAAC;AAC5E,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC;AACjE,QAAQ,IAAI,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,iBAAiB,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC;AACtJ,QAAQ,IAAI,MAAM,KAAK,KAAK,EAAE;AAC9B,YAAY,IAAI;AAChB,gBAAgB,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AACnE;AACA,YAAY,OAAO,CAAC,EAAE;AACtB,gBAAgB,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,2BAA2B,CAAC;AACxE,gBAAgB,KAAK,CAAC,QAAQ,GAAG,CAAC;AAClC,gBAAgB,MAAM,KAAK;AAC3B;AACA;AACA,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;AACtG;AACA,IAAI,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE;AACnD,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE;AAChC,YAAY,MAAM,IAAI,SAAS,CAAC,CAAC,mBAAmB,EAAE,UAAU,CAAC,qBAAqB,EAAE,IAAI,CAAC,8BAA8B,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACnJ;AACA;AACA,IAAI,gBAAgB,CAAC,SAAS,EAAE;AAChC,QAAQ,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;AAC3C,YAAY,OAAO;AACnB,gBAAgB,IAAI,EAAE,SAAS;AAC/B,aAAa;AACb;AACA,QAAQ,IAAI,YAAY,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE;AACvD,YAAY,MAAM,iBAAiB,GAAG,EAAE,GAAG,SAAS,EAAE;AACtD,YAAY,iBAAiB,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC;AAC1E,YAAY,OAAO,iBAAiB;AACpC;AACA,QAAQ,OAAO,EAAE,GAAG,SAAS,EAAE;AAC/B;AACA,IAAI,WAAW,CAAC,IAAI,EAAE;AACtB,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;AACjD,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,YAAY,MAAM,IAAI,cAAc,CAAC,mBAAmB,CAAC;AACzD;AACA,QAAQ,OAAO,QAAQ;AACvB;AACA,IAAI,cAAc,CAAC,GAAG,EAAE;AACxB,QAAQ,IAAI,EAAE,GAAG,YAAYJ,WAAS,CAAC,EAAE;AACzC,YAAY,MAAM,IAAI,SAAS,CAAC,CAAC,8BAA8B,CAAC,CAAC;AACjE;AACA;AACA;;ACxhDA;AACA;AACA;;;AAaA,MAAM,sBAAsB,GAAG;AAC/B,IAAI,QAAQ,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACpE,IAAI,MAAM,EAAE,CAAC,KAAK,KAAK,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC;AACjD,CAAC;;AAED,MAAM,SAAS,SAASS,WAAc,CAAC;AACvC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACrC,QAAQ,IAAI,CAAC,SAAS,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;AACrC,QAAQ,IAAI,CAAC,WAAW,GAAG,KAAK;AAChC,QAAQ,IAAI,CAAC,IAAI,GAAG,QAAQ;AAC5B,QAAQ,IAAI,CAAC,MAAM,GAAG,EAAE;AACxB,QAAQ,IAAI,CAAC,GAAG,GAAG,KAAK;AACxB,QAAQ,IAAI,CAAC,GAAG,GAAG,EAAE;AACrB;AACA;AACA,UAAU,CAAC;AACX,IAAI,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;AACzE,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;AAC9C,UAAU,CAAC;AACX,IAAI,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;AAC5F,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AACzC,UAAU,CAAC;AACX,IAAI,QAAQ,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,MAAM,EAAE;AAC3C,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AACtC,UAAU,CAAC;AACX,IAAI,QAAQ,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;AAC3D,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;;AAEtC,MAAM,YAAY,SAAS,SAAS,CAAC;AACrC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,GAAG,GAAG,KAAK;AACxB,QAAQ,IAAI,CAAC,IAAI,GAAG,QAAQ;AAC5B;AACA;;AAEA,MAAM,aAAa,SAAS,SAAS,CAAC;AACtC;;AAEA,MAAM,YAAY,SAAS,YAAY,CAAC;AACxC,IAAI,IAAI,GAAG,GAAG;AACd,QAAQ,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE;AACjD,YAAY,KAAK,SAAS;AAC1B,gBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;AACrD,YAAY,KAAK,SAAS;AAC1B,gBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;AACrD,YAAY,KAAK,SAAS;AAC1B,gBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;AACrD,YAAY,KAAK,QAAQ;AACzB,gBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;AACpD,YAAY,KAAK,UAAU;AAC3B,gBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;AACtD,YAAY,KAAK,SAAS;AAC1B,gBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;AACrD,YAAY;AACZ,gBAAgB,MAAM,IAAIC,cAAmB,CAAC,4BAA4B,CAAC;AAC3E;AACA;AACA,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE;AACnB;AACA;AACA,UAAU,CAAC;AACX,IAAI,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,sBAAsB,EAAE;AAC7D,CAAC,EAAE,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;;AAE1C,MAAM,SAAS,CAAC;AAChB,IAAI,aAAa,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAChE,QAAQ,MAAM,GAAG,GAAG,IAAI,YAAY,EAAE;AACtC,QAAQ,GAAG,CAAC,SAAS,GAAG,SAAS;AACjC,QAAQ,GAAG,CAAC,WAAW,GAAG,WAAW;AACrC,QAAQ,GAAG,CAAC,MAAM,GAAG,SAAS;AAC9B,QAAQ,GAAG,CAAC,IAAI,GAAGC,QAAM,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC;AAC5D,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,aAAa,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE;AACxC,QAAQ,IAAI,EAAE,GAAG,YAAY,YAAY,CAAC,EAAE;AAC5C,YAAY,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;AACvD;AACA,QAAQ,QAAQ,MAAM,CAAC,WAAW,EAAE;AACpC,YAAY,KAAK,KAAK;AACtB,gBAAgB,OAAO,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC;AACjD,YAAY,KAAK,KAAK;AACtB,gBAAgB,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM;AACtD,YAAY;AACZ,gBAAgB,MAAM,IAAIC,cAAmB,CAAC,gCAAgC,CAAC;AAC/E;AACA;AACA,IAAI,aAAa,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC/E,QAAQ,IAAI,GAAG;AACf,QAAQ,QAAQ,MAAM,CAAC,WAAW,EAAE;AACpC,YAAY,KAAK,KAAK;AACtB,gBAAgB,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;AAClF,gBAAgB;AAChB,YAAY,KAAK,KAAK;AACtB,gBAAgB,GAAG,GAAG,IAAI,YAAY,EAAE;AACxC,gBAAgB,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AACjD,gBAAgB;AAChB,YAAY;AACZ,gBAAgB,MAAM,IAAIA,cAAmB,CAAC,gCAAgC,CAAC;AAC/E;AACA,QAAQ,GAAG,CAAC,SAAS,GAAG,SAAS;AACjC,QAAQ,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC;AACnD,QAAQ,GAAG,CAAC,WAAW,GAAG,WAAW;AACrC,QAAQ,GAAG,CAAC,MAAM,GAAG,SAAS;AAC9B,QAAQ,QAAQ,GAAG,CAAC,SAAS,CAAC,MAAM;AACpC,YAAY,KAAK,GAAG;AACpB,YAAY,KAAK,GAAG;AACpB,YAAY,KAAK,GAAG;AACpB,gBAAgB;AAChB,YAAY;AACZ,gBAAgB,MAAM,IAAIA,cAAmB,CAAC,8BAA8B,CAAC;AAC7E;AACA,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,aAAa,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AAC/C,QAAQ,QAAQ,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE;AAC5C,YAAY,KAAK,SAAS;AAC1B,gBAAgB,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9E,YAAY,KAAK,SAAS;AAC1B,gBAAgB,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9E,YAAY,KAAK,SAAS;AAC1B,gBAAgB,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9E,YAAY,KAAK,QAAQ;AACzB,gBAAgB,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7E,YAAY,KAAK,SAAS;AAC1B,gBAAgB,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9E,YAAY;AACZ,gBAAgB,MAAM,IAAIA,cAAmB,CAAC,8BAA8B,CAAC;AAC7E;AACA;AACA,IAAI,aAAa,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AAC/C,QAAQ,IAAI,EAAE,GAAG,YAAY,YAAY,CAAC,EAAE;AAC5C,YAAY,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;AACvD;AACA,QAAQ,QAAQ,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE;AAC5C,YAAY,KAAK,SAAS;AAC1B,gBAAgB,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9E,YAAY,KAAK,SAAS;AAC1B,gBAAgB,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9E,YAAY,KAAK,SAAS;AAC1B,gBAAgB,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9E,YAAY,KAAK,QAAQ;AACzB,gBAAgB,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7E,YAAY,KAAK,SAAS;AAC1B,gBAAgB,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9E,YAAY;AACZ,gBAAgB,MAAM,IAAIA,cAAmB,CAAC,8BAA8B,CAAC;AAC7E;AACA;AACA,IAAI,aAAa,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AACrD,QAAQ,MAAM,MAAM,GAAGD,QAAM,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AACvH,QAAQ,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AACrC,QAAQ,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AACpD,QAAQ,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM;AAC9C,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,aAAa,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AACrD,QAAQ,MAAM,QAAQ,GAAGA,QAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AAC3H,QAAQ,IAAI,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;AACvC,QAAQ,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;AACtD,QAAQ,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM;AACzC;AACA,IAAI,aAAa,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AACrD,QAAQ,MAAM,MAAM,GAAGA,QAAM,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAC3H,QAAQ,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AACrC,QAAQ,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AACpD,QAAQ,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM;AAC9C,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,aAAa,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AACrD,QAAQ,MAAM,QAAQ,GAAGA,QAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAChI,QAAQ,IAAI,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;AACvC,QAAQ,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;AACtD,QAAQ,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM;AACzC;AACA,IAAI,aAAa,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AACrD,QAAQ,MAAM,MAAM,GAAGA,QAAM,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;AACvH,YAAY,aAAa,EAAE,CAAC,SAAS,CAAC,SAAS,IAAI,GAAG,KAAK,CAAC;AAC5D,SAAS,CAAC;AACV,QAAQ,IAAI,SAAS,CAAC,cAAc,EAAE;AACtC,YAAY,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;AAClE;AACA,QAAQ,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AACrC,QAAQ,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;AACzE,QAAQ,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM;AAC9C,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,aAAa,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AACrD,QAAQ,MAAM,SAAS,GAAG,CAAC,SAAS,CAAC,SAAS,IAAI,GAAG,KAAK,CAAC;AAC3D,QAAQ,MAAM,QAAQ,GAAGA,QAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;AAC5H,YAAY,aAAa,EAAE,SAAS;AACpC,SAAS,CAAC;AACV,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;AAC1D,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;AACvD,QAAQ,IAAI,SAAS,CAAC,cAAc,EAAE;AACtC,YAAY,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;AACpE;AACA,QAAQ,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC;AAChC,QAAQ,IAAI,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC;AACtC,QAAQ,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;AACtD,QAAQ,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM;AACzC;AACA,IAAI,aAAa,YAAY,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AACpD,QAAQ,MAAM,MAAM,GAAGA,QAAM,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;AAC5G,QAAQ,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AACrC,QAAQ,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AACpD,QAAQ,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM;AACzC;AACA,IAAI,aAAa,YAAY,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AACpD,QAAQ,MAAM,QAAQ,GAAGA,QAAM,CAAC,gBAAgB,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;AAChH,QAAQ,IAAI,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;AACvC,QAAQ,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;AACtD,QAAQ,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM;AACzC;AACA,IAAI,aAAa,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AACrD,QAAQ,MAAM,MAAM,GAAGA,QAAM,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AAC5G,QAAQ,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AACrC,QAAQ,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AACpD,QAAQ,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM;AAC9C,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,aAAa,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AACrD,QAAQ,MAAM,QAAQ,GAAGA,QAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AAChH,QAAQ,IAAI,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;AACvC,QAAQ,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;AACtD,QAAQ,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM;AACzC;AACA;AACA,SAAS,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC;;AAE9D,MAAM,UAAU,GAAG,IAAI,OAAO,EAAE;AAChC,SAAS,YAAY,CAAC,GAAG,EAAE;AAC3B,IAAI,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;AACnC,IAAI,IAAI,CAAC,GAAG,EAAE;AACd,QAAQ,MAAM,IAAIC,cAAmB,CAAC,0CAA0C,CAAC;AACjF;AACA,IAAI,OAAO,GAAG;AACd;AACA,SAAS,YAAY,CAAC,KAAK,EAAE;AAC7B,IAAI,MAAM,GAAG,GAAGH,WAAc,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC;AACnG,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;AACtB,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;AAC9B,IAAI,OAAO,GAAG;AACd;;AAEA,MAAM,cAAc,SAASI,gBAAmB,CAAC;AACjD,IAAI,MAAM,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC3D,QAAQ,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC;AAChD,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;AAC3B,YAAY,MAAM,EAAE,SAAS,CAAC,MAAM;AACpC,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;AAClC,QAAQ,OAAO,YAAY,CAAC,GAAG,CAAC;AAChC;AACA,IAAI,MAAM,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AAC1C,QAAQ,OAAO,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AACpF;AACA,IAAI,MAAM,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AAC1C,QAAQ,OAAO,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AACpF;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE;AACnC,QAAQ,OAAO,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;AAC7D;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC1E,QAAQ,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC;AAChH,QAAQ,OAAO,YAAY,CAAC,GAAG,CAAC;AAChC;AACA,IAAI,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE;AAClC,QAAQ,KAAK,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC3C,QAAQ,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,YAAY,YAAY,CAAC,EAAE;AAC1D,YAAY,MAAM,IAAI,SAAS,CAAC,4BAA4B,CAAC;AAC7D;AACA;AACA;;AAEA,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,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,CAAC,CAAC;AAC5E,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,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,GAAG,CAAC,CAAC;AAC5E,MAAM,SAAS,GAAG,EAAE;AACpB,SAAS,YAAY,CAAC,MAAM,EAAE;AAC9B,IAAI,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;AACjD,IAAI,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;AAClC,IAAI,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE;AAC/C,QAAQ,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AAC3C,QAAQ,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE;AACtC,YAAY,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI;AAClC;AACA;AACA,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AACrC,IAAI,OAAO,OAAO;AAClB;AACA,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE;AACnB,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;AAC/C,IAAI,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;AACzC,IAAI,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE;AACjD,QAAQ,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AAC3C;AACA,IAAI,OAAO,MAAM;AACjB;AACA,SAAS,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE;AAC3B,IAAI,MAAM,MAAM,GAAGF,QAAM,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC;AAC5E,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;AACzC,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,IAAI,OAAO,MAAM;AACjB;AACA,SAAS,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE;AAC9C,IAAI,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC;AAC3C,IAAI,MAAM,KAAK,GAAG,UAAU,GAAG,SAAS;AACxC,IAAI,MAAM,GAAG,GAAG,KAAK,GAAG,SAAS;AACjC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC;AACtC,IAAI,OAAO,KAAK;AAChB;AACA,SAAS,qBAAqB,CAAC,OAAO,EAAE,UAAU,EAAE;AACpD,IAAI,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC;AAC3C,IAAI,MAAM,KAAK,GAAG,UAAU,GAAG,SAAS;AACxC,IAAI,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM;AAC9B,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC;AACtC,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI;AAC7B,IAAI,OAAO,KAAK;AAChB;AACA,SAAS,eAAe,CAAC,GAAG,EAAE;AAC9B,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;AAC5B,IAAI,IAAI,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC;AACjC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE;AACrB,QAAQ,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;AAClC;AACA,IAAI,IAAI,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;AACvC,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE;AAC3B,QAAQ,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;AAClC;AACA,IAAI,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE;AAC/B;AACA,SAAS,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE;AAC/B,IAAI,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC;AACxC,IAAI,IAAI,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;AAC1D,IAAI,IAAI,qBAAqB;AAC7B,IAAI,IAAI,SAAS;AACjB,IAAI,IAAI,UAAU,KAAK,CAAC,EAAE;AAC1B,QAAQ,UAAU,GAAG,CAAC;AACtB,QAAQ,qBAAqB,GAAG,KAAK;AACrC;AACA,SAAS;AACT,QAAQ,qBAAqB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,KAAK,CAAC,CAAC;AAClE;AACA,IAAI,MAAM,cAAc,GAAG,UAAU,GAAG,CAAC;AACzC,IAAI,IAAI,qBAAqB,EAAE;AAC/B,QAAQ,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC;AAClF;AACA,SAAS;AACT,QAAQ,SAAS,GAAG,GAAG,CAAC,qBAAqB,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC;AACxF;AACA,IAAI,IAAI,CAAC,GAAG,IAAI;AAChB,IAAI,IAAI,CAAC;AACT,IAAI,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,cAAc,EAAE,KAAK,EAAE,EAAE;AACzD,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACnD,QAAQ,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;AACvB;AACA,IAAI,CAAC,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;AACzB,IAAI,OAAO,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;AACtB;AACA,MAAM,eAAe,SAASG,iBAAoB,CAAC;AACnD,IAAI,MAAM,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC3D,QAAQ,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC;AAChD,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;AAC3B,YAAY,MAAM,EAAE,SAAS,CAAC,MAAM;AACpC,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;AAClC,QAAQ,OAAO,YAAY,CAAC,GAAG,CAAC;AAChC;AACA,IAAI,MAAM,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AACvC,QAAQ,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3E,QAAQ,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM;AAC5C;AACA,IAAI,MAAM,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE;AACpD,QAAQ,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC;AAChE,QAAQ,OAAO,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC;AAChF;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE;AACnC,QAAQ,OAAO,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;AAC7D;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC1E,QAAQ,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC;AAChH,QAAQ,OAAO,YAAY,CAAC,GAAG,CAAC;AAChC;AACA,IAAI,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE;AAClC,QAAQ,KAAK,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC3C,QAAQ,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,YAAY,YAAY,CAAC,EAAE;AAC1D,YAAY,MAAM,IAAI,SAAS,CAAC,4BAA4B,CAAC;AAC7D;AACA;AACA;;AAEA,MAAM,cAAc,SAASC,gBAAmB,CAAC;AACjD,IAAI,MAAM,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC3D,QAAQ,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC;AAChD,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;AAC3B,YAAY,MAAM,EAAE,SAAS,CAAC,MAAM;AACpC,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;AAClC,QAAQ,OAAO,YAAY,CAAC,GAAG,CAAC;AAChC;AACA,IAAI,MAAM,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AAC1C,QAAQ,OAAO,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AACpF;AACA,IAAI,MAAM,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AAC1C,QAAQ,OAAO,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AACpF;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE;AACnC,QAAQ,OAAO,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;AAC7D;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC1E,QAAQ,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC;AAChH,QAAQ,OAAO,YAAY,CAAC,GAAG,CAAC;AAChC;AACA,IAAI,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE;AAClC,QAAQ,KAAK,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC3C,QAAQ,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,YAAY,YAAY,CAAC,EAAE;AAC1D,YAAY,MAAM,IAAI,SAAS,CAAC,4BAA4B,CAAC;AAC7D;AACA;AACA;;AAEA,MAAM,cAAc,SAASC,gBAAmB,CAAC;AACjD,IAAI,MAAM,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC3D,QAAQ,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC;AAChD,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;AAC3B,YAAY,MAAM,EAAE,SAAS,CAAC,MAAM;AACpC,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;AAClC,QAAQ,OAAO,YAAY,CAAC,GAAG,CAAC;AAChC;AACA,IAAI,MAAM,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AAC1C,QAAQ,OAAO,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AACpF;AACA,IAAI,MAAM,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AAC1C,QAAQ,OAAO,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AACpF;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE;AACnC,QAAQ,OAAO,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;AAC7D;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC1E,QAAQ,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC;AAChH,QAAQ,OAAO,YAAY,CAAC,GAAG,CAAC;AAChC;AACA,IAAI,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE;AAClC,QAAQ,KAAK,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC3C,QAAQ,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,YAAY,YAAY,CAAC,EAAE;AAC1D,YAAY,MAAM,IAAI,SAAS,CAAC,4BAA4B,CAAC;AAC7D;AACA;AACA;;AAEA,MAAM,aAAa,SAASC,eAAkB,CAAC;AAC/C,IAAI,MAAM,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC3D,QAAQ,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC;AAChD,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;AAC3B,YAAY,MAAM,EAAE,SAAS,CAAC,MAAM;AACpC,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;AAClC,QAAQ,OAAO,YAAY,CAAC,GAAG,CAAC;AAChC;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE;AACnC,QAAQ,OAAO,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;AAC7D;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC1E,QAAQ,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC;AAChH,QAAQ,OAAO,YAAY,CAAC,GAAG,CAAC;AAChC;AACA,IAAI,MAAM,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AAC1C,QAAQ,OAAO,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AACpF;AACA,IAAI,MAAM,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AAC1C,QAAQ,OAAO,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AACpF;AACA,IAAI,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE;AAClC,QAAQ,KAAK,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC3C,QAAQ,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,YAAY,YAAY,CAAC,EAAE;AAC1D,YAAY,MAAM,IAAI,SAAS,CAAC,4BAA4B,CAAC;AAC7D;AACA;AACA;;AAEA,MAAM,cAAc,SAASC,gBAAmB,CAAC;AACjD,IAAI,MAAM,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC3D,QAAQ,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC;AAChD,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;AAC3B,YAAY,MAAM,EAAE,SAAS,CAAC,MAAM;AACpC,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;AAClC,QAAQ,OAAO,YAAY,CAAC,GAAG,CAAC;AAChC;AACA,IAAI,MAAM,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AAC1C,QAAQ,OAAO,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AACpF;AACA,IAAI,MAAM,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AAC1C,QAAQ,OAAO,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AACpF;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE;AACnC,QAAQ,OAAO,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;AAC7D;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC1E,QAAQ,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC;AAChH,QAAQ,OAAO,YAAY,CAAC,GAAG,CAAC;AAChC;AACA,IAAI,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE;AAClC,QAAQ,KAAK,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC3C,QAAQ,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,YAAY,YAAY,CAAC,EAAE;AAC1D,YAAY,MAAM,IAAI,SAAS,CAAC,4BAA4B,CAAC;AAC7D;AACA;AACA;;AAEA,MAAM,YAAY,SAAS,YAAY,CAAC;AACxC,IAAI,IAAI,GAAG,GAAG;AACd,QAAQ,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE;AACjD,YAAY,KAAK,SAAS;AAC1B,gBAAgB,OAAO,CAAC,OAAO,CAAC;AAChC,YAAY,KAAK,cAAc;AAC/B,gBAAgB,OAAO,CAAC,QAAQ,CAAC;AACjC,YAAY;AACZ,gBAAgB,MAAM,IAAIR,cAAmB,CAAC,4BAA4B,CAAC;AAC3E;AACA;AACA,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE;AACnB;AACA;AACA,UAAU,CAAC;AACX,IAAI,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,sBAAsB,EAAE;AAC7D,CAAC,EAAE,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;;AAE1C,MAAM,SAAS,CAAC;AAChB,IAAI,aAAa,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAChE,QAAQ,MAAM,GAAG,GAAG,IAAI,YAAY,EAAE;AACtC,QAAQ,GAAG,CAAC,SAAS,GAAG,SAAS;AACjC,QAAQ,GAAG,CAAC,WAAW,GAAG,WAAW;AACrC,QAAQ,GAAG,CAAC,MAAM,GAAG,SAAS;AAC9B,QAAQ,GAAG,CAAC,IAAI,GAAGC,QAAM,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC;AAC5D,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,aAAa,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE;AACxC,QAAQ,QAAQ,MAAM,CAAC,WAAW,EAAE;AACpC,YAAY,KAAK,KAAK;AACtB,gBAAgB,OAAO,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC;AACjD,YAAY,KAAK,KAAK;AACtB,gBAAgB,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM;AACtD,YAAY;AACZ,gBAAgB,MAAM,IAAIC,cAAmB,CAAC,gCAAgC,CAAC;AAC/E;AACA;AACA,IAAI,aAAa,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC/E,QAAQ,IAAI,GAAG;AACf,QAAQ,QAAQ,MAAM,CAAC,WAAW,EAAE;AACpC,YAAY,KAAK,KAAK;AACtB,gBAAgB,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;AAClF,gBAAgB;AAChB,YAAY,KAAK,KAAK;AACtB,gBAAgB,GAAG,GAAG,IAAI,YAAY,EAAE;AACxC,gBAAgB,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AACjD,gBAAgB;AAChB,YAAY;AACZ,gBAAgB,MAAM,IAAIA,cAAmB,CAAC,gCAAgC,CAAC;AAC/E;AACA,QAAQ,GAAG,CAAC,SAAS,GAAG,SAAS;AACjC,QAAQ,GAAG,CAAC,WAAW,GAAG,WAAW;AACrC,QAAQ,GAAG,CAAC,MAAM,GAAG,SAAS;AAC9B,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,aAAa,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AAC/C,QAAQ,QAAQ,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE;AAC5C,YAAY,KAAK,SAAS;AAC1B,gBAAgB,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9E,YAAY,KAAK,cAAc;AAC/B,gBAAgB,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClF,YAAY;AACZ,gBAAgB,MAAM,IAAIA,cAAmB,CAAC,8BAA8B,CAAC;AAC7E;AACA;AACA,IAAI,aAAa,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AAC/C,QAAQ,IAAI,EAAE,GAAG,YAAY,YAAY,CAAC,EAAE;AAC5C,YAAY,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;AACvD;AACA,QAAQ,QAAQ,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE;AAC5C,YAAY,KAAK,SAAS;AAC1B,gBAAgB,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9E,YAAY,KAAK,cAAc;AAC/B,gBAAgB,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClF,YAAY;AACZ,gBAAgB,MAAM,IAAIA,cAAmB,CAAC,8BAA8B,CAAC;AAC7E;AACA;AACA,IAAI,aAAa,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AACrD,QAAQ,MAAM,MAAM,GAAGD,QAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AAC/F,QAAQ,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AACrC,QAAQ,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AACpD,QAAQ,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM;AAC9C,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,aAAa,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AACrD,QAAQ,MAAM,QAAQ,GAAGA,QAAM,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AACnG,QAAQ,IAAI,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;AACvC,QAAQ,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;AACtD,QAAQ,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM;AACzC;AACA,IAAI,aAAa,iBAAiB,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AACzD,QAAQ,MAAM,MAAM,GAAGA,QAAM,CAAC,cAAc,CAAC,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AACnG,QAAQ,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AACrC,QAAQ,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AACpD,QAAQ,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM;AAC9C,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,aAAa,iBAAiB,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AACzD,QAAQ,MAAM,QAAQ,GAAGA,QAAM,CAAC,gBAAgB,CAAC,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AACxG,QAAQ,IAAI,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;AACvC,QAAQ,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;AACtD,QAAQ,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM;AACzC;AACA;;AAEA,MAAM,cAAc,SAASQ,WAAgB,CAAC;AAC9C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,WAAW,GAAG,EAAE;AAC7B,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC;AACvB,QAAQ,IAAI,CAAC,IAAI,GAAG,SAAS;AAC7B;AACA,IAAI,MAAM,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC3D,QAAQ,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC;AAChD,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;AAC3B,YAAY,MAAM,EAAE,IAAI,CAAC,WAAW;AACpC,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;AAClC,QAAQ,OAAO,YAAY,CAAC,GAAG,CAAC;AAChC;AACA,IAAI,MAAM,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AAC1C,QAAQ,OAAO,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AACpF;AACA,IAAI,MAAM,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AAC1C,QAAQ,OAAO,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AACpF;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE;AACnC,QAAQ,OAAO,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;AAC7D;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC1E,QAAQ,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC;AACrI,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,MAAM,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,EAAE;AACzD,YAAY,MAAM,IAAIP,cAAmB,CAAC,yBAAyB,CAAC;AACpE;AACA,QAAQ,OAAO,YAAY,CAAC,GAAG,CAAC;AAChC;AACA,IAAI,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE;AAClC,QAAQ,KAAK,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC3C,QAAQ,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,YAAY,YAAY,CAAC,EAAE;AAC1D,YAAY,MAAM,IAAI,SAAS,CAAC,4BAA4B,CAAC;AAC7D;AACA;AACA;;AAEA,MAAM,kBAAkB,SAASO,WAAgB,CAAC;AAClD,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,WAAW,GAAG,GAAG;AAC9B,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC;AACvB,QAAQ,IAAI,CAAC,IAAI,GAAG,cAAc;AAClC;AACA,IAAI,MAAM,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC3D,QAAQ,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC;AAChD,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;AAC3B,YAAY,MAAM,EAAE,IAAI,CAAC,WAAW;AACpC,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;AAClC,QAAQ,OAAO,YAAY,CAAC,GAAG,CAAC;AAChC;AACA,IAAI,MAAM,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AAC1C,QAAQ,OAAO,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AACpF;AACA,IAAI,MAAM,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AAC1C,QAAQ,OAAO,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AACpF;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE;AACnC,QAAQ,OAAO,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;AAC7D;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC1E,QAAQ,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC;AACrI,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,MAAM,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,EAAE;AACzD,YAAY,MAAM,IAAIP,cAAmB,CAAC,yBAAyB,CAAC;AACpE;AACA,QAAQ,OAAO,YAAY,CAAC,GAAG,CAAC;AAChC;AACA,IAAI,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE;AAClC,QAAQ,KAAK,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC3C,QAAQ,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,YAAY,YAAY,CAAC,EAAE;AAC1D,YAAY,MAAM,IAAI,SAAS,CAAC,4BAA4B,CAAC;AAC7D;AACA;AACA;;AAEA,SAAS,eAAe,CAAC,SAAS,EAAE;AACpC,IAAI,QAAQ,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE;AACxC,QAAQ,KAAK,UAAU,EAAE;AACzB,YAAY,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChE,YAAY,OAAO,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AAClE;AACA,QAAQ,KAAK,mBAAmB;AAChC,YAAY,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,QAAQ,KAAK,SAAS;AACtB,YAAY,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,QAAQ,KAAK,WAAW;AACxB,YAAY,OAAO,CAAC,GAAG,CAAC;AACxB,QAAQ;AACR,YAAY,MAAM,IAAIA,cAAmB,CAAC,8BAA8B,CAAC;AACzE;AACA;;AAEA,MAAM,aAAa,SAAS,aAAa,CAAC;AAC1C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,SAAS;AAC7B;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAEQ,OAAS,CAAC,cAAc,CAAC;AAC5E,QAAQ,OAAO,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAEA,OAAS,CAAC,aAAa,CAAC;AAC3E;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;AACjC,QAAQ,MAAM,IAAI,GAAG;AACrB,YAAY,GAAG,EAAE,KAAK;AACtB,YAAY,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC;AAChD,YAAY,OAAO,EAAE,IAAI,CAAC,MAAM;AAChC,YAAY,GAAG,EAAE,IAAI,CAAC,WAAW;AACjC,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC9D;AACA,IAAI,QAAQ,CAAC,IAAI,EAAE;AACnB,QAAQ,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,YAAY,EAAEA,OAAS,CAAC,aAAa,EAAE,CAAC;AACxF,QAAQ,MAAM,OAAO,GAAG,IAAIA,OAAS,CAAC,cAAc,EAAE;AACtD,QAAQ,OAAO,CAAC,mBAAmB,CAAC,SAAS,GAAG,sBAAsB;AACtE,QAAQ,OAAO,CAAC,mBAAmB,CAAC,UAAU,GAAG,IAAI;AACrD,QAAQ,OAAO,CAAC,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC;AACzD,QAAQ,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACnE;AACA;;AAEA,MAAM,YAAY,SAAS,aAAa,CAAC;AACzC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,QAAQ;AAC5B;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAEA,OAAS,CAAC,aAAa,CAAC;AAC3E,QAAQ,OAAO,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAEA,OAAS,CAAC,YAAY,CAAC;AACzE;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;AACjC,QAAQ,MAAM,IAAI,GAAG;AACrB,YAAY,GAAG,EAAE,KAAK;AACtB,YAAY,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC;AAChD,YAAY,OAAO,EAAE,IAAI,CAAC,MAAM;AAChC,YAAY,GAAG,EAAE,IAAI,CAAC,WAAW;AACjC,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC9D;AACA,IAAI,QAAQ,CAAC,IAAI,EAAE;AACnB,QAAQ,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,YAAY,EAAEA,OAAS,CAAC,YAAY,EAAE,CAAC;AACvF,QAAQ,MAAM,OAAO,GAAG,IAAIA,OAAS,CAAC,aAAa,EAAE;AACrD,QAAQ,OAAO,CAAC,kBAAkB,CAAC,SAAS,GAAG,sBAAsB;AACrE,QAAQ,OAAO,CAAC,kBAAkB,CAAC,UAAU,GAAG,IAAI;AACpD,QAAQ,OAAO,CAAC,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC;AACxD,QAAQ,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACnE;AACA;;AAEA,MAAM,SAAS,CAAC;AAChB,IAAI,aAAa,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAChE,QAAQ,MAAM,UAAU,GAAG,IAAI,aAAa,EAAE;AAC9C,QAAQ,UAAU,CAAC,SAAS,GAAG,SAAS;AACxC,QAAQ,UAAU,CAAC,WAAW,GAAG,WAAW;AAC5C,QAAQ,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACpG,QAAQ,MAAM,SAAS,GAAG,IAAI,YAAY,EAAE;AAC5C,QAAQ,SAAS,CAAC,SAAS,GAAG,SAAS;AACvC,QAAQ,SAAS,CAAC,WAAW,GAAG,IAAI;AACpC,QAAQ,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAClG,QAAQ,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC/C,YAAY,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC;AACtE,YAAY,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;AACnD,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;AACzB,QAAQ,MAAM,IAAI,GAAGT,QAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE;AACvD,YAAY,aAAa,EAAE,SAAS,CAAC,aAAa;AAClD,YAAY,cAAc;AAC1B,YAAY,iBAAiB,EAAE;AAC/B,gBAAgB,MAAM,EAAE,KAAK;AAC7B,gBAAgB,IAAI,EAAE,MAAM;AAC5B,aAAa;AACb,YAAY,kBAAkB,EAAE;AAChC,gBAAgB,MAAM,EAAE,KAAK;AAC7B,gBAAgB,IAAI,EAAE,OAAO;AAC7B,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU;AACzC,QAAQ,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS;AACvC,QAAQ,MAAM,GAAG,GAAG;AACpB,YAAY,UAAU;AACtB,YAAY,SAAS;AACrB,SAAS;AACT,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,aAAa,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE;AACxC,QAAQ,QAAQ,MAAM,CAAC,WAAW,EAAE;AACpC,YAAY,KAAK,KAAK;AACtB,gBAAgB,OAAO,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC;AACjD,YAAY,KAAK,OAAO;AACxB,YAAY,KAAK,MAAM;AACvB,gBAAgB,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM;AACtD,YAAY;AACZ,gBAAgB,MAAM,IAAIC,cAAmB,CAAC,0CAA0C,CAAC;AACzF;AACA;AACA,IAAI,aAAa,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC/E,QAAQ,QAAQ,MAAM,CAAC,WAAW,EAAE;AACpC,YAAY,KAAK,KAAK,EAAE;AACxB,gBAAgB,MAAM,GAAG,GAAG,OAAO;AACnC,gBAAgB,IAAI,GAAG,CAAC,CAAC,EAAE;AAC3B,oBAAoB,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,YAAY,EAAEQ,OAAS,CAAC,aAAa,EAAE,CAAC;AAC1G,oBAAoB,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;AAC3F;AACA,qBAAqB;AACrB,oBAAoB,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,YAAY,EAAEA,OAAS,CAAC,YAAY,EAAE,CAAC;AACzG,oBAAoB,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;AAC1F;AACA;AACA,YAAY,KAAK,MAAM,EAAE;AACzB,gBAAgB,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,EAAEA,OAAS,CAAC,aAAa,CAAC;AACjG,gBAAgB,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAEA,OAAS,CAAC,YAAY,CAAC;AACzF,gBAAgB,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;AACtF;AACA,YAAY,KAAK,OAAO,EAAE;AAC1B,gBAAgB,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,EAAEA,OAAS,CAAC,cAAc,CAAC;AAClG,gBAAgB,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAEA,OAAS,CAAC,aAAa,CAAC;AAC3F,gBAAgB,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;AACvF;AACA,YAAY;AACZ,gBAAgB,MAAM,IAAIR,cAAmB,CAAC,0CAA0C,CAAC;AACzF;AACA;AACA,IAAI,aAAa,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AAC5C,QAAQ,QAAQ,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE;AAC5C,YAAY,KAAK,SAAS;AAC1B,YAAY,KAAK,mBAAmB;AACpC,gBAAgB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC;AACzD,YAAY;AACZ,gBAAgB,MAAM,IAAIA,cAAmB,CAAC,8BAA8B,CAAC;AAC7E;AACA;AACA,IAAI,aAAa,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE;AACzD,QAAQ,QAAQ,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE;AAC5C,YAAY,KAAK,SAAS;AAC1B,YAAY,KAAK,mBAAmB;AACpC,gBAAgB,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC;AACtE,YAAY;AACZ,gBAAgB,MAAM,IAAIA,cAAmB,CAAC,8BAA8B,CAAC;AAC7E;AACA;AACA,IAAI,aAAa,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AAC/C,QAAQ,QAAQ,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE;AAC5C,YAAY,KAAK,UAAU;AAC3B,gBAAgB,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC;AAC7D,YAAY;AACZ,gBAAgB,MAAM,IAAIA,cAAmB,CAAC,8BAA8B,CAAC;AAC7E;AACA;AACA,IAAI,aAAa,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AAC/C,QAAQ,QAAQ,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE;AAC5C,YAAY,KAAK,UAAU;AAC3B,gBAAgB,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC;AAC7D,YAAY;AACZ,gBAAgB,MAAM,IAAIA,cAAmB,CAAC,8BAA8B,CAAC;AAC7E;AACA;AACA,IAAI,OAAO,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AACvE,QAAQ,MAAM,OAAO,GAAG,IAAIQ,OAAS,CAAC,cAAc,EAAE;AACtD,QAAQ,OAAO,CAAC,mBAAmB,CAAC,SAAS,GAAG,sBAAsB;AACtE,QAAQ,OAAO,CAAC,mBAAmB,CAAC,UAAU,GAAG,IAAI;AACrD,QAAQ,OAAO,CAAC,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC;AAC5D,QAAQ,MAAM,GAAG,GAAG,IAAI,aAAa,EAAE;AACvC,QAAQ,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAClE,QAAQ,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC;AACpD,QAAQ,GAAG,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC;AAC5E,QAAQ,GAAG,CAAC,SAAS,CAAC,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC;AACpE,QAAQ,GAAG,CAAC,WAAW,GAAG,WAAW;AACrC,QAAQ,GAAG,CAAC,MAAM,GAAG,SAAS;AAC9B,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,OAAO,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AACtE,QAAQ,MAAM,OAAO,GAAG,IAAIA,OAAS,CAAC,aAAa,EAAE;AACrD,QAAQ,OAAO,CAAC,kBAAkB,CAAC,SAAS,GAAG,sBAAsB;AACrE,QAAQ,OAAO,CAAC,kBAAkB,CAAC,UAAU,GAAG,IAAI;AACpD,QAAQ,OAAO,CAAC,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC;AAC3D,QAAQ,MAAM,GAAG,GAAG,IAAI,YAAY,EAAE;AACtC,QAAQ,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAClE,QAAQ,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC;AACpD,QAAQ,GAAG,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC;AAC5E,QAAQ,GAAG,CAAC,SAAS,CAAC,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC;AACpE,QAAQ,GAAG,CAAC,WAAW,GAAG,WAAW;AACrC,QAAQ,GAAG,CAAC,MAAM,GAAG,SAAS;AAC9B,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,OAAO,kBAAkB,CAAC,GAAG,EAAE;AACnC,QAAQ,QAAQ,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AAC3C,YAAY,KAAK,OAAO;AACxB,gBAAgB,OAAO,UAAU;AACjC,YAAY,KAAK,SAAS;AAC1B,gBAAgB,OAAO,YAAY;AACnC,YAAY,KAAK,SAAS;AAC1B,gBAAgB,OAAO,YAAY;AACnC,YAAY,KAAK,SAAS;AAC1B,gBAAgB,OAAO,YAAY;AACnC,YAAY,KAAK,UAAU;AAC3B,gBAAgB,OAAO,cAAc;AACrC,YAAY,KAAK,UAAU;AAC3B,gBAAgB,OAAO,cAAc;AACrC,YAAY,KAAK,UAAU;AAC3B,gBAAgB,OAAO,cAAc;AACrC,YAAY;AACZ,gBAAgB,MAAM,IAAIR,cAAmB,CAAC,mCAAmC,CAAC;AAClF;AACA;AACA,IAAI,OAAO,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AACzC,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC;AAChE,QAAQ,MAAM,MAAM,GAAGD,QAAM,CAAC,UAAU,CAAC,SAAS,CAAC;AACnD,QAAQ,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1C,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;AACtB,YAAY,GAAG,CAAC,GAAG,GAAG,CAAC,6BAA6B,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,2BAA2B,CAAC;AAC9G;AACA,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,GAAG,EAAE,GAAG,CAAC,GAAG;AACxB,SAAS;AACT,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,SAAS,EAAE;AACxD,YAAY,OAAO,CAAC,OAAO,GAAGA,QAAM,CAAC,SAAS,CAAC,qBAAqB;AACpE,YAAY,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU;AACrD;AACA,QAAQ,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AAC9C,QAAQ,OAAO,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM;AAC/C;AACA,IAAI,OAAO,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE;AACtD,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC;AAChE,QAAQ,MAAM,MAAM,GAAGA,QAAM,CAAC,YAAY,CAAC,SAAS,CAAC;AACrD,QAAQ,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1C,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;AACtB,YAAY,GAAG,CAAC,GAAG,GAAG,CAAC,4BAA4B,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,0BAA0B,CAAC;AAC5G;AACA,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,GAAG,EAAE,GAAG,CAAC,GAAG;AACxB,SAAS;AACT,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,SAAS,EAAE;AACxD,YAAY,OAAO,CAAC,OAAO,GAAGA,QAAM,CAAC,SAAS,CAAC,qBAAqB;AACpE,YAAY,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU;AACrD;AACA,QAAQ,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC;AACpD,QAAQ,OAAO,EAAE;AACjB;AACA,IAAI,OAAO,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AAC7C,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,GAAG,EAAE,CAAC,4BAA4B,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,0BAA0B,CAAC;AACvG,YAAY,OAAO,EAAEA,QAAM,CAAC,SAAS,CAAC,sBAAsB;AAC5D,SAAS;AACT,QAAQ,IAAI,SAAS,CAAC,KAAK,EAAE;AAC7B,QAAQ,OAAO,IAAI,UAAU,CAACA,QAAM,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM;AACzE;AACA,IAAI,OAAO,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AAC7C,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,GAAG,EAAE,CAAC,6BAA6B,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,2BAA2B,CAAC;AACzG,YAAY,OAAO,EAAEA,QAAM,CAAC,SAAS,CAAC,sBAAsB;AAC5D,SAAS;AACT,QAAQ,IAAI,SAAS,CAAC,KAAK,EAAE;AAC7B,QAAQ,OAAO,IAAI,UAAU,CAACA,QAAM,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM;AAC1E;AACA;AACA,SAAS,CAAC,eAAe,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC;AAC5D,SAAS,CAAC,gBAAgB,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC;;AAE7D,MAAM,cAAc,SAASU,gBAAmB,CAAC;AACjD,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,cAAc,GAAG;AAC9B,YAAY,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;AACpD,YAAY,UAAU,EAAE,UAAU;AAClC,YAAY,UAAU,EAAE,UAAU,EAAE;AACpC,SAAS;AACT;AACA,IAAI,MAAM,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC3D,QAAQ,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC;AACjD,YAAY,GAAG,SAAS;AACxB,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;AAC3B,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;AAClC,QAAQ,OAAO;AACf,YAAY,UAAU,EAAE,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;AACrD,YAAY,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AACnD,SAAS;AACT;AACA,IAAI,MAAM,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AACvC,QAAQ,OAAO,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AACjF;AACA,IAAI,MAAM,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE;AACpD,QAAQ,OAAO,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AAC9G;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE;AACnC,QAAQ,OAAO,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;AAC7D;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC1E,QAAQ,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC;AACzH,QAAQ,OAAO,YAAY,CAAC,GAAG,CAAC;AAChC;AACA,IAAI,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE;AAClC,QAAQ,KAAK,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC3C,QAAQ,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC;AAC7C,QAAQ,IAAI,EAAE,WAAW,YAAY,aAAa,IAAI,WAAW,YAAY,YAAY,CAAC,EAAE;AAC5F,YAAY,MAAM,IAAI,SAAS,CAAC,2BAA2B,CAAC;AAC5D;AACA;AACA;;AAEA,MAAM,cAAc,SAASC,gBAAmB,CAAC;AACjD,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,cAAc,GAAG;AAC9B,YAAY,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;AACpD,YAAY,UAAU,EAAE,UAAU;AAClC,YAAY,UAAU,EAAE,UAAU,EAAE;AACpC,SAAS;AACT;AACA,IAAI,MAAM,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC3D,QAAQ,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC;AACjD,YAAY,GAAG,SAAS;AACxB,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;AAC3B,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;AAClC,QAAQ,OAAO;AACf,YAAY,UAAU,EAAE,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;AACrD,YAAY,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AACnD,SAAS;AACT;AACA,IAAI,MAAM,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AACvC,QAAQ,OAAO,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AACjF;AACA,IAAI,MAAM,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE;AACpD,QAAQ,OAAO,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AAC9G;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE;AACnC,QAAQ,OAAO,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;AAC7D;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC1E,QAAQ,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC;AACzH,QAAQ,OAAO,YAAY,CAAC,GAAG,CAAC;AAChC;AACA,IAAI,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE;AAClC,QAAQ,KAAK,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC3C,QAAQ,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC;AAC7C,QAAQ,IAAI,EAAE,WAAW,YAAY,aAAa,IAAI,WAAW,YAAY,YAAY,CAAC,EAAE;AAC5F,YAAY,MAAM,IAAI,SAAS,CAAC,2BAA2B,CAAC;AAC5D;AACA;AACA;;AAEA,MAAM,SAAS,CAAC;AAChB,IAAI,OAAO,IAAI,CAAC,SAAS,EAAE;AAC3B,QAAQ,QAAQ,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE;AAC5C,YAAY,KAAK,OAAO;AACxB,gBAAgB,OAAO,GAAG;AAC1B,YAAY,KAAK,SAAS;AAC1B,YAAY,KAAK,UAAU;AAC3B,gBAAgB,OAAO,GAAG;AAC1B,YAAY,KAAK,SAAS;AAC1B,YAAY,KAAK,UAAU;AAC3B,gBAAgB,OAAO,GAAG;AAC1B,YAAY,KAAK,SAAS;AAC1B,YAAY,KAAK,UAAU;AAC3B,gBAAgB,OAAO,GAAG;AAC1B,YAAY;AACZ,gBAAgB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC;AACpD;AACA;AACA,IAAI,OAAO,gBAAgB,CAAC,SAAS,EAAE;AACvC,QAAQ,QAAQ,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE;AAC5C,YAAY,KAAK,OAAO;AACxB,gBAAgB,OAAO,MAAM;AAC7B,YAAY,KAAK,SAAS;AAC1B,gBAAgB,OAAO,QAAQ;AAC/B,YAAY,KAAK,SAAS;AAC1B,gBAAgB,OAAO,QAAQ;AAC/B,YAAY,KAAK,SAAS;AAC1B,gBAAgB,OAAO,QAAQ;AAC/B,YAAY,KAAK,UAAU;AAC3B,gBAAgB,OAAO,UAAU;AACjC,YAAY,KAAK,UAAU;AAC3B,gBAAgB,OAAO,UAAU;AACjC,YAAY,KAAK,UAAU;AAC3B,gBAAgB,OAAO,UAAU;AACjC,YAAY;AACZ,gBAAgB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC;AACpD;AACA;AACA,IAAI,OAAO,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE;AACnC,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;AACxD,QAAQ,MAAM,IAAI,GAAGX,QAAM,CAAC,UAAU,CAAC,OAAO;AAC9C,aAAa,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE;AACjD,QAAQ,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM;AAC1C;AACA;;AAEA,MAAM,eAAe,SAASY,iBAAoB,CAAC;AACnD,IAAI,MAAM,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC3D,QAAQ,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC;AACjD,YAAY,GAAG,SAAS;AACxB,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;AAC3B,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;AAClC,QAAQ,OAAO;AACf,YAAY,UAAU,EAAE,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;AACrD,YAAY,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AACnD,SAAS;AACT;AACA,IAAI,MAAM,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AAC1C,QAAQ,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC;AAC7C,QAAQ,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC;AAC7C,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,aAAa,IAAI,CAAC,CAAC;AAC3E,QAAQ,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;AACxE,QAAQ,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU;AAC9C,QAAQ,MAAM,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC;AAChE,QAAQ,IAAI,UAAU,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,EAAE;AACrD,YAAY,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC;AAC7C;AACA,QAAQ,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC;AAC/C,QAAQ,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC;AACtD,QAAQ,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC;AACxD,QAAQ,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,GAAG,CAAC,CAAC;AACxD,QAAQ,MAAM,SAAS,GAAGZ,QAAM,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;AAC5F,aAAa,MAAM,CAACa,qBAA0B,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AACjG,aAAa,MAAM,EAAE;AACrB,QAAQ,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;AACnC,QAAQ,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC;AAC1C,QAAQb,QAAM,CAAC,cAAc,CAAC,IAAI,CAAC;AACnC,QAAQ,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;AAC3F,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACnD,YAAY,SAAS,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC;AAC5C;AACA,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC;AACtF,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC9C,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC;AAClC;AACA,QAAQ,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;AAC9B,YAAY,WAAW,CAAC,GAAG,GAAG,CAAC,4BAA4B,EAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,0BAA0B,CAAC;AAC5H;AACA,QAAQ,MAAM,KAAK,GAAGA,QAAM,CAAC,aAAa,CAAC;AAC3C,YAAY,GAAG,EAAE,WAAW,CAAC,GAAG;AAChC,YAAY,OAAO,EAAEA,QAAM,CAAC,SAAS,CAAC,cAAc;AACpD,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAClC,QAAQ,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM;AAC3C;AACA,IAAI,MAAM,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AAC1C,QAAQ,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC;AAC7C,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,aAAa,IAAI,CAAC,CAAC;AAC3E,QAAQ,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;AACxE,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU;AAC1C,QAAQ,IAAI,UAAU,KAAK,OAAO,EAAE;AACpC,YAAY,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC;AACvC;AACA,QAAQ,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;AAC9B,YAAY,WAAW,CAAC,GAAG,GAAG,CAAC,6BAA6B,EAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,2BAA2B,CAAC;AAC9H;AACA,QAAQ,IAAI,KAAK,GAAGA,QAAM,CAAC,cAAc,CAAC;AAC1C,YAAY,GAAG,EAAE,WAAW,CAAC,GAAG;AAChC,YAAY,OAAO,EAAEA,QAAM,CAAC,SAAS,CAAC,cAAc;AACpD,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,QAAQ,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;AAC1B,QAAQ,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC;AACpD,QAAQ,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC;AACtD,QAAQ,IAAI,CAAC,KAAK,CAAC,EAAE;AACrB,YAAY,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC;AAChD;AACA,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC;AACtF,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC9C,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC;AAClC;AACA,QAAQ,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;AAC3F,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACnD,YAAY,SAAS,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC;AAC5C;AACA,QAAQ,MAAM,SAAS,GAAGA,QAAM,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;AAC5F,aAAa,MAAM,CAACa,qBAA0B,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AACjG,aAAa,MAAM,EAAE;AACrB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;AAC3C,YAAY,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE;AAC/C,gBAAgB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC;AACpD;AACA;AACA,QAAQ,IAAI,KAAK,GAAG,QAAQ;AAC5B,QAAQ,OAAO,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;AAClD,YAAY,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC;AACxC,YAAY,IAAI,GAAG,KAAK,CAAC,EAAE;AAC3B,gBAAgB;AAChB;AACA,YAAY,IAAI,GAAG,KAAK,CAAC,EAAE;AAC3B,gBAAgB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC;AACpD;AACA;AACA,QAAQ,IAAI,KAAK,KAAK,SAAS,CAAC,MAAM,EAAE;AACxC,YAAY,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC;AAChD;AACA,QAAQ,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;AAC7C,QAAQ,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM;AAC3C;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE;AACnC,QAAQ,OAAO,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;AAC7D;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC1E,QAAQ,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC;AACzH,QAAQ,OAAO,YAAY,CAAC,GAAG,CAAC;AAChC;AACA,IAAI,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE;AAClC,QAAQ,KAAK,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC3C,QAAQ,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC;AAC7C,QAAQ,IAAI,EAAE,WAAW,YAAY,aAAa,IAAI,WAAW,YAAY,YAAY,CAAC,EAAE;AAC5F,YAAY,MAAM,IAAI,SAAS,CAAC,2BAA2B,CAAC;AAC5D;AACA;AACA,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE;AACtC,QAAQ,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AACvD,QAAQ,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC;AAC3C,QAAQ,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC;AACzC,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;AACnD,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,YAAY,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE;AACjC,YAAY,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG;AACzC,YAAY,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG;AACxC,YAAY,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;AAChC,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC;AACvD,YAAY,IAAI,KAAK,GAAGb,QAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;AACzE,iBAAiB,MAAM,CAAC,IAAI;AAC5B,iBAAiB,MAAM,CAAC,OAAO;AAC/B,iBAAiB,MAAM,EAAE;AACzB,YAAY,IAAI,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE;AAC/C,gBAAgB,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;AACzD;AACA,YAAY,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;AAC9B;AACA,QAAQ,OAAO,IAAI;AACnB;AACA;;AAEA,MAAM,aAAa,SAASc,cAAmB,CAAC;AAChD,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,kBAAkB;AACtC,QAAQ,IAAI,CAAC,MAAM,GAAG;AACtB,YAAY,SAAS,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;AAC7C,YAAY,UAAU,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC;AAChD,SAAS;AACT;AACA,IAAI,MAAM,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC3D,QAAQ,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC;AACjD,YAAY,GAAG,SAAS;AACxB,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;AAC3B,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;AAClC,QAAQ,OAAO;AACf,YAAY,UAAU,EAAE,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;AACrD,YAAY,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AACnD,SAAS;AACT;AACA,IAAI,sBAAsB,CAAC,SAAS,EAAE;AACtC,QAAQ,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,gBAAgB,CAAC;AAC/D,QAAQ,IAAI,EAAE,SAAS,CAAC,cAAc,IAAI,SAAS,CAAC,cAAc,YAAY,UAAU,CAAC,EAAE;AAC3F,YAAY,MAAM,IAAI,SAAS,CAAC,6CAA6C,CAAC;AAC9E;AACA,QAAQ,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,cAAc,CAAC;AACzE,QAAQ,IAAI,EAAE,cAAc,KAAK,MAAM,IAAI,cAAc,KAAK,MAAM,CAAC,EAAE;AACvE,YAAY,MAAM,IAAI,SAAS,CAAC,wCAAwC,CAAC;AACzE;AACA,QAAQ,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,eAAe,CAAC;AAC9D,QAAQ,QAAQ,SAAS,CAAC,aAAa;AACvC,YAAY,KAAK,IAAI;AACrB,YAAY,KAAK,IAAI;AACrB,YAAY,KAAK,IAAI;AACrB,gBAAgB;AAChB,YAAY;AACZ,gBAAgB,MAAM,IAAI,SAAS,CAAC,4CAA4C,CAAC;AACjF;AACA;AACA,IAAI,MAAM,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AAC1C,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;AACjD,QAAQ,MAAM,GAAG,GAAGd,QAAM,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AACvE,QAAQ,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM;AACzC;AACA,IAAI,MAAM,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AAC1C,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;AACjD,QAAQ,MAAM,GAAG,GAAGA,QAAM,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AACxE,QAAQ,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM;AACzC;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE;AACnC,QAAQ,OAAO,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;AAC7D;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC1E,QAAQ,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC;AACzH,QAAQ,OAAO,YAAY,CAAC,GAAG,CAAC;AAChC;AACA,IAAI,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE;AAClC,QAAQ,KAAK,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC3C,QAAQ,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC;AAC7C,QAAQ,IAAI,EAAE,WAAW,YAAY,aAAa,IAAI,WAAW,YAAY,YAAY,CAAC,EAAE;AAC5F,YAAY,MAAM,IAAI,SAAS,CAAC,2BAA2B,CAAC;AAC5D;AACA;AACA,IAAI,eAAe,CAAC,GAAG,EAAE;AACzB,QAAQ,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE;AAC3C,QAAQ,OAAO;AACf,YAAY,GAAG,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC;AACvH,YAAY,OAAO,EAAEA,QAAM,CAAC,SAAS,CAAC,iBAAiB;AACvD,SAAS;AACT;AACA;;AAEA,MAAM,SAAS,GAAG;AAClB,IAAI,qBAAqB,EAAE,OAAO;AAClC,IAAI,OAAO,EAAE,qBAAqB;AAClC,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,OAAO,EAAE,cAAc;AAC3B,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,OAAO,EAAE,cAAc;AAC3B,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,OAAO,EAAE,cAAc;AAC3B,IAAI,iBAAiB,EAAE,sBAAsB;AAC7C,IAAI,sBAAsB,EAAE,iBAAiB;AAC7C,IAAI,iBAAiB,EAAE,sBAAsB;AAC7C,IAAI,sBAAsB,EAAE,iBAAiB;AAC7C,IAAI,iBAAiB,EAAE,sBAAsB;AAC7C,IAAI,sBAAsB,EAAE,iBAAiB;AAC7C,IAAI,iBAAiB,EAAE,sBAAsB;AAC7C,IAAI,sBAAsB,EAAE,iBAAiB;AAC7C,IAAI,iBAAiB,EAAE,sBAAsB;AAC7C,IAAI,sBAAsB,EAAE,iBAAiB;AAC7C,IAAI,iBAAiB,EAAE,sBAAsB;AAC7C,IAAI,sBAAsB,EAAE,iBAAiB;AAC7C,IAAI,iBAAiB,EAAE,sBAAsB;AAC7C,IAAI,sBAAsB,EAAE,iBAAiB;AAC7C,IAAI,iBAAiB,EAAE,sBAAsB;AAC7C,IAAI,sBAAsB,EAAE,iBAAiB;AAC7C,IAAI,iBAAiB,EAAE,sBAAsB;AAC7C,IAAI,sBAAsB,EAAE,iBAAiB;AAC7C,IAAI,iBAAiB,EAAE,uBAAuB;AAC9C,IAAI,uBAAuB,EAAE,iBAAiB;AAC9C,IAAI,iBAAiB,EAAE,uBAAuB;AAC9C,IAAI,uBAAuB,EAAE,iBAAiB;AAC9C,IAAI,iBAAiB,EAAE,uBAAuB;AAC9C,IAAI,uBAAuB,EAAE,iBAAiB;AAC9C,IAAI,iBAAiB,EAAE,uBAAuB;AAC9C,IAAI,uBAAuB,EAAE,iBAAiB;AAC9C,IAAI,iBAAiB,EAAE,uBAAuB;AAC9C,IAAI,uBAAuB,EAAE,iBAAiB;AAC9C,CAAC;AACD,SAAS,oBAAoB,CAAC,UAAU,EAAE;AAC1C,IAAI,MAAM,GAAG,GAAG,SAAS,CAAC,UAAU,CAAC;AACrC,IAAI,IAAI,CAAC,GAAG,EAAE;AACd,QAAQ,MAAM,IAAIC,cAAmB,CAAC,CAAC,sCAAsC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;AACpG;AACA,IAAI,OAAO,GAAG;AACd;;AAEA,MAAM,YAAY,SAAS,aAAa,CAAC;AACzC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,SAAS;AAC7B;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAEQ,OAAS,CAAC,cAAc,CAAC;AAC5E,QAAQ,OAAO,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAEA,OAAS,CAAC,YAAY,CAAC;AAC1E;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;AACjC,QAAQ,MAAM,IAAI,GAAG;AACrB,YAAY,GAAG,EAAE,IAAI;AACrB,YAAY,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU;AAC1C,YAAY,OAAO,EAAE,IAAI,CAAC,MAAM;AAChC,YAAY,GAAG,EAAE,IAAI,CAAC,WAAW;AACjC,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC9D;AACA,IAAI,QAAQ,CAAC,IAAI,EAAE;AACnB,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACvB,YAAY,MAAM,IAAIR,cAAmB,CAAC,CAAC,2DAA2D,CAAC,CAAC;AACxG;AACA,QAAQ,MAAM,OAAO,GAAG,IAAIQ,OAAS,CAAC,cAAc,EAAE;AACtD,QAAQ,OAAO,CAAC,mBAAmB,CAAC,SAAS,GAAG,mBAAmB;AACnE,QAAQ,OAAO,CAAC,mBAAmB,CAAC,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,IAAIA,OAAS,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACxI,QAAQ,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,YAAY,EAAEA,OAAS,CAAC,YAAY,EAAE,CAAC;AACvF,QAAQ,OAAO,CAAC,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC;AACzD,QAAQ,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACnE,QAAQ,OAAO,IAAI;AACnB;AACA;;AAEA,MAAM,WAAW,SAAS,aAAa,CAAC;AACxC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,QAAQ;AAC5B;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAEA,OAAS,CAAC,aAAa,CAAC;AAC3E,QAAQ,OAAO,IAAIA,OAAS,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;AAC3D;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;AACjC,QAAQ,MAAM,IAAI,GAAG;AACrB,YAAY,GAAG,EAAE,IAAI;AACrB,YAAY,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU;AAC1C,YAAY,OAAO,EAAE,IAAI,CAAC,MAAM;AAChC,YAAY,GAAG,EAAE,IAAI,CAAC,WAAW;AACjC,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC9D;AACA,IAAI,QAAQ,CAAC,IAAI,EAAE;AACnB,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACvB,YAAY,MAAM,IAAIR,cAAmB,CAAC,CAAC,2DAA2D,CAAC,CAAC;AACxG;AACA,QAAQ,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,YAAY,EAAEQ,OAAS,CAAC,WAAW,EAAE,CAAC;AACtF,QAAQ,MAAM,OAAO,GAAG,IAAIA,OAAS,CAAC,aAAa,EAAE;AACrD,QAAQ,OAAO,CAAC,kBAAkB,CAAC,SAAS,GAAG,mBAAmB;AAClE,QAAQ,OAAO,CAAC,kBAAkB,CAAC,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,IAAIA,OAAS,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACvI,QAAQ,OAAO,CAAC,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ;AAC7D,QAAQ,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACnE,QAAQ,OAAO,IAAI;AACnB;AACA;;AAEA,MAAM,YAAY,SAASK,cAAmB,CAAC;AAC/C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,OAAO;AAC3B,QAAQ,IAAI,CAAC,MAAM,GAAG,EAAE;AACxB;AACA,IAAI,MAAM,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE;AACpC,QAAQ,OAAO,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC;AAChD;AACA;;AAEA,MAAM,cAAc,SAASA,cAAmB,CAAC;AACjD,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,SAAS;AAC7B,QAAQ,IAAI,CAAC,MAAM,GAAG,EAAE;AACxB;AACA,IAAI,MAAM,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE;AACpC,QAAQ,OAAO,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC;AAChD;AACA;;AAEA,MAAM,cAAc,SAASA,cAAmB,CAAC;AACjD,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,SAAS;AAC7B,QAAQ,IAAI,CAAC,MAAM,GAAG,EAAE;AACxB;AACA,IAAI,MAAM,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE;AACpC,QAAQ,OAAO,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC;AAChD;AACA;;AAEA,MAAM,cAAc,SAASA,cAAmB,CAAC;AACjD,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,SAAS;AAC7B,QAAQ,IAAI,CAAC,MAAM,GAAG,EAAE;AACxB;AACA,IAAI,MAAM,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE;AACpC,QAAQ,OAAO,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC;AAChD;AACA;;AAEA,MAAM,eAAe,SAASA,cAAmB,CAAC;AAClD,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,UAAU;AAC9B,QAAQ,IAAI,CAAC,MAAM,GAAG,EAAE;AACxB;AACA,IAAI,MAAM,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE;AACpC,QAAQ,OAAO,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC;AAChD;AACA;;AAEA,MAAM,eAAe,SAASA,cAAmB,CAAC;AAClD,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,UAAU;AAC9B,QAAQ,IAAI,CAAC,MAAM,GAAG,EAAE;AACxB;AACA,IAAI,MAAM,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE;AACpC,QAAQ,OAAO,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC;AAChD;AACA;;AAEA,MAAM,eAAe,SAASA,cAAmB,CAAC;AAClD,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,UAAU;AAC9B,QAAQ,IAAI,CAAC,MAAM,GAAG,EAAE;AACxB;AACA,IAAI,MAAM,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE;AACpC,QAAQ,OAAO,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC;AAChD;AACA;;AAEA,MAAM,QAAQ,CAAC;AACf,IAAI,aAAa,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAChE,QAAQ,MAAM,UAAU,GAAG,IAAI,YAAY,EAAE;AAC7C,QAAQ,UAAU,CAAC,SAAS,GAAG,SAAS;AACxC,QAAQ,UAAU,CAAC,WAAW,GAAG,WAAW;AAC5C,QAAQ,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACpG,QAAQ,MAAM,SAAS,GAAG,IAAI,WAAW,EAAE;AAC3C,QAAQ,SAAS,CAAC,SAAS,GAAG,SAAS;AACvC,QAAQ,SAAS,CAAC,WAAW,GAAG,IAAI;AACpC,QAAQ,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAClG,QAAQ,MAAM,IAAI,GAAGd,QAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE;AACtD,YAAY,UAAU,EAAE,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,UAAU,CAAC;AACvE,YAAY,iBAAiB,EAAE;AAC/B,gBAAgB,MAAM,EAAE,KAAK;AAC7B,gBAAgB,IAAI,EAAE,MAAM;AAC5B,aAAa;AACb,YAAY,kBAAkB,EAAE;AAChC,gBAAgB,MAAM,EAAE,KAAK;AAC7B,gBAAgB,IAAI,EAAE,OAAO;AAC7B,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU;AACzC,QAAQ,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS;AACvC,QAAQ,MAAM,GAAG,GAAG;AACpB,YAAY,UAAU;AACtB,YAAY,SAAS;AACrB,SAAS;AACT,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,aAAa,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AAC5C,QAAQ,MAAM,SAAS,GAAG,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC;AACpE,QAAQ,MAAM,MAAM,GAAGA,QAAM,CAAC,UAAU,CAAC,SAAS,CAAC;AACnD,QAAQ,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1C,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;AACtB,YAAY,GAAG,CAAC,GAAG,GAAG,CAAC,6BAA6B,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,2BAA2B,CAAC;AAC9G;AACA,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,GAAG,EAAE,GAAG,CAAC,GAAG;AACxB,SAAS;AACT,QAAQ,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AAC9C,QAAQ,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,EAAES,OAAS,CAAC,cAAc,CAAC;AAChF,QAAQ,MAAM,YAAY,GAAGM,OAAY,CAAC,eAAe,CAAC,WAAW,EAAEC,QAAa,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;AACxH,QAAQ,OAAO,YAAY,CAAC,MAAM;AAClC;AACA,IAAI,aAAa,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE;AACzD,QAAQ,MAAM,SAAS,GAAG,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC;AACpE,QAAQ,MAAM,MAAM,GAAGhB,QAAM,CAAC,YAAY,CAAC,SAAS,CAAC;AACrD,QAAQ,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1C,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;AACtB,YAAY,GAAG,CAAC,GAAG,GAAG,CAAC,4BAA4B,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,0BAA0B,CAAC;AAC5G;AACA,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,GAAG,EAAE,GAAG,CAAC,GAAG;AACxB,SAAS;AACT,QAAQ,MAAM,WAAW,GAAG,IAAIS,OAAS,CAAC,cAAc,EAAE;AAC1D,QAAQ,MAAM,UAAU,GAAGO,QAAa,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC;AACtE,QAAQ,MAAM,cAAc,GAAGD,OAAY,CAAC,eAAe,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC;AACvF,QAAQ,WAAW,CAAC,CAAC,GAAG,qBAAqB,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC;AAC7E,QAAQ,WAAW,CAAC,CAAC,GAAG,qBAAqB,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC;AAC7E,QAAQ,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;AAClF,QAAQ,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC;AACzD,QAAQ,OAAO,EAAE;AACjB;AACA,IAAI,aAAa,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE;AACxD,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC;AACjF,QAAQ,MAAM,IAAI,GAAGf,QAAM,CAAC,UAAU,CAAC,SAAS,CAAC;AACjD,QAAQ,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAES,OAAS,CAAC,cAAc,CAAC;AACrF,QAAQ,MAAM,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,EAAEA,OAAS,CAAC,YAAY,CAAC;AACjG,QAAQ,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;AACrE,QAAQ,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAEA,OAAS,CAAC,aAAa,CAAC;AAC5F,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;AAC9E,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE;AAC7B,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;AAChE;AACA,IAAI,aAAa,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE;AACxC,QAAQ,QAAQ,MAAM,CAAC,WAAW,EAAE;AACpC,YAAY,KAAK,KAAK;AACtB,gBAAgB,OAAO,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC;AACjD,YAAY,KAAK,OAAO;AACxB,YAAY,KAAK,MAAM;AACvB,gBAAgB,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM;AACtD,YAAY,KAAK,KAAK,EAAE;AACxB,gBAAgB,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAEA,OAAS,CAAC,aAAa,CAAC;AACxF,gBAAgB,OAAO,aAAa,CAAC,SAAS;AAC9C;AACA,YAAY;AACZ,gBAAgB,MAAM,IAAIR,cAAmB,CAAC,gDAAgD,CAAC;AAC/F;AACA;AACA,IAAI,aAAa,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC/E,QAAQ,QAAQ,MAAM,CAAC,WAAW,EAAE;AACpC,YAAY,KAAK,KAAK,EAAE;AACxB,gBAAgB,MAAM,GAAG,GAAG,OAAO;AACnC,gBAAgB,IAAI,GAAG,CAAC,CAAC,EAAE;AAC3B,oBAAoB,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,YAAY,EAAEQ,OAAS,CAAC,YAAY,EAAE,CAAC;AACzG,oBAAoB,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;AAC3F;AACA,qBAAqB;AACrB,oBAAoB,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,YAAY,EAAEA,OAAS,CAAC,WAAW,EAAE,CAAC;AACxG,oBAAoB,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;AAC1F;AACA;AACA,YAAY,KAAK,KAAK,EAAE;AACxB,gBAAgB,MAAM,MAAM,GAAG,IAAIA,OAAS,CAAC,WAAW,CAAC,OAAO,CAAC;AACjE,gBAAgB,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;AACtF;AACA,YAAY,KAAK,MAAM,EAAE;AACzB,gBAAgB,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,EAAEA,OAAS,CAAC,aAAa,CAAC;AACjG,gBAAgB,MAAM,MAAM,GAAG,IAAIA,OAAS,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;AAC3E,gBAAgB,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,kBAAkB,CAAC,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC;AACrG,gBAAgB,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;AACtF;AACA,YAAY,KAAK,OAAO,EAAE;AAC1B,gBAAgB,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,EAAEA,OAAS,CAAC,cAAc,CAAC;AAClG,gBAAgB,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAEA,OAAS,CAAC,YAAY,CAAC;AAC1F,gBAAgB,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,mBAAmB,CAAC,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC;AACtG,gBAAgB,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;AACvF;AACA,YAAY;AACZ,gBAAgB,MAAM,IAAIR,cAAmB,CAAC,iDAAiD,CAAC;AAChG;AACA;AACA,IAAI,OAAO,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE;AACvD,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,YAAY,MAAM,IAAIgB,WAAgB,CAAC,2CAA2C,CAAC;AACnF;AACA,QAAQ,IAAI,oBAAoB,GAAG,EAAE;AACrC,QAAQ,IAAI;AACZ,YAAY,oBAAoB,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,EAAER,OAAS,CAAC,gBAAgB,CAAC,CAAC,KAAK;AAChG;AACA,QAAQ,OAAO,CAAC,EAAE;AAClB,YAAY,MAAM,IAAIQ,WAAgB,CAAC,iCAAiC,CAAC;AACzE;AACA,QAAQ,IAAI,oBAAoB,CAAC,UAAU,CAAC,KAAK,oBAAoB,EAAE;AACvE,YAAY,MAAM,IAAIA,WAAgB,CAAC,iDAAiD,CAAC;AACzF;AACA;AACA,IAAI,aAAa,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC7E,QAAQ,MAAM,OAAO,GAAG,IAAIR,OAAS,CAAC,cAAc,EAAE;AACtD,QAAQ,OAAO,CAAC,mBAAmB,CAAC,SAAS,GAAG,mBAAmB;AACnE,QAAQ,OAAO,CAAC,mBAAmB,CAAC,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,IAAIA,OAAS,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;AACpJ,QAAQ,OAAO,CAAC,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC;AAC5D,QAAQ,MAAM,GAAG,GAAG,IAAI,YAAY,EAAE;AACtC,QAAQ,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAClE,QAAQ,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC;AACpD,QAAQ,GAAG,CAAC,WAAW,GAAG,WAAW;AACrC,QAAQ,GAAG,CAAC,MAAM,GAAG,SAAS;AAC9B,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,aAAa,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC5E,QAAQ,MAAM,OAAO,GAAG,IAAIA,OAAS,CAAC,aAAa,EAAE;AACrD,QAAQ,OAAO,CAAC,kBAAkB,CAAC,SAAS,GAAG,mBAAmB;AAClE,QAAQ,MAAM,UAAU,GAAG,oBAAoB,CAAC,SAAS,CAAC,UAAU,CAAC;AACrE,QAAQ,OAAO,CAAC,kBAAkB,CAAC,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,IAAIA,OAAS,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;AACnH,QAAQ,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK;AACxC,QAAQ,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE;AACrC,QAAQ,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAClE,QAAQ,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC;AACpD,QAAQ,GAAG,CAAC,WAAW,GAAG,WAAW;AACrC,QAAQ,GAAG,CAAC,MAAM,GAAG,SAAS;AAC9B,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,OAAO,oBAAoB,CAAC,KAAK,EAAE;AACvC,QAAQ,QAAQ,KAAK,CAAC,WAAW,EAAE;AACnC,YAAY,KAAK,OAAO;AACxB,gBAAgB,OAAO,YAAY;AACnC,YAAY,KAAK,OAAO;AACxB,gBAAgB,OAAO,WAAW;AAClC,YAAY,KAAK,OAAO;AACxB,gBAAgB,OAAO,WAAW;AAClC,YAAY,KAAK,OAAO;AACxB,gBAAgB,OAAO,WAAW;AAClC,YAAY;AACZ,gBAAgB,OAAO,KAAK;AAC5B;AACA;AACA;AACA,QAAQ,CAAC,eAAe,GAAG,CAAC,QAAQ,CAAC;AACrC,QAAQ,CAAC,gBAAgB,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC;;AAE/D,MAAM,aAAa,SAASS,eAAkB,CAAC;AAC/C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,WAAW,GAAGF,QAAa,CAAC,KAAK;AAC9C,QAAQ,IAAI,CAAC,cAAc,GAAG;AAC9B,YAAY,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;AACpD,YAAY,UAAU,EAAE,UAAU;AAClC,YAAY,UAAU,EAAE,UAAU,EAAE;AACpC,SAAS;AACT;AACA,IAAI,MAAM,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC3D,QAAQ,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC;AAChD,YAAY,GAAG,SAAS;AACxB,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;AAC3B,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;AAClC,QAAQ,OAAO;AACf,YAAY,UAAU,EAAE,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;AACrD,YAAY,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AACnD,SAAS;AACT;AACA,IAAI,MAAM,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AACvC,QAAQ,OAAO,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AAChF;AACA,IAAI,MAAM,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE;AACpD,QAAQ,OAAO,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AAC7G;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE;AACnC,QAAQ,OAAO,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;AAC5D;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC1E,QAAQ,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC;AACxH,QAAQ,OAAO,YAAY,CAAC,GAAG,CAAC;AAChC;AACA,IAAI,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE;AAClC,QAAQ,KAAK,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC3C,QAAQ,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC;AAC7C,QAAQ,IAAI,EAAE,WAAW,YAAY,YAAY,IAAI,WAAW,YAAY,WAAW,CAAC,EAAE;AAC1F,YAAY,MAAM,IAAI,SAAS,CAAC,0BAA0B,CAAC;AAC3D;AACA;AACA;;AAEA,MAAM,YAAY,SAASG,cAAiB,CAAC;AAC7C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,WAAW,GAAGH,QAAa,CAAC,KAAK;AAC9C;AACA,IAAI,MAAM,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC3D,QAAQ,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC;AAChD,YAAY,GAAG,SAAS;AACxB,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;AAC3B,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;AAClC,QAAQ,OAAO;AACf,YAAY,UAAU,EAAE,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;AACrD,YAAY,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AACnD,SAAS;AACT;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE;AACnC,QAAQ,OAAO,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;AAC5D;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC1E,QAAQ,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC;AACxH,QAAQ,OAAO,YAAY,CAAC,GAAG,CAAC;AAChC;AACA,IAAI,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE;AAClC,QAAQ,KAAK,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC3C,QAAQ,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC;AAC7C,QAAQ,IAAI,EAAE,WAAW,YAAY,YAAY,IAAI,WAAW,YAAY,WAAW,CAAC,EAAE;AAC1F,YAAY,MAAM,IAAI,SAAS,CAAC,0BAA0B,CAAC;AAC3D;AACA;AACA,IAAI,MAAM,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE;AACnD,QAAQ,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;AACvI,QAAQ,OAAO,IAAI;AACnB;AACA;;AAEA,MAAM,MAAM,GAAG;AACf,IAAI,CAACP,OAAS,CAAC,OAAO,GAAG,OAAO;AAChC,IAAI,OAAO,EAAEA,OAAS,CAAC,OAAO;AAC9B,IAAI,CAACA,OAAS,CAAC,MAAM,GAAG,MAAM;AAC9B,IAAI,MAAM,EAAEA,OAAS,CAAC,MAAM;AAC5B,IAAI,CAACA,OAAS,CAAC,SAAS,GAAG,SAAS;AACpC,IAAI,SAAS,EAAEA,OAAS,CAAC,SAAS;AAClC,IAAI,CAACA,OAAS,CAAC,QAAQ,GAAG,QAAQ;AAClC,IAAI,QAAQ,EAAEA,OAAS,CAAC,QAAQ;AAChC,CAAC;AACD,SAAS,kBAAkB,CAAC,UAAU,EAAE;AACxC,IAAI,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;AAChD,IAAI,IAAI,CAAC,GAAG,EAAE;AACd,QAAQ,MAAM,IAAIR,cAAmB,CAAC,CAAC,sCAAsC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;AACpG;AACA,IAAI,OAAO,GAAG;AACd;;AAEA,MAAM,YAAY,SAAS,aAAa,CAAC;AACzC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,SAAS;AAC7B;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAEQ,OAAS,CAAC,cAAc,CAAC;AAC5E,QAAQ,OAAO,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAEA,OAAS,CAAC,eAAe,CAAC;AAC7E;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;AACjC,QAAQ,MAAM,IAAI,GAAG;AACrB,YAAY,GAAG,EAAE,KAAK;AACtB,YAAY,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU;AAC1C,YAAY,OAAO,EAAE,IAAI,CAAC,MAAM;AAChC,YAAY,GAAG,EAAE,IAAI,CAAC,WAAW;AACjC,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC9D;AACA,IAAI,QAAQ,CAAC,IAAI,EAAE;AACnB,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACvB,YAAY,MAAM,IAAIR,cAAmB,CAAC,CAAC,2DAA2D,CAAC,CAAC;AACxG;AACA,QAAQ,MAAM,OAAO,GAAG,IAAIQ,OAAS,CAAC,cAAc,EAAE;AACtD,QAAQ,OAAO,CAAC,mBAAmB,CAAC,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC;AAC5E,QAAQ,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,YAAY,EAAEA,OAAS,CAAC,eAAe,EAAE,CAAC;AAC1F,QAAQ,OAAO,CAAC,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC;AACzD,QAAQ,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACnE,QAAQ,OAAO,IAAI;AACnB;AACA;;AAEA,MAAM,WAAW,SAAS,aAAa,CAAC;AACxC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,QAAQ;AAC5B;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAEA,OAAS,CAAC,aAAa,CAAC;AAC3E,QAAQ,OAAO,OAAO,CAAC,SAAS;AAChC;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;AACjC,QAAQ,MAAM,IAAI,GAAG;AACrB,YAAY,GAAG,EAAE,KAAK;AACtB,YAAY,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU;AAC1C,YAAY,OAAO,EAAE,IAAI,CAAC,MAAM;AAChC,YAAY,GAAG,EAAE,IAAI,CAAC,WAAW;AACjC,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;AACnC,YAAY,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG;AACtC,SAAS,CAAC;AACV;AACA,IAAI,QAAQ,CAAC,IAAI,EAAE;AACnB,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACvB,YAAY,MAAM,IAAIR,cAAmB,CAAC,CAAC,2DAA2D,CAAC,CAAC;AACxG;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;AACrB,YAAY,MAAM,IAAIA,cAAmB,CAAC,CAAC,sDAAsD,CAAC,CAAC;AACnG;AACA,QAAQ,MAAM,OAAO,GAAG,IAAIQ,OAAS,CAAC,aAAa,EAAE;AACrD,QAAQ,OAAO,CAAC,kBAAkB,CAAC,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC;AAC3E,QAAQ,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;AACzD,QAAQ,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACnE,QAAQ,OAAO,IAAI;AACnB;AACA;;AAEA,MAAM,QAAQ,CAAC;AACf,IAAI,aAAa,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAChE,QAAQ,MAAM,UAAU,GAAG,IAAI,YAAY,EAAE;AAC7C,QAAQ,UAAU,CAAC,SAAS,GAAG,SAAS;AACxC,QAAQ,UAAU,CAAC,WAAW,GAAG,WAAW;AAC5C,QAAQ,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACpG,QAAQ,MAAM,SAAS,GAAG,IAAI,WAAW,EAAE;AAC3C,QAAQ,SAAS,CAAC,SAAS,GAAG,SAAS;AACvC,QAAQ,SAAS,CAAC,WAAW,GAAG,IAAI;AACpC,QAAQ,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAClG,QAAQ,MAAM,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,WAAW,EAAE;AACvD,QAAQ,MAAM,IAAI,GAAGT,QAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE;AACtD,YAAY,iBAAiB,EAAE;AAC/B,gBAAgB,MAAM,EAAE,KAAK;AAC7B,gBAAgB,IAAI,EAAE,MAAM;AAC5B,aAAa;AACb,YAAY,kBAAkB,EAAE;AAChC,gBAAgB,MAAM,EAAE,KAAK;AAC7B,gBAAgB,IAAI,EAAE,OAAO;AAC7B,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU;AACzC,QAAQ,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS;AACvC,QAAQ,MAAM,GAAG,GAAG;AACpB,YAAY,UAAU;AACtB,YAAY,SAAS;AACrB,SAAS;AACT,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,aAAa,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AAC5C,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;AACtB,YAAY,GAAG,CAAC,GAAG,GAAG,CAAC,6BAA6B,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,2BAA2B,CAAC;AAC9G;AACA,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,GAAG,EAAE,GAAG,CAAC,GAAG;AACxB,SAAS;AACT,QAAQ,MAAM,SAAS,GAAGA,QAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;AACzE,QAAQ,OAAOa,qBAA0B,CAAC,aAAa,CAAC,SAAS,CAAC;AAClE;AACA,IAAI,aAAa,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE;AACzD,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;AACtB,YAAY,GAAG,CAAC,GAAG,GAAG,CAAC,4BAA4B,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,0BAA0B,CAAC;AAC5G;AACA,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,GAAG,EAAE,GAAG,CAAC,GAAG;AACxB,SAAS;AACT,QAAQ,MAAM,EAAE,GAAGb,QAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC9F,QAAQ,OAAO,EAAE;AACjB;AACA,IAAI,aAAa,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE;AACxD,QAAQ,MAAM,SAAS,GAAGA,QAAM,CAAC,eAAe,CAAC;AACjD,YAAY,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI;AACtC,YAAY,MAAM,EAAE,KAAK;AACzB,YAAY,IAAI,EAAE,MAAM;AACxB,SAAS,CAAC;AACV,QAAQ,MAAM,UAAU,GAAGA,QAAM,CAAC,gBAAgB,CAAC;AACnD,YAAY,GAAG,EAAE,OAAO,CAAC,IAAI;AAC7B,YAAY,MAAM,EAAE,KAAK;AACzB,YAAY,IAAI,EAAE,OAAO;AACzB,SAAS,CAAC;AACV,QAAQ,MAAM,IAAI,GAAGA,QAAM,CAAC,aAAa,CAAC;AAC1C,YAAY,SAAS;AACrB,YAAY,UAAU;AACtB,SAAS,CAAC;AACV,QAAQ,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;AAChE;AACA,IAAI,aAAa,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE;AACxC,QAAQ,QAAQ,MAAM,CAAC,WAAW,EAAE;AACpC,YAAY,KAAK,KAAK;AACtB,gBAAgB,OAAO,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC;AACjD,YAAY,KAAK,OAAO;AACxB,YAAY,KAAK,MAAM;AACvB,gBAAgB,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM;AACtD,YAAY,KAAK,KAAK,EAAE;AACxB,gBAAgB,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAES,OAAS,CAAC,aAAa,CAAC;AACxF,gBAAgB,OAAO,aAAa,CAAC,SAAS;AAC9C;AACA,YAAY;AACZ,gBAAgB,MAAM,IAAIR,cAAmB,CAAC,gDAAgD,CAAC;AAC/F;AACA;AACA,IAAI,aAAa,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC/E,QAAQ,QAAQ,MAAM,CAAC,WAAW,EAAE;AACpC,YAAY,KAAK,KAAK,EAAE;AACxB,gBAAgB,MAAM,GAAG,GAAG,OAAO;AACnC,gBAAgB,IAAI,GAAG,CAAC,CAAC,EAAE;AAC3B,oBAAoB,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,YAAY,EAAEQ,OAAS,CAAC,eAAe,EAAE,CAAC;AAC5G,oBAAoB,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;AAC3F;AACA,qBAAqB;AACrB,oBAAoB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AAChC,wBAAwB,MAAM,IAAI,SAAS,CAAC,wCAAwC,CAAC;AACrF;AACA,oBAAoB,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;AAChH;AACA;AACA,YAAY,KAAK,KAAK,EAAE;AACxB,gBAAgB,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;AACvF;AACA,YAAY,KAAK,MAAM,EAAE;AACzB,gBAAgB,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,EAAEA,OAAS,CAAC,aAAa,CAAC;AACjG,gBAAgB,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;AACjG;AACA,YAAY,KAAK,OAAO,EAAE;AAC1B,gBAAgB,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,EAAEA,OAAS,CAAC,cAAc,CAAC;AAClG,gBAAgB,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAEA,OAAS,CAAC,eAAe,CAAC;AAC7F,gBAAgB,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;AACvF;AACA,YAAY;AACZ,gBAAgB,MAAM,IAAIR,cAAmB,CAAC,iDAAiD,CAAC;AAChG;AACA;AACA,IAAI,OAAO,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AACvE,QAAQ,MAAM,GAAG,GAAG,IAAI,YAAY,EAAE;AACtC,QAAQ,GAAG,CAAC,QAAQ,CAAC;AACrB,YAAY,GAAG,EAAE,SAAS,CAAC,UAAU;AACrC,YAAY,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5C,SAAS,CAAC;AACV,QAAQ,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC;AACpD,QAAQ,GAAG,CAAC,WAAW,GAAG,WAAW;AACrC,QAAQ,GAAG,CAAC,MAAM,GAAG,SAAS;AAC9B,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,aAAa,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC5E,QAAQ,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE;AACrC,QAAQ,GAAG,CAAC,QAAQ,CAAC;AACrB,YAAY,GAAG,EAAE,SAAS,CAAC,UAAU;AACrC,YAAY,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC;AAC1C,SAAS,CAAC;AACV,QAAQ,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC;AACpD,QAAQ,GAAG,CAAC,WAAW,GAAG,WAAW;AACrC,QAAQ,GAAG,CAAC,MAAM,GAAG,SAAS;AAC9B,QAAQ,OAAO,GAAG;AAClB;AACA;AACA,QAAQ,CAAC,eAAe,GAAG,CAAC,QAAQ,CAAC;AACrC,QAAQ,CAAC,gBAAgB,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC;;AAE/D,MAAM,aAAa,SAASmB,eAAkB,CAAC;AAC/C,IAAI,MAAM,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC3D,QAAQ,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC;AAChD,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;AAC3B,YAAY,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;AAClE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;AAClC,QAAQ,OAAO;AACf,YAAY,UAAU,EAAE,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;AACrD,YAAY,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AACnD,SAAS;AACT;AACA,IAAI,MAAM,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AACvC,QAAQ,OAAO,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AAChF;AACA,IAAI,MAAM,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE;AACpD,QAAQ,OAAO,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AAC7G;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE;AACnC,QAAQ,OAAO,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;AAC5D;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC1E,QAAQ,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC;AACxH,QAAQ,OAAO,YAAY,CAAC,GAAG,CAAC;AAChC;AACA;;AAEA,MAAM,cAAc,SAASC,gBAAmB,CAAC;AACjD,IAAI,MAAM,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC3D,QAAQ,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC;AAChD,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;AAC3B,YAAY,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,WAAW,EAAE;AAC1D,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;AAClC,QAAQ,OAAO;AACf,YAAY,UAAU,EAAE,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;AACrD,YAAY,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AACnD,SAAS;AACT;AACA,IAAI,MAAM,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE;AACnD,QAAQ,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;AACvI,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE;AACnC,QAAQ,OAAO,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;AAC5D;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC1E,QAAQ,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC;AACxH,QAAQ,OAAO,YAAY,CAAC,GAAG,CAAC;AAChC;AACA;;AAEA,MAAM,gBAAgB,SAAS,SAAS,CAAC;AACzC,IAAI,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE;AACtD,QAAQ,KAAK,EAAE;AACf,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS;AAClC,QAAQ,IAAI,CAAC,WAAW,GAAG,WAAW;AACtC,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AACrC;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,OAAO;AACf,YAAY,GAAG,EAAE,KAAK;AACtB,YAAY,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;AACpC,YAAY,OAAO,EAAE,IAAI,CAAC,MAAM;AAChC,YAAY,GAAG,EAAE,IAAI,CAAC,WAAW;AACjC,SAAS;AACT;AACA;;AAEA,MAAM,iBAAiB,SAAS,gBAAgB,CAAC;AACjD,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,SAAS;AAC7B;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,MAAM,MAAM,GAAGrB,QAAM,CAAC,eAAe,CAAC;AAC9C,YAAY,GAAG,EAAE,IAAI,CAAC,IAAI;AAC1B,YAAY,MAAM,EAAE,KAAK;AACzB,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AACpC,QAAQ,MAAM,GAAG,GAAGsB,YAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AACxE,QAAQ,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,EAAEb,OAAS,CAAC,cAAc,CAAC;AACrE,QAAQ,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,EAAEA,OAAS,CAAC,YAAY,CAAC,CAAC,KAAK;AAClF,QAAQ,OAAO;AACf,YAAY,GAAG,KAAK,CAAC,KAAK,EAAE;AAC5B,YAAY,GAAG,MAAM;AACrB,YAAY,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;AACnE,SAAS;AACT;AACA;;AAEA,MAAM,gBAAgB,SAAS,gBAAgB,CAAC;AAChD,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,QAAQ;AAC5B;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,MAAM,GAAG,GAAGT,QAAM,CAAC,eAAe,CAAC;AAC3C,YAAY,GAAG,EAAE,IAAI,CAAC,IAAI;AAC1B,YAAY,MAAM,EAAE,KAAK;AACzB,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AACpC,QAAQ,OAAO;AACf,YAAY,GAAG,KAAK,CAAC,KAAK,EAAE;AAC5B,YAAY,GAAG,GAAG;AAClB,SAAS;AACT;AACA;;AAEA,MAAM,aAAa,CAAC;AACpB,IAAI,aAAa,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAChE,QAAQ,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE;AACjD,QAAQ,MAAM,IAAI,GAAGA,QAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE;AACtD,YAAY,iBAAiB,EAAE;AAC/B,gBAAgB,MAAM,EAAE,KAAK;AAC7B,gBAAgB,IAAI,EAAE,MAAM;AAC5B,aAAa;AACb,YAAY,kBAAkB,EAAE;AAChC,gBAAgB,MAAM,EAAE,KAAK;AAC7B,gBAAgB,IAAI,EAAE,OAAO;AAC7B,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,MAAM,MAAM,GAAG;AACvB,YAAY,IAAI,EAAE,IAAI,KAAK,SAAS,GAAG,SAAS,GAAG,QAAQ;AAC3D,SAAS;AACT,QAAQ,MAAM,gBAAgB,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACnG,QAAQ,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACjG,QAAQ,OAAO;AACf,YAAY,UAAU,EAAE,IAAI,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC;AACrG,YAAY,SAAS,EAAE,IAAI,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC;AAC1F,SAAS;AACT;AACA,IAAI,aAAa,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AAC5C,QAAQ,MAAM,SAAS,GAAGA,QAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC;AACxE,QAAQ,OAAOa,qBAA0B,CAAC,aAAa,CAAC,SAAS,CAAC;AAClE;AACA,IAAI,aAAa,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE;AACzD,QAAQ,OAAOb,QAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;AAC1E;AACA,IAAI,aAAa,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE;AACxC,QAAQ,QAAQ,MAAM;AACtB,YAAY,KAAK,KAAK;AACtB,gBAAgB,OAAO,GAAG,CAAC,KAAK,EAAE;AAClC,YAAY,KAAK,OAAO,EAAE;AAC1B,gBAAgB,OAAOsB,YAAiB,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC3E;AACA,YAAY,KAAK,MAAM,EAAE;AACzB,gBAAgB,OAAOA,YAAiB,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC3E;AACA,YAAY,KAAK,KAAK,EAAE;AACxB,gBAAgB,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,EAAE;AACvC,gBAAgB,OAAO,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;AACnD;AACA,YAAY;AACZ,gBAAgB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAIrB,cAAmB,CAAC,gDAAgD,CAAC,CAAC;AAChH;AACA;AACA,IAAI,aAAa,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC/E,QAAQ,QAAQ,MAAM;AACtB,YAAY,KAAK,KAAK,EAAE;AACxB,gBAAgB,MAAM,GAAG,GAAG,OAAO;AACnC,gBAAgB,IAAI,GAAG,CAAC,CAAC,EAAE;AAC3B,oBAAoB,MAAM,WAAW,GAAG,IAAIQ,OAAS,CAAC,YAAY,EAAE;AACpE,oBAAoB,WAAW,CAAC,KAAK,GAAGI,qBAA0B,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;AACjH,oBAAoB,MAAM,KAAK,GAAG,IAAIJ,OAAS,CAAC,cAAc,EAAE;AAChE,oBAAoB,KAAK,CAAC,mBAAmB,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK;AAC3F,0BAA0BA,OAAS,CAAC;AACpC,0BAA0BA,OAAS,CAAC,QAAQ;AAC5C,oBAAoB,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC;AACxE,oBAAoB,MAAM,GAAG,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC;AAC3D,oBAAoB,MAAM,GAAG,GAAGa,YAAiB,CAAC,gBAAgB,CAAC,GAAG,EAAE,aAAa,CAAC;AACtF,oBAAoB,OAAO,IAAI,iBAAiB,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,CAAC;AACxF;AACA,qBAAqB,IAAI,GAAG,CAAC,CAAC,EAAE;AAChC,oBAAoB,MAAM,MAAM,GAAGtB,QAAM,CAAC,eAAe,CAAC;AAC1D,wBAAwB,MAAM,EAAE,KAAK;AACrC,wBAAwB,GAAG,EAAE,GAAG;AAChC,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC9E,oBAAoB,OAAO,IAAI,gBAAgB,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,CAAC;AACvF;AACA,qBAAqB;AACrB,oBAAoB,MAAM,IAAIC,cAAmB,CAAC,0DAA0D,CAAC;AAC7G;AACA;AACA,YAAY,KAAK,OAAO,EAAE;AAC1B,gBAAgB,MAAM,GAAG,GAAGqB,YAAiB,CAAC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC;AACtF,gBAAgB,OAAO,IAAI,iBAAiB,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,CAAC;AACpF;AACA,YAAY,KAAK,MAAM,EAAE;AACzB,gBAAgB,MAAM,GAAG,GAAGA,YAAiB,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC;AACrF,gBAAgB,OAAO,IAAI,gBAAgB,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,CAAC;AACnF;AACA,YAAY,KAAK,KAAK,EAAE;AACxB,gBAAgB,MAAM,GAAG,GAAG,OAAO;AACnC,gBAAgB,MAAM,GAAG,GAAGtB,QAAM,CAAC,eAAe,CAAC;AACnD,oBAAoB,MAAM,EAAE,KAAK;AACjC,oBAAoB,GAAG,EAAE;AACzB,wBAAwB,GAAG,EAAE,KAAK;AAClC,wBAAwB,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,SAAS,GAAG,SAAS,GAAG,QAAQ;AAC9F,wBAAwB,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC;AACnD,qBAAqB;AACrB,iBAAiB,CAAC;AAClB,gBAAgB,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACvE,gBAAgB,OAAO,IAAI,gBAAgB,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,CAAC;AACnF;AACA,YAAY;AACZ,gBAAgB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAIC,cAAmB,CAAC,gDAAgD,CAAC,CAAC;AAChH;AACA;AACA;AACA,aAAa,CAAC,gBAAgB,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,WAAW,CAAC;AACpE,aAAa,CAAC,eAAe,GAAG,CAAC,QAAQ,CAAC;;AAE1C,MAAM,eAAe,SAASsB,iBAAoB,CAAC;AACnD,IAAI,MAAM,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC3D,QAAQ,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;AACvF,QAAQ,OAAO;AACf,YAAY,UAAU,EAAE,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;AACrD,YAAY,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AACnD,SAAS;AACT;AACA,IAAI,MAAM,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AACvC,QAAQ,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC;AAC7C,QAAQ,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1F,QAAQ,OAAO,SAAS;AACxB;AACA,IAAI,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE;AAC9C,QAAQ,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC;AAC7C,QAAQ,OAAO,aAAa,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AAC5G;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE;AACnC,QAAQ,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC;AAC7C,QAAQ,OAAO,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;AAC3D;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC1E,QAAQ,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;AAC7G,QAAQ,OAAO,YAAY,CAAC,WAAW,CAAC;AACxC;AACA;;AAEA,MAAM,cAAc,SAASC,gBAAmB,CAAC;AACjD,IAAI,MAAM,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC3D,QAAQ,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;AACvF,QAAQ,OAAO;AACf,YAAY,UAAU,EAAE,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;AACrD,YAAY,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AACnD,SAAS;AACT;AACA,IAAI,MAAM,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE;AACnD,QAAQ,MAAM,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC;AACrD,QAAQ,MAAM,iBAAiB,GAAG,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC;AAChE,QAAQ,MAAM,SAAS,GAAGxB,QAAM,CAAC,eAAe,CAAC;AACjD,YAAY,GAAG,EAAE,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClD,YAAY,MAAM,EAAE,KAAK;AACzB,YAAY,IAAI,EAAE,MAAM;AACxB,SAAS,CAAC;AACV,QAAQ,MAAM,UAAU,GAAGA,QAAM,CAAC,gBAAgB,CAAC;AACnD,YAAY,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE;AAChD,YAAY,MAAM,EAAE,KAAK;AACzB,YAAY,IAAI,EAAE,OAAO;AACzB,SAAS,CAAC;AACV,QAAQ,MAAM,IAAI,GAAGA,QAAM,CAAC,aAAa,CAAC;AAC1C,YAAY,SAAS;AACrB,YAAY,UAAU;AACtB,SAAS,CAAC;AACV,QAAQ,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;AAChE;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE;AACnC,QAAQ,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC;AAC7C,QAAQ,OAAO,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;AAC3D;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC1E,QAAQ,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;AACrG,QAAQ,OAAO,YAAY,CAAC,GAAG,CAAC;AAChC;AACA,IAAI,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE;AAClC,QAAQ,KAAK,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC3C,QAAQ,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,YAAY,gBAAgB,CAAC,EAAE;AAC9D,YAAY,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC;AACjE;AACA;AACA;;AAEA,MAAM,cAAc,SAAS,SAAS,CAAC;AACvC;;AAEA,MAAM,cAAc,SAASyB,gBAAmB,CAAC;AACjD,IAAI,MAAM,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE;AACnD,QAAQ,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAChD,YAAY,MAAM,IAAI,GAAGZ,qBAA0B,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC;AACjF,YAAY,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;AAC7D,YAAYb,QAAM,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK;AAC1I,gBAAgB,IAAI,GAAG,EAAE;AACzB,oBAAoB,MAAM,CAAC,GAAG,CAAC;AAC/B;AACA,qBAAqB;AACrB,oBAAoB,OAAO,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;AAC/D;AACA,aAAa,CAAC;AACd,SAAS,CAAC;AACV;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC1E,QAAQ,IAAI,MAAM,KAAK,KAAK,EAAE;AAC9B,YAAY,MAAM,GAAG,GAAG,IAAI,cAAc,EAAE;AAC5C,YAAY,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AAC7C,YAAY,GAAG,CAAC,SAAS,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AAC/C,YAAY,GAAG,CAAC,WAAW,GAAG,KAAK;AACnC,YAAY,GAAG,CAAC,MAAM,GAAG,SAAS;AAClC,YAAY,OAAO,YAAY,CAAC,GAAG,CAAC;AACpC;AACA,QAAQ,MAAM,IAAIC,cAAmB,CAAC,uBAAuB,CAAC;AAC9D;AACA,IAAI,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE;AAClC,QAAQ,KAAK,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC3C,QAAQ,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,YAAY,cAAc,CAAC,EAAE;AAC5D,YAAY,MAAM,IAAI,SAAS,CAAC,6BAA6B,CAAC;AAC9D;AACA;AACA;;AAEA,MAAM,aAAa,SAAS,SAAS,CAAC;AACtC,IAAI,IAAI,GAAG,GAAG;AACd,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AAC3D,QAAQ,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AAC9C;AACA,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE;AACnB;AACA;AACA,UAAU,CAAC;AACX,IAAI,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,sBAAsB,EAAE;AAC7D,CAAC,EAAE,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;;AAE3C,MAAM,YAAY,SAASyB,cAAiB,CAAC;AAC7C,IAAI,MAAM,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC3D,QAAQ,MAAM,MAAM,GAAG,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AACjG,QAAQ,MAAM,GAAG,GAAG,IAAI,aAAa,EAAE;AACvC,QAAQ,GAAG,CAAC,SAAS,GAAG;AACxB,YAAY,GAAG,SAAS;AACxB,YAAY,MAAM;AAClB,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;AAC3B,SAAS;AACT,QAAQ,GAAG,CAAC,WAAW,GAAG,WAAW;AACrC,QAAQ,GAAG,CAAC,MAAM,GAAG,SAAS;AAC9B,QAAQ,GAAG,CAAC,IAAI,GAAG1B,QAAM,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC;AAClD,QAAQ,OAAO,YAAY,CAAC,GAAG,CAAC;AAChC;AACA,IAAI,MAAM,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AACvC,QAAQ,MAAM,SAAS,GAAG,SAAS,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;AACxE,QAAQ,MAAM,IAAI,GAAGA,QAAM,CAAC,UAAU,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI;AACxE,aAAa,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE;AACjD,QAAQ,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM;AAC1C;AACA,IAAI,MAAM,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE;AACpD,QAAQ,MAAM,SAAS,GAAG,SAAS,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;AACxE,QAAQ,MAAM,IAAI,GAAGA,QAAM,CAAC,UAAU,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI;AACxE,aAAa,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE;AACjD,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC;AAC3D;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC1E,QAAQ,IAAI,GAAG;AACf,QAAQ,QAAQ,MAAM,CAAC,WAAW,EAAE;AACpC,YAAY,KAAK,KAAK;AACtB,gBAAgB,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC;AACnF,gBAAgB;AAChB,YAAY,KAAK,KAAK;AACtB,gBAAgB,GAAG,GAAG,IAAI,aAAa,EAAE;AACzC,gBAAgB,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AACjD,gBAAgB;AAChB,YAAY;AACZ,gBAAgB,MAAM,IAAIC,cAAmB,CAAC,gCAAgC,CAAC;AAC/E;AACA,QAAQ,GAAG,CAAC,SAAS,GAAG;AACxB,YAAY,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE;AAC/C,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;AAC3B,YAAY,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC;AACxC,SAAS;AACT,QAAQ,GAAG,CAAC,WAAW,GAAG,WAAW;AACrC,QAAQ,GAAG,CAAC,MAAM,GAAG,SAAS;AAC9B,QAAQ,OAAO,YAAY,CAAC,GAAG,CAAC;AAChC;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE;AACnC,QAAQ,QAAQ,MAAM,CAAC,WAAW,EAAE;AACpC,YAAY,KAAK,KAAK;AACtB,gBAAgB,OAAO,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;AAC/D,YAAY,KAAK,KAAK;AACtB,gBAAgB,OAAO,IAAI,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM;AACpE,YAAY;AACZ,gBAAgB,MAAM,IAAIA,cAAmB,CAAC,gCAAgC,CAAC;AAC/E;AACA;AACA,IAAI,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE;AAClC,QAAQ,KAAK,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC3C,QAAQ,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,YAAY,aAAa,CAAC,EAAE;AAC3D,YAAY,MAAM,IAAI,SAAS,CAAC,4BAA4B,CAAC;AAC7D;AACA;AACA;;AAEA,MAAM,aAAa,SAAS,SAAS,CAAC;AACtC;;AAEA,MAAM,YAAY,SAAS0B,cAAiB,CAAC;AAC7C,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;AAC1E,QAAQ,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE;AAC5C,YAAY,MAAM,IAAI1B,cAAmB,CAAC,yBAAyB,CAAC;AACpE;AACA,QAAQ,MAAM,GAAG,GAAG,IAAI,aAAa,EAAE;AACvC,QAAQ,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AACzC,QAAQ,GAAG,CAAC,SAAS,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AAC3C,QAAQ,GAAG,CAAC,WAAW,GAAG,WAAW;AACrC,QAAQ,GAAG,CAAC,MAAM,GAAG,SAAS;AAC9B,QAAQ,OAAO,YAAY,CAAC,GAAG,CAAC;AAChC;AACA,IAAI,MAAM,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;AAChD,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;AACtD,QAAQ,MAAM,UAAU,GAAGD,QAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM;AAClE,QAAQ,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC;AACrC,QAAQ,MAAM,IAAI,GAAG4B,qBAAuB,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC;AACtE,QAAQ,MAAM,GAAG,GAAG5B,QAAM,CAAC,UAAU,CAAC,IAAI,EAAE4B,qBAAuB,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7F,aAAa,MAAM,CAACA,qBAAuB,CAAC,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;AACpF,aAAa,MAAM,EAAE;AACrB,QAAQ,MAAM,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1C,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC;AACjE,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE;AAC7C,YAAY,MAAM,CAAC,IAAI,CAAC5B,QAAM,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG;AACnD,iBAAiB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClF,iBAAiB,MAAM,EAAE,CAAC;AAC1B;AACA,QAAQ,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC;AAC3D;AACA,IAAI,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE;AAClC,QAAQ,KAAK,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC3C,QAAQ,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,YAAY,aAAa,CAAC,EAAE;AAC3D,YAAY,MAAM,IAAI,SAAS,CAAC,4BAA4B,CAAC;AAC7D;AACA;AACA;;AAEA,MAAM,WAAW,CAAC;AAClB,IAAI,OAAO,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE;AACnC,QAAQ,MAAM,IAAI,GAAGA,QAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,SAAS,CAAC,MAAM,EAAE;AACvG,aAAa,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE;AACjD,QAAQ,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM;AAC1C;AACA;;AAEA,MAAM,gBAAgB,SAAS6B,kBAAqB,CAAC;AACrD,IAAI,MAAM,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE;AACpC,QAAQ,OAAO,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC;AAClD;AACA;;AAEA,MAAM,gBAAgB,SAASC,kBAAqB,CAAC;AACrD,IAAI,MAAM,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE;AACpC,QAAQ,OAAO,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC;AAClD;AACA;;AAEA,MAAM,YAAY,SAASC,cAAiB,CAAC;AAC7C,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,EAAE;AACd,QAAQ,KAAK,EAAE;AACf,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,cAAc,EAAE,CAAC;AAChD,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,cAAc,EAAE,CAAC;AAChD,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,cAAc,EAAE,CAAC;AAChD,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,eAAe,EAAE,CAAC;AACjD,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,aAAa,EAAE,CAAC;AAC/C,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,cAAc,EAAE,CAAC;AAChD,QAAQ,MAAM,OAAO,GAAG/B,QAAM,CAAC,UAAU,EAAE;AAC3C,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;AACzC,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,cAAc,EAAE,CAAC;AACpD;AACA,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,kBAAkB,EAAE,CAAC;AACpD,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,cAAc,EAAE,CAAC;AAChD,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,cAAc,EAAE,CAAC;AAChD,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,eAAe,EAAE,CAAC;AACjD,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,aAAa,EAAE,CAAC;AAC/C,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,aAAa,EAAE,CAAC;AAC/C,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,YAAY,EAAE,CAAC;AAC9C,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,YAAY,EAAE,CAAC;AAC9C,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,cAAc,EAAE,CAAC;AAChD,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,cAAc,EAAE,CAAC;AAChD,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,cAAc,EAAE,CAAC;AAChD,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,cAAc,EAAE,CAAC;AAChD,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,YAAY,EAAE,CAAC;AAC9C,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,YAAY,EAAE,CAAC;AAC9C,QAAQ,MAAM,gBAAgB,GAAG,CAAC,EAAE,GAAG,SAAS,CAAC,IAAI,CAACgC,SAAO,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAClH,QAAQ,IAAI,gBAAgB,IAAI,QAAQ,CAAC,gBAAgB,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE;AACtE,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,gBAAgB,EAAE,CAAC;AACtD,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,gBAAgB,EAAE,CAAC;AACtD;AACA,QAAQ,MAAM,MAAM,GAAGhC,QAAM,CAAC,SAAS,EAAE;AACzC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;AACzC,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,eAAe,EAAE,CAAC;AACrD;AACA,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;AACzC,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,eAAe,EAAE,CAAC;AACrD;AACA,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;AACzC,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,eAAe,EAAE,CAAC;AACrD;AACA,QAAQ,IAAI,gBAAgB,IAAI,QAAQ,CAAC,gBAAgB,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE;AACtE,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,aAAa,EAAE,CAAC;AACnD,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,cAAc,EAAE,CAAC;AACpD,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,eAAe,EAAE,CAAC;AACrD,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,cAAc,EAAE,CAAC;AACpD;AACA;AACA;;AAEA,MAAM,MAAM,SAASiC,QAAW,CAAC;AACjC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,EAAE;AACxC;AACA,IAAI,eAAe,CAAC,KAAK,EAAE;AAC3B,QAAQ,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AACxC,YAAY,MAAM,IAAI,SAAS,CAAC,+FAA+F,CAAC;AAChI;AACA,QAAQ,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC;AACtF,QAAQjC,QAAM,CAAC,cAAc,CAAC,MAAM,CAAC;AACrC,QAAQ,OAAO,KAAK;AACpB;AACA;;ACv9EA,IAAI,SAAS,GAAG,CAACjF,SAAI,IAAIA,SAAI,CAAC,SAAS,KAAK,UAAU,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE;AACzF,IAAI,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,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAE;AAC/D,QAAQ,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,QAAQ,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,QAAQ,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,QAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;AAC7E,KAAK,CAAC;AACN,CAAC;AACD,IAAI,OAAO,GAAG,CAACA,SAAI,IAAIA,SAAI,CAAC,OAAO,KAAK,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,YAAY,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;AAC5H,IAAI,aAAa,GAAG,CAACA,SAAI,IAAIA,SAAI,CAAC,aAAa,KAAK,UAAU,CAAC,EAAE;AACjE,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC;AAC1F,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;AACtC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;AACpN,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAClK,IAAI,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;AAC9H,CAAC;AACD,IAAI,gBAAgB,GAAG,CAACA,SAAI,IAAIA,SAAI,CAAC,gBAAgB,KAAK,UAAU,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE;AACpG,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC;AAC1F,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE;AACjE,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,aAAa,KAAK,UAAU,GAAG,aAAa,GAAG,MAAM,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC;AAC3N,IAAI,SAAS,WAAW,CAAC,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;AACjG,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1K,IAAI,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AACpF,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,YAAY,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1H,IAAI,SAAS,OAAO,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACpD,IAAI,SAAS,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACpD,IAAI,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpF,CAAC;AAKD,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE;AACpB,MAAM,qBAAqB,GAAG,IAAI,GAAG,IAAI;AAChD,MAAM,OAAO,GAAG,EAAE;AAClB,MAAM,QAAQ,GAAG,EAAE;AACnB,MAAM,oBAAoB,GAAG,qBAAqB,GAAG,OAAO,GAAG,QAAQ;AACvE,MAAM,SAAS,GAAG,EAAE;AACb,MAAM,kBAAkB,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;AACzG,IAAI,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE;AACrC,IAAI,MAAM,QAAQ,GAAG,OAAO,IAAI,KAAK,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI;AAClH,IAAI,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;AACpI,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;AACnC,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,UAAU,EAAE,MAAM;AAC1B,QAAQ,IAAI,EAAE,SAAS;AACvB,KAAK,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACpF,CAAC,CAAC;AACK,MAAM,WAAW,GAAG,UAAU,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE;AAC7D,IAAI,OAAO,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,IAAI,EAAE,QAAQ,EAAE,EAAE,SAAS,GAAG,qBAAqB,EAAE,SAAS,EAAE,EAAE;AAC1H,QAAQ,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE;AAC3B,QAAQ,IAAI,SAAS,KAAK,mBAAmB,CAAC,WAAW,EAAE;AAC3D,YAAY,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC;AAC/D;AACA,QAAQ,MAAM,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC;AAC3C,QAAQ,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACzE,QAAQ,MAAM,MAAM,OAAO,CAAC,IAAI,CAAC;AACjC,QAAQ,IAAI;AACZ,YAAY,KAAK,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,aAAa,CAACoB,cAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,MAAM,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE;AACpJ,gBAAgB,EAAE,GAAG,EAAE,CAAC,KAAK;AAC7B,gBAAgB,EAAE,GAAG,KAAK;AAC1B,gBAAgB,MAAM,KAAK,GAAG,EAAE;AAChC,gBAAgB,MAAM,EAAE,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;AAC1E,gBAAgB,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAC3G,gBAAgB,MAAM,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC7F;AACA;AACA,QAAQ,OAAO,KAAK,EAAE,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC/C,gBAAgB;AAChB,YAAY,IAAI;AAChB,gBAAgB,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC9E;AACA,oBAAoB,EAAE,IAAI,GAAG,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC;AAC/C;AACA,KAAK,CAAC;AACN,CAAC;AACM,MAAM,WAAW,GAAG,UAAU,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE;AAC7D,IAAI,OAAO,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,IAAI,EAAE,QAAQ,EAAE,EAAE,SAAS,GAAG,oBAAoB,EAAE,SAAS,EAAE,EAAE;AACzH,QAAQ,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE;AAC3B,QAAQ,IAAI,SAAS,KAAK,mBAAmB,CAAC,WAAW,EAAE;AAC3D,YAAY,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC;AAC/D;AACA,QAAQ,IAAI,GAAG,GAAG,SAAS;AAC3B,QAAQ,IAAI,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACpC,QAAQ,IAAI;AACZ,YAAY,KAAK,IAAI,EAAE,GAAG,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE;AACrJ,gBAAgB,EAAE,GAAG,QAAQ,CAAC,KAAK;AACnC,gBAAgB,EAAE,GAAG,KAAK;AAC1B,gBAAgB,MAAM,KAAK,GAAG,EAAE;AAChC,gBAAgB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACvD,gBAAgB,IAAI,MAAM,CAAC,MAAM,IAAI,SAAS,IAAI,CAAC,GAAG,EAAE;AACxD,oBAAoB,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC;AACvD,oBAAoB,GAAG,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAC/E,oBAAoB,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;AACvD;AACA,gBAAgB,OAAO,GAAG,IAAI,MAAM,CAAC,MAAM,IAAI,SAAS,EAAE;AAC1D,oBAAoB,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;AAC1D,oBAAoB,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;AAC7E,oBAAoB,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;AACxH,oBAAoB,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;AACvD,oBAAoB,MAAM,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC/D;AACA;AACA;AACA,QAAQ,OAAO,KAAK,EAAE,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC/C,gBAAgB;AAChB,YAAY,IAAI;AAChB,gBAAgB,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACtF;AACA,oBAAoB,EAAE,IAAI,GAAG,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC;AAC/C;AACA,QAAQ,IAAI,GAAG,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACtC,YAAY,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;AAClD,YAAY,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;AACtE,YAAY,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;AAChH,YAAY,MAAM,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACvD;AACA,KAAK,CAAC;AACN,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjHD;AACA;AACA;;AAEA,CAAA,MAAc,GAAG;;;;;;;;;;;;;;;;;;ACFjB;AACA;AACA;AACA;;AAEA,EAAA,IAAI,EAAE,GAAG7B,aAAA;EACT,IAAI,OAAO,GAAGC,YAAe,CAAC;;AAE9B;AACA;AACA;AACA;;AAEA,EAAA,IAAI,mBAAmB,GAAG;AAC1B,EAAA,IAAI,gBAAgB,GAAG;;AAEvB;AACA;AACA;AACA;;EAEA,OAAkB,CAAA,OAAA,GAAA;EAClB,OAAmB,CAAA,QAAA,GAAA,EAAE,MAAM,EAAE,OAAO;EACpC,OAAsB,CAAA,WAAA,GAAA;EACtB,OAAoB,CAAA,SAAA,GAAA;AACpB,EAAA,OAAA,CAAA,UAAA,GAAqB,MAAM,CAAC,MAAM,CAAC,IAAI;EACvC,OAAiB,CAAA,MAAA,GAAA;AACjB,EAAA,OAAA,CAAA,KAAA,GAAgB,MAAM,CAAC,MAAM,CAAC,IAAI;;AAElC;AACA,EAAA,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK;;AAE9C;AACA;AACA;AACA;AACA;AACA;;EAEA,SAAS,OAAO,EAAE,IAAI,EAAE;IACtB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AACzC,MAAI,OAAO;AACX;;AAEA;AACA,IAAE,IAAI,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI;AAC3C,IAAE,IAAI,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;;AAE/C,IAAE,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;MACxB,OAAO,IAAI,CAAC;AAChB;;AAEA;AACA,IAAE,IAAI,KAAK,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AAChD,MAAI,OAAO;AACX;;AAEA,IAAE,OAAO;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;;EAEA,SAAS,WAAW,EAAE,GAAG,EAAE;AAC3B;IACE,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACvC,MAAI,OAAO;AACX;;IAEE,IAAI,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;AACnC,QAAM,OAAO,CAAC,MAAM,CAAC,GAAG;QAClB;;IAEJ,IAAI,CAAC,IAAI,EAAE;AACb,MAAI,OAAO;AACX;;AAEA;IACE,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE;AACtC,MAAI,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI;MAClC,IAAI,OAAO,EAAE,IAAI,IAAI,YAAY,GAAG,OAAO,CAAC,WAAW;AAC3D;;AAEA,IAAE,OAAO;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;;EAEA,SAAS,SAAS,EAAE,IAAI,EAAE;IACxB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AACzC,MAAI,OAAO;AACX;;AAEA;AACA,IAAE,IAAI,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI;;AAE3C;AACA,IAAE,IAAI,IAAI,GAAG,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;;IAE7D,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC7B,MAAI,OAAO;AACX;;IAEE,OAAO,IAAI,CAAC,CAAC;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;;EAEA,SAAS,MAAM,EAAE,IAAI,EAAE;IACrB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AACzC,MAAI,OAAO;AACX;;AAEA;AACA,IAAE,IAAI,SAAS,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI;AACrC,OAAK,WAAW;OACX,MAAM,CAAC,CAAC;;IAEX,IAAI,CAAC,SAAS,EAAE;AAClB,MAAI,OAAO;AACX;;AAEA,IAAE,OAAO,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI;AACrC;;AAEA;AACA;AACA;AACA;;AAEA,EAAA,SAAS,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE;AAC1C;IACE,IAAI,UAAU,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM;;AAExD,IAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,eAAe,EAAE,IAAI,EAAE;AAC1D,MAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI;AACtB,MAAI,IAAI,IAAI,GAAG,IAAI,CAAC;;MAEhB,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;QACzB;AACN;;AAEA;AACA,MAAI,UAAU,CAAC,IAAI,CAAC,GAAG;;AAEvB;AACA,MAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,QAAM,IAAI,SAAS,GAAG,IAAI,CAAC,CAAC;;AAE5B,QAAM,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE;AAC5B,UAAQ,IAAI,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;UACzD,IAAI,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM;;AAE/C,UAAQ,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,0BAA0B;aAChD,IAAI,GAAG,EAAE,KAAK,IAAI,KAAK,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,cAAc,CAAC,CAAC,EAAE;AAC7F;YACU;AACV;AACA;;AAEA;AACA,QAAM,KAAK,CAAC,SAAS,CAAC,GAAG;AACzB;KACG;AACH,GAAA;;;;;;;;AC3La,MAAA,YAAY,GAAG,iBAC1B,aAAoC,EACpC,SAAiB,EAAA;IAEjB,IAAI,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAE5B,IAAA,WAAW,MAAM,KAAK,IAAI,aAAa,EAAE;QACvC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACvC,QAAA,OAAO,MAAM,CAAC,MAAM,IAAI,SAAS,EAAE;YACjC,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC;AACnC,YAAA,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;;;AAIvC,IAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACrB,QAAA,MAAM,MAAM;;AAEhB;MAEa,eAAe,GAAG,iBAC7B,MAAkC,EAAA;AAElC,IAAA,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE;AACjC,IAAA,IAAI,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE;AAChC,IAAA,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;QACnB,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AAC/B,QAAA,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE;;AAEhC;;MCzBa,QAAQ,GAAG,OAAO,UAAkB,KAAuB;IACtE,MAAM,IAAI,GAAG,MAAM2H,IAAE,CAAC,IAAI,CAAC,UAAU,CAAC;AAEtC,IAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;QACtB,MAAM,KAAK,GAAG,MAAMA,IAAE,CAAC,OAAO,CAAC,UAAU,CAAC;QAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,QAAQ,CAACC,YAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;QAC3E,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC5C,QAAA,OAAO,QAAQ,CAAC,IAAI,EAAE;;SACjB;QACL,OAAO,CAAC,UAAU,CAAC;;AAEvB;;ACeA,MAAM,sBAAsB,GAAG,IAAI,GAAG,IAAI;AAE1C,MAAM,gBAAgB,GAAG,OACvB,GAAiB,EACjB,YAAoB,EACpB,aAAoC,EACpC,eAA0B,GAAA,sBAAsB,KAC9C;IACF,IAAI,KAAK,GAAG,CAAC;AACb,IAAA,WAAW,MAAM,KAAK,IAAI,YAAY,CAAC,aAAa,EAAE,eAAe,CAAC,EAAE;AACtE,QAAA,MAAM,eAAe,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AACpE,QAAA,KAAK,EAAE;;AAEX,CAAC;AAED;;;;;;;;;;;;;;;AAeG;MACU,UAAU,GAAG,OACxB,GAAiB,EACjB,QAAgB,EAChB,EAAE,QAAQ,EAAE,WAAW,GAAG,IAAI,EAAqB,EACnD,eAAwB,KACtB;IACF,IAAI,aAAa,GAA0B,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC;IAExE,IAAI,WAAW,EAAE;AACf,QAAA,aAAa,GAAG,YAAY,CAAC,aAAa,EAAE;AAC1C,YAAA,KAAK,EAAE,CAAC;YACR,SAAS,EAAE,oBAAoB,CAAC,IAAI;AACrC,SAAA,CAAC;;IAGJ,IAAI,QAAQ,EAAE;AACZ,QAAA,aAAa,GAAG,WAAW,CAAC,aAAa,EAAE,QAAQ,EAAE;YACnD,SAAS,EAAE,mBAAmB,CAAC,WAAW;AAC3C,SAAA,CAAC;;AAGJ,IAAA,MAAM,aAAa,GAAG;AACpB,QAAA,WAAW,EAAE;AACX,cAAE;AACE,gBAAA,KAAK,EAAE,CAAC;gBACR,SAAS,EAAE,oBAAoB,CAAC,IAAI;AACrC;AACH,cAAE,SAAS;AACb,QAAA,UAAU,EAAE;AACV,cAAE;gBACE,SAAS,EAAE,mBAAmB,CAAC,WAAW;AAC3C;AACH,cAAE,SAAS;KACd;AACD,IAAA,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE;QAC7C,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,SAAS;QAC5C,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG;QACpC,aAAa;AACd,KAAA,CAAC;AAEF,IAAA,MAAM,gBAAgB,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,EAAE,aAAa,EAAE,eAAe,CAAC;AAE1E,IAAA,MAAM,cAAc,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC;AACxD;AAEA;;;;;;;;;;;;AAYG;AACI,MAAM,YAAY,GAAG,OAC1B,GAAiB,EACjB,UAAkB,EAClB,eAAwB,KACtB;AACF,IAAA,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC;AAExC,IAAA,MAAM,QAAQ,GAAG,8BAA8B,CAAC,KAAK,CAAC;AAEtD,IAAA,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC,GAAG,EAAE;QACjD,QAAQ;AACR,QAAA,aAAa,EAAE;AACb,YAAA,WAAW,EAAE;gBACX,SAAS,EAAE,oBAAoB,CAAC,IAAI;AACpC,gBAAA,KAAK,EAAE,CAAC;AACT,aAAA;AACF,SAAA;AACF,KAAA,CAAC;AAEF,IAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACxB,QAAA,MAAM,4BAA4B,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,eAAe,CAAC;;AAGjF,IAAA,MAAM,cAAc,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC;AAC1D;AAEA;;;;;;;;AAQG;AACI,MAAM,4BAA4B,GAAG,OAC1C,GAAiB,EACjB,QAAgB,EAChB,QAAgB,EAChB,eAAwB,KACtB;IACF,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG;AACvC,IAAA,MAAM,UAAU,GAAG,MAAM,kCAAkC,CAAC,GAAG,EAAE;QAC/D,QAAQ;QACR,IAAI;QACJ,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS;AACxC,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,aAAa,EAAE,EAAE;AAClB,KAAA,CAAC;AAEF,IAAA,MAAM,gBAAgB,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC;AAE1F,IAAA,MAAM,cAAc,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC;AACxD;AAEA;;;;;;AAMG;AACI,MAAM,YAAY,GAAG,OAC1B,GAAiB,EACjB,GAAW,EACX,QAAiB,KACiB;IAClC,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC;AAEtD,IAAA,IAAI,QAAQ,GAAG,eAAe,CAAC,MAAM,cAAc,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;AAClE,IAAA,IAAI,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE;QACtC,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC;;AAE7D,QAAA,QAAQ,GAAG,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE;YACzC,SAAS,EAAE,mBAAmB,CAAC,WAAW;AAC3C,SAAA,CAAC;;AAGJ,IAAA,IAAI,QAAQ,CAAC,aAAa,EAAE,WAAW,EAAE;AACvC,QAAA,QAAQ,GAAG,cAAc,CAAC,QAAQ,EAAE;YAClC,SAAS,EAAE,oBAAoB,CAAC,IAAI;AACrC,SAAA,CAAC;;AAGJ,IAAA,OAAO,QAAQ;AACjB;AAEA;;;;;;;;;AASG;AACU,MAAA,+BAA+B,GAAG,OAC7C,GAAiB,EACjB,GAAW,KAC4B;IACvC,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC;AACtD,IAAA,IAAI,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE;AACtC,QAAA,OAAO,CAAC,IAAI,CACV,oFAAoF,CACrF;;IAGH,OAAO,cAAc,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC;AACrC;;AClOa,MAAA,wBAAwB,GAAG,CACtC,eAA4B,KACE;IAC9B,OAAO,IAAI,cAAc,CAAC;AACxB,QAAA,KAAK,CAAC,KAAK,EAAA;YACT,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;gBACrC,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,KAAI;oBACnC,IAAI,GAAG,EAAE;wBACP,MAAM,CAAC,GAAG,CAAC;;yBACN;AACL,wBAAA,OAAO,EAAE;;AAEb,iBAAC,CAAC;AACJ,aAAC,CAAC;SACH;QACD,KAAK,GAAA;YACH,eAAe,CAAC,GAAG,EAAE;SACtB;AACD,QAAA,KAAK,CAAC,GAAG,EAAA;AACP,YAAA,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC;SAC7B;AACF,KAAA,CAAC;AACJ;;;;","x_google_ignoreList":[6,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,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,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,74,75]}
|