@storm-trade/wallet-core 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/wallet-core.d.ts +62 -8
- package/dist/wallet-core.js +25633 -54
- package/dist/wallet-core.js.map +1 -1
- package/dist/wallet-core.umd.cjs +13 -1
- package/dist/wallet-core.umd.cjs.map +1 -1
- package/package.json +1 -1
package/dist/wallet-core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet-core.js","sources":["../src/adapters/iframe-adapter.ts"],"sourcesContent":["import {\n ActiveSessionsResponse,\n AdapterState,\n ConnectResponse,\n IframeAdapterProps,\n SignRequest,\n SignResponse\n} from \"../types.ts\";\n\ntype Waiter = [(value: any) => void, (e: Error) => void]\n\nexport class IframeAdapter {\n private readonly host: string;\n private readonly initTimeout: number;\n private readonly connectTimeout: number;\n private readonly signTimeout: number;\n private readonly activeSessionTimeout: number;\n private readonly waitingForResponse = new Map<string, Waiter>()\n private iframe?: HTMLIFrameElement;\n private state: AdapterState = 'not-ready';\n\n constructor(props: IframeAdapterProps) {\n this.host = props.host;\n this.initTimeout = props.initTimeout ?? 5000\n this.connectTimeout = props.connectTimeout ?? 60000\n this.signTimeout = props.signTimeout ?? 60000\n this.activeSessionTimeout = props.activeSessionTimeout ?? 5000\n }\n\n private async sendMessage<R>(payload: unknown, timeout: number): Promise<R> {\n const messageId = Math.random().toString()\n const response = Promise.race([\n new Promise<R>((resolve, reject) => {\n this.waitingForResponse.set(messageId, [resolve, reject])\n }),\n new Promise<R>((_, reject) => {\n setTimeout(() => {\n reject(new Error('Response timeout'))\n }, timeout)\n })\n ])\n this.iframe?.contentWindow?.postMessage({ id: messageId, payload }, this.host);\n return response\n }\n\n private setupMessageListener() {\n window.addEventListener('message', this.handleMessage);\n }\n\n private handleMessage = (e: MessageEvent<unknown>) => {\n if (typeof e.data !== 'object' || e.data === null) {\n return\n }\n if (!('payload' in e.data) || !('id' in e.data) || !('status' in e.data)) {\n return;\n }\n if (typeof e.data.id !== 'string' || typeof e.data.status !== 'string') {\n return;\n }\n const waiter = this.waitingForResponse.get(e.data.id)\n if (!waiter) {\n return;\n }\n const [resolve, reject] = waiter;\n if (e.data.status === 'success') {\n resolve(e.data.payload)\n } else {\n if ('error' in e.data) {\n reject(new Error(e.data.error as string))\n } else {\n reject(new Error('Unknown error'))\n }\n }\n\n }\n\n private async attachIframe(root: HTMLElement): Promise<void> {\n this.iframe = document.createElement('iframe');\n this.iframe.src = this.host;\n this.iframe.frameBorder = '0'\n root.appendChild(this.iframe)\n return new Promise((resolve, reject) => {\n this.iframe?.addEventListener('load', async () => {\n resolve();\n }, { once: true })\n this.iframe?.addEventListener('error', (e) => {\n reject(e)\n }, { once: true })\n })\n }\n\n async init(root: HTMLElement): Promise<void> {\n if (this.state === 'not-ready') {\n this.state = 'initializing'\n await this.attachIframe(root)\n this.setupMessageListener()\n await this.sendMessage({ type: 'ping' }, this.initTimeout)\n this.state = 'ready'\n }\n }\n\n destroy(): void {\n this.state = 'not-ready'\n window.removeEventListener('message', this.handleMessage);\n for (const [_, reject] of this.waitingForResponse.values()) {\n reject(new Error('Iframe disconnected'));\n }\n this.waitingForResponse.clear()\n this.iframe?.remove();\n }\n\n async connect(masterAddress: string): Promise<ConnectResponse> {\n return this.sendMessage({ type: 'connect', address: masterAddress }, this.connectTimeout)\n }\n\n async signMessage(masterAddress: string, message: SignRequest): Promise<SignResponse> {\n return this.sendMessage({ type: 'sign', address: masterAddress, message }, this.signTimeout)\n }\n\n async getActiveSessions(): Promise<ActiveSessionsResponse> {\n return this.sendMessage({ type: 'active-sessions' }, this.activeSessionTimeout)\n }\n\n async disconnect(masterAddress: string): Promise<void> {\n return this.sendMessage({ type: 'disconnect', address: masterAddress }, 1000)\n }\n}\n"],"names":["IframeAdapter","props","__publicField","waiter","resolve","reject","payload","timeout","_a","_b","messageId","response","_","root","e","masterAddress","message"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wallet-core.js","sources":["../src/adapters/iframe-adapter.ts","../../../node_modules/.pnpm/symbol.inspect@1.0.1/node_modules/symbol.inspect/index.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/utils/crc16.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/address/Address.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/address/ExternalAddress.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/utils/base32.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/address/ADNLAddress.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/boc/utils/paddedBits.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/boc/BitString.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/boc/BitBuilder.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/boc/CellType.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/dict/utils/readUnaryLength.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/boc/BitReader.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/boc/cell/exoticMerkleProof.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/dict/generateMerkleProof.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/dict/generateMerkleUpdate.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/dict/parseDict.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/dict/utils/findCommonPrefix.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/dict/serializeDict.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/dict/utils/internalKeySerializer.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/dict/Dictionary.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/boc/utils/strings.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/boc/Slice.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/boc/cell/exoticLibrary.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/boc/cell/exoticMerkleUpdate.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/boc/cell/LevelMask.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/boc/cell/exoticPruned.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/boc/cell/resolveExotic.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/boc/cell/descriptor.js","../../../node_modules/.pnpm/jssha@3.2.0/node_modules/jssha/dist/sha.js","../../../node_modules/.pnpm/@ton+crypto-primitives@2.1.0/node_modules/@ton/crypto-primitives/dist/browser/getSecureRandom.js","../../../node_modules/.pnpm/@ton+crypto-primitives@2.1.0/node_modules/@ton/crypto-primitives/dist/browser/hmac_sha512.js","../../../node_modules/.pnpm/@ton+crypto-primitives@2.1.0/node_modules/@ton/crypto-primitives/dist/browser/pbkdf2_sha512.js","../../../node_modules/.pnpm/@ton+crypto-primitives@2.1.0/node_modules/@ton/crypto-primitives/dist/browser/sha256.js","../../../node_modules/.pnpm/@ton+crypto-primitives@2.1.0/node_modules/@ton/crypto-primitives/dist/browser/sha512.js","../../../node_modules/.pnpm/@ton+crypto-primitives@2.1.0/node_modules/@ton/crypto-primitives/dist/browser.js","../../../node_modules/.pnpm/@ton+crypto@3.3.0/node_modules/@ton/crypto/dist/primitives/sha256.js","../../../node_modules/.pnpm/@ton+crypto@3.3.0/node_modules/@ton/crypto/dist/primitives/sha512.js","../../../node_modules/.pnpm/@ton+crypto@3.3.0/node_modules/@ton/crypto/dist/primitives/pbkdf2_sha512.js","../../../node_modules/.pnpm/@ton+crypto@3.3.0/node_modules/@ton/crypto/dist/primitives/hmac_sha512.js","../../../node_modules/.pnpm/@ton+crypto@3.3.0/node_modules/@ton/crypto/dist/primitives/getSecureRandom.js","../../../node_modules/.pnpm/@ton+crypto@3.3.0/node_modules/@ton/crypto/dist/passwords/wordlist.js","../../../node_modules/.pnpm/@ton+crypto@3.3.0/node_modules/@ton/crypto/dist/passwords/newSecureWords.js","../../../node_modules/.pnpm/@ton+crypto@3.3.0/node_modules/@ton/crypto/dist/passwords/newSecurePassphrase.js","../__vite-browser-external","../../../node_modules/.pnpm/tweetnacl@1.0.3/node_modules/tweetnacl/nacl-fast.js","../../../node_modules/.pnpm/@ton+crypto@3.3.0/node_modules/@ton/crypto/dist/utils/binary.js","../../../node_modules/.pnpm/@ton+crypto@3.3.0/node_modules/@ton/crypto/dist/mnemonic/wordlist.js","../../../node_modules/.pnpm/@ton+crypto@3.3.0/node_modules/@ton/crypto/dist/mnemonic/mnemonic.js","../../../node_modules/.pnpm/@ton+crypto@3.3.0/node_modules/@ton/crypto/dist/primitives/nacl.js","../../../node_modules/.pnpm/@ton+crypto@3.3.0/node_modules/@ton/crypto/dist/hd/ed25519.js","../../../node_modules/.pnpm/@ton+crypto@3.3.0/node_modules/@ton/crypto/dist/hd/symmetric.js","../../../node_modules/.pnpm/@ton+crypto@3.3.0/node_modules/@ton/crypto/dist/hd/mnemonics.js","../../../node_modules/.pnpm/@ton+crypto@3.3.0/node_modules/@ton/crypto/dist/index.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/boc/cell/wonderCalculator.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/boc/cell/utils/topologicalSort.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/utils/bitsForNumber.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/utils/crc32c.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/boc/cell/serialization.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/boc/Cell.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/boc/Builder.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/SimpleLibrary.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/TickTock.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/StateInit.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/address/contractAddress.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/tuple/tuple.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/tuple/reader.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/tuple/builder.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/utils/convert.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/ExtraCurrency.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/_helpers.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/AccountState.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/CurrencyCollection.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/AccountStorage.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/StorageUsed.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/StorageInto.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/Account.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/AccountStatus.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/AccountStatusChange.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/CommonMessageInfoRelaxed.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/MessageRelaxed.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/LibRef.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/OutList.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/CommonMessageInfo.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/ComputeSkipReason.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/DepthBalanceInfo.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/HashUpdate.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/MasterchainStateExtra.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/Message.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/SendMode.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/ReserveMode.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/ShardAccount.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/ShardAccounts.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/ShardIdent.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/ShardStateUnsplit.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/SplitMergeInfo.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/StorageUsedShort.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/TransactionActionPhase.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/TransactionBouncePhase.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/TransactionComputePhase.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/TransactionCreditPhase.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/TransactionStoragePhase.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/TransactionDescription.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/Transaction.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/types/_export.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/contract/openContract.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/contract/ComputeError.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/utils/getMethodId.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/crypto/safeSign.js","../../../node_modules/.pnpm/@ton+core@0.60.0_@ton+crypto@3.3.0/node_modules/@ton/core/dist/index.js","../../../node_modules/.pnpm/@ton+ton@15.2.1_@ton+core@0.60.0_@ton+crypto@3.3.0__@ton+crypto@3.3.0/node_modules/@ton/ton/dist/client/api/TonCache.js","../../../node_modules/.pnpm/dataloader@2.2.3/node_modules/dataloader/index.js","../../../node_modules/.pnpm/axios@1.7.9/node_modules/axios/dist/browser/axios.cjs","../../../node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/helpers/util.js","../../../node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/ZodError.js","../../../node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/locales/en.js","../../../node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/errors.js","../../../node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/helpers/parseUtil.js","../../../node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/helpers/typeAliases.js","../../../node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/helpers/errorUtil.js","../../../node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/types.js","../../../node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/external.js","../../../node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/index.js","../../../node_modules/.pnpm/@ton+ton@15.2.1_@ton+core@0.60.0_@ton+crypto@3.3.0__@ton+crypto@3.3.0/node_modules/@ton/ton/dist/client/api/HttpApi.js","../../../node_modules/.pnpm/@ton+ton@15.2.1_@ton+core@0.60.0_@ton+crypto@3.3.0__@ton+crypto@3.3.0/node_modules/@ton/ton/dist/client/TonClient.js","../../../node_modules/.pnpm/@ton+ton@15.2.1_@ton+core@0.60.0_@ton+crypto@3.3.0__@ton+crypto@3.3.0/node_modules/@ton/ton/dist/utils/toUrlSafe.js","../../../node_modules/.pnpm/@ton+ton@15.2.1_@ton+core@0.60.0_@ton+crypto@3.3.0__@ton+crypto@3.3.0/node_modules/@ton/ton/dist/client/TonClient4.js","../../../node_modules/.pnpm/@ton+ton@15.2.1_@ton+core@0.60.0_@ton+crypto@3.3.0__@ton+crypto@3.3.0/node_modules/@ton/ton/dist/wallets/v5beta/WalletV5BetaWalletId.js","../../../node_modules/.pnpm/@ton+ton@15.2.1_@ton+core@0.60.0_@ton+crypto@3.3.0__@ton+crypto@3.3.0/node_modules/@ton/ton/dist/wallets/v5beta/WalletContractV5Beta.js","../../../node_modules/.pnpm/@ton+ton@15.2.1_@ton+core@0.60.0_@ton+crypto@3.3.0__@ton+crypto@3.3.0/node_modules/@ton/ton/dist/wallets/v5beta/WalletV5OutActions.js","../../../node_modules/.pnpm/@ton+ton@15.2.1_@ton+core@0.60.0_@ton+crypto@3.3.0__@ton+crypto@3.3.0/node_modules/@ton/ton/dist/wallets/v5beta/WalletV5BetaActions.js","../../../node_modules/.pnpm/@ton+ton@15.2.1_@ton+core@0.60.0_@ton+crypto@3.3.0__@ton+crypto@3.3.0/node_modules/@ton/ton/dist/wallets/signing/singer.js","../../../node_modules/.pnpm/@ton+ton@15.2.1_@ton+core@0.60.0_@ton+crypto@3.3.0__@ton+crypto@3.3.0/node_modules/@ton/ton/dist/wallets/v5r1/WalletV5R1WalletId.js","../../../node_modules/.pnpm/@ton+ton@15.2.1_@ton+core@0.60.0_@ton+crypto@3.3.0__@ton+crypto@3.3.0/node_modules/@ton/ton/dist/wallets/v5r1/WalletContractV5R1.js","../../../node_modules/.pnpm/@ton+ton@15.2.1_@ton+core@0.60.0_@ton+crypto@3.3.0__@ton+crypto@3.3.0/node_modules/@ton/ton/dist/wallets/v5r1/WalletV5R1Actions.js","../../../node_modules/.pnpm/@ton+ton@15.2.1_@ton+core@0.60.0_@ton+crypto@3.3.0__@ton+crypto@3.3.0/node_modules/@ton/ton/dist/wallets/signing/createWalletTransfer.js","../../../node_modules/.pnpm/@ton+ton@15.2.1_@ton+core@0.60.0_@ton+crypto@3.3.0__@ton+crypto@3.3.0/node_modules/@ton/ton/dist/wallets/WalletContractV1R1.js","../../../node_modules/.pnpm/@ton+ton@15.2.1_@ton+core@0.60.0_@ton+crypto@3.3.0__@ton+crypto@3.3.0/node_modules/@ton/ton/dist/wallets/WalletContractV1R2.js","../../../node_modules/.pnpm/@ton+ton@15.2.1_@ton+core@0.60.0_@ton+crypto@3.3.0__@ton+crypto@3.3.0/node_modules/@ton/ton/dist/wallets/WalletContractV1R3.js","../../../node_modules/.pnpm/@ton+ton@15.2.1_@ton+core@0.60.0_@ton+crypto@3.3.0__@ton+crypto@3.3.0/node_modules/@ton/ton/dist/wallets/WalletContractV2R1.js","../../../node_modules/.pnpm/@ton+ton@15.2.1_@ton+core@0.60.0_@ton+crypto@3.3.0__@ton+crypto@3.3.0/node_modules/@ton/ton/dist/wallets/WalletContractV2R2.js","../../../node_modules/.pnpm/@ton+ton@15.2.1_@ton+core@0.60.0_@ton+crypto@3.3.0__@ton+crypto@3.3.0/node_modules/@ton/ton/dist/wallets/WalletContractV3R1.js","../../../node_modules/.pnpm/@ton+ton@15.2.1_@ton+core@0.60.0_@ton+crypto@3.3.0__@ton+crypto@3.3.0/node_modules/@ton/ton/dist/wallets/WalletContractV3R2.js","../../../node_modules/.pnpm/@ton+ton@15.2.1_@ton+core@0.60.0_@ton+crypto@3.3.0__@ton+crypto@3.3.0/node_modules/@ton/ton/dist/wallets/WalletContractV4.js","../../../node_modules/.pnpm/@ton+ton@15.2.1_@ton+core@0.60.0_@ton+crypto@3.3.0__@ton+crypto@3.3.0/node_modules/@ton/ton/dist/wallets/WalletContractV5Beta.js","../../../node_modules/.pnpm/@ton+ton@15.2.1_@ton+core@0.60.0_@ton+crypto@3.3.0__@ton+crypto@3.3.0/node_modules/@ton/ton/dist/wallets/WalletContractV5R1.js","../../../node_modules/.pnpm/@ton+ton@15.2.1_@ton+core@0.60.0_@ton+crypto@3.3.0__@ton+crypto@3.3.0/node_modules/@ton/ton/dist/jetton/JettonMaster.js","../../../node_modules/.pnpm/@ton+ton@15.2.1_@ton+core@0.60.0_@ton+crypto@3.3.0__@ton+crypto@3.3.0/node_modules/@ton/ton/dist/jetton/JettonWallet.js","../../../node_modules/.pnpm/@ton+ton@15.2.1_@ton+core@0.60.0_@ton+crypto@3.3.0__@ton+crypto@3.3.0/node_modules/@ton/ton/dist/multisig/MultisigOrder.js","../../../node_modules/.pnpm/@ton+ton@15.2.1_@ton+core@0.60.0_@ton+crypto@3.3.0__@ton+crypto@3.3.0/node_modules/@ton/ton/dist/multisig/MultisigOrderBuilder.js","../../../node_modules/.pnpm/@ton+ton@15.2.1_@ton+core@0.60.0_@ton+crypto@3.3.0__@ton+crypto@3.3.0/node_modules/@ton/ton/dist/multisig/MultisigWallet.js","../../../node_modules/.pnpm/@ton+ton@15.2.1_@ton+core@0.60.0_@ton+crypto@3.3.0__@ton+crypto@3.3.0/node_modules/@ton/ton/dist/elector/ElectorContract.js","../../../node_modules/.pnpm/@ton+ton@15.2.1_@ton+core@0.60.0_@ton+crypto@3.3.0__@ton+crypto@3.3.0/node_modules/@ton/ton/dist/config/ConfigParser.js","../../../node_modules/.pnpm/@ton+ton@15.2.1_@ton+core@0.60.0_@ton+crypto@3.3.0__@ton+crypto@3.3.0/node_modules/@ton/ton/dist/utils/fees.js","../../../node_modules/.pnpm/@ton+ton@15.2.1_@ton+core@0.60.0_@ton+crypto@3.3.0__@ton+crypto@3.3.0/node_modules/@ton/ton/dist/index.js","../src/utils/packers.ts","../src/wallet.ts"],"sourcesContent":["import {\n ActiveSessionsResponse,\n AdapterState,\n ConnectResponse,\n CreateTransferRequest,\n CreateTransferResponse,\n IframeAdapterProps,\n SignRequest,\n SignResponse,\n Timeouts\n} from \"../types\";\n\ntype Waiter = [(value: any) => void, (e: Error) => void]\n\nexport class IframeAdapter {\n private readonly host: string;\n private readonly timeouts: Required<Timeouts>\n private readonly waitingForResponse = new Map<string, Waiter>()\n private iframe?: HTMLIFrameElement;\n private state: AdapterState = 'not-ready';\n\n constructor(props: IframeAdapterProps) {\n this.host = props.host;\n this.timeouts = {\n init: 5000,\n connect: 60000,\n disconnect: 1000,\n sign: 1000,\n createTransfer: 1000,\n activeSessions: 1000,\n ...props.timeouts\n }\n }\n\n private async sendMessage<R>(payload: unknown, timeout: number): Promise<R> {\n const messageId = Math.random().toString()\n const response = Promise.race([\n new Promise<R>((resolve, reject) => {\n this.waitingForResponse.set(messageId, [resolve, reject])\n }),\n new Promise<R>((_, reject) => {\n setTimeout(() => {\n reject(new Error('Response timeout'))\n }, timeout)\n })\n ])\n this.iframe?.contentWindow?.postMessage({ id: messageId, payload }, this.host);\n return response\n }\n\n private setupMessageListener() {\n window.addEventListener('message', this.handleMessage);\n }\n\n private handleMessage = (e: MessageEvent<unknown>) => {\n if (typeof e.data !== 'object' || e.data === null) {\n return\n }\n if (!('payload' in e.data) || !('id' in e.data) || !('status' in e.data)) {\n return;\n }\n if (typeof e.data.id !== 'string' || typeof e.data.status !== 'string') {\n return;\n }\n const waiter = this.waitingForResponse.get(e.data.id)\n if (!waiter) {\n return;\n }\n const [resolve, reject] = waiter;\n if (e.data.status === 'success') {\n resolve(e.data.payload)\n } else {\n if ('error' in e.data) {\n reject(new Error(e.data.error as string))\n } else {\n reject(new Error('Unknown error'))\n }\n }\n\n }\n\n private async attachIframe(root: HTMLElement): Promise<void> {\n this.iframe = document.createElement('iframe');\n this.iframe.src = this.host;\n this.iframe.frameBorder = '0'\n root.appendChild(this.iframe)\n return new Promise((resolve, reject) => {\n this.iframe?.addEventListener('load', async () => {\n resolve();\n }, { once: true })\n this.iframe?.addEventListener('error', (e) => {\n reject(e)\n }, { once: true })\n })\n }\n\n async init(root: HTMLElement): Promise<void> {\n if (this.state === 'not-ready') {\n this.state = 'initializing'\n await this.attachIframe(root)\n this.setupMessageListener()\n await this.sendMessage({ type: 'ping' }, this.timeouts.init)\n this.state = 'ready'\n }\n }\n\n destroy(): void {\n this.state = 'not-ready'\n window.removeEventListener('message', this.handleMessage);\n for (const [_, reject] of this.waitingForResponse.values()) {\n reject(new Error('Iframe disconnected'));\n }\n this.waitingForResponse.clear()\n this.iframe?.remove();\n }\n\n async connect(masterAddress: string): Promise<ConnectResponse> {\n return this.sendMessage({ type: 'connect', address: masterAddress }, this.timeouts.connect)\n }\n\n async signMessage(masterAddress: string, message: SignRequest): Promise<SignResponse> {\n return this.sendMessage({ type: 'sign', address: masterAddress, message }, this.timeouts.sign)\n }\n\n async createTransfer(masterAddress: string, message: CreateTransferRequest): Promise<CreateTransferResponse> {\n return this.sendMessage({\n type: 'create-transfer',\n address: masterAddress,\n data: message\n }, this.timeouts.createTransfer)\n }\n\n async getActiveSessions(): Promise<ActiveSessionsResponse> {\n return this.sendMessage({ type: 'active-sessions' }, this.timeouts.activeSessions)\n }\n\n async disconnect(masterAddress: string): Promise<void> {\n return this.sendMessage({ type: 'disconnect', address: masterAddress }, this.timeouts.disconnect)\n }\n}\n","\"use strict\";\n/**\n * <symbol> that can be used to declare custom inspect functions.\n *\n * same as Symbol.for('nodejs.util.inspect.custom')\n * same as util.inspect.custom\n */\nconst SymbolInspect = Symbol.for('nodejs.util.inspect.custom');\nmodule.exports = SymbolInspect;\n//# sourceMappingURL=index.js.map","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.crc16 = void 0;\nfunction crc16(data) {\n const poly = 0x1021;\n let reg = 0;\n const message = Buffer.alloc(data.length + 2);\n message.set(data);\n for (let byte of message) {\n let mask = 0x80;\n while (mask > 0) {\n reg <<= 1;\n if (byte & mask) {\n reg += 1;\n }\n mask >>= 1;\n if (reg > 0xffff) {\n reg &= 0xffff;\n reg ^= poly;\n }\n }\n }\n return Buffer.from([Math.floor(reg / 256), reg % 256]);\n}\nexports.crc16 = crc16;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.address = exports.Address = void 0;\nconst symbol_inspect_1 = __importDefault(require(\"symbol.inspect\"));\nconst crc16_1 = require(\"../utils/crc16\");\nconst bounceable_tag = 0x11;\nconst non_bounceable_tag = 0x51;\nconst test_flag = 0x80;\nfunction parseFriendlyAddress(src) {\n if (typeof src === 'string' && !Address.isFriendly(src)) {\n throw new Error('Unknown address type');\n }\n const data = Buffer.isBuffer(src) ? src : Buffer.from(src, 'base64');\n // 1byte tag + 1byte workchain + 32 bytes hash + 2 byte crc\n if (data.length !== 36) {\n throw new Error('Unknown address type: byte length is not equal to 36');\n }\n // Prepare data\n const addr = data.subarray(0, 34);\n const crc = data.subarray(34, 36);\n const calcedCrc = (0, crc16_1.crc16)(addr);\n if (!(calcedCrc[0] === crc[0] && calcedCrc[1] === crc[1])) {\n throw new Error('Invalid checksum: ' + src);\n }\n // Parse tag\n let tag = addr[0];\n let isTestOnly = false;\n let isBounceable = false;\n if (tag & test_flag) {\n isTestOnly = true;\n tag = tag ^ test_flag;\n }\n if ((tag !== bounceable_tag) && (tag !== non_bounceable_tag))\n throw \"Unknown address tag\";\n isBounceable = tag === bounceable_tag;\n let workchain = null;\n if (addr[1] === 0xff) { // TODO we should read signed integer here\n workchain = -1;\n }\n else {\n workchain = addr[1];\n }\n const hashPart = addr.subarray(2, 34);\n return { isTestOnly, isBounceable, workchain, hashPart };\n}\nclass Address {\n static isAddress(src) {\n return src instanceof Address;\n }\n static isFriendly(source) {\n // Check length\n if (source.length !== 48) {\n return false;\n }\n // Check if address is valid base64\n if (!/[A-Za-z0-9+/_-]+/.test(source)) {\n return false;\n }\n return true;\n }\n static isRaw(source) {\n // Check if has delimiter\n if (source.indexOf(':') === -1) {\n return false;\n }\n let [wc, hash] = source.split(':');\n // wc is not valid\n if (!Number.isInteger(parseFloat(wc))) {\n return false;\n }\n // hash is not valid\n if (!/[a-f0-9]+/.test(hash.toLowerCase())) {\n return false;\n }\n // has is not correct\n if (hash.length !== 64) {\n return false;\n }\n return true;\n }\n static normalize(source) {\n if (typeof source === 'string') {\n return Address.parse(source).toString();\n }\n else {\n return source.toString();\n }\n }\n static parse(source) {\n if (Address.isFriendly(source)) {\n return this.parseFriendly(source).address;\n }\n else if (Address.isRaw(source)) {\n return this.parseRaw(source);\n }\n else {\n throw new Error('Unknown address type: ' + source);\n }\n }\n static parseRaw(source) {\n let workChain = parseInt(source.split(\":\")[0]);\n let hash = Buffer.from(source.split(\":\")[1], 'hex');\n return new Address(workChain, hash);\n }\n static parseFriendly(source) {\n if (Buffer.isBuffer(source)) {\n let r = parseFriendlyAddress(source);\n return {\n isBounceable: r.isBounceable,\n isTestOnly: r.isTestOnly,\n address: new Address(r.workchain, r.hashPart)\n };\n }\n else {\n let addr = source.replace(/\\-/g, '+').replace(/_/g, '\\/'); // Convert from url-friendly to true base64\n let r = parseFriendlyAddress(addr);\n return {\n isBounceable: r.isBounceable,\n isTestOnly: r.isTestOnly,\n address: new Address(r.workchain, r.hashPart)\n };\n }\n }\n constructor(workChain, hash) {\n this.toRawString = () => {\n return this.workChain + ':' + this.hash.toString('hex');\n };\n this.toRaw = () => {\n const addressWithChecksum = Buffer.alloc(36);\n addressWithChecksum.set(this.hash);\n addressWithChecksum.set([this.workChain, this.workChain, this.workChain, this.workChain], 32);\n return addressWithChecksum;\n };\n this.toStringBuffer = (args) => {\n let testOnly = (args && args.testOnly !== undefined) ? args.testOnly : false;\n let bounceable = (args && args.bounceable !== undefined) ? args.bounceable : true;\n let tag = bounceable ? bounceable_tag : non_bounceable_tag;\n if (testOnly) {\n tag |= test_flag;\n }\n const addr = Buffer.alloc(34);\n addr[0] = tag;\n addr[1] = this.workChain;\n addr.set(this.hash, 2);\n const addressWithChecksum = Buffer.alloc(36);\n addressWithChecksum.set(addr);\n addressWithChecksum.set((0, crc16_1.crc16)(addr), 34);\n return addressWithChecksum;\n };\n this.toString = (args) => {\n let urlSafe = (args && args.urlSafe !== undefined) ? args.urlSafe : true;\n let buffer = this.toStringBuffer(args);\n if (urlSafe) {\n return buffer.toString('base64').replace(/\\+/g, '-').replace(/\\//g, '_');\n }\n else {\n return buffer.toString('base64');\n }\n };\n this[_a] = () => this.toString();\n if (hash.length !== 32) {\n throw new Error('Invalid address hash length: ' + hash.length);\n }\n this.workChain = workChain;\n this.hash = hash;\n Object.freeze(this);\n }\n equals(src) {\n if (src.workChain !== this.workChain) {\n return false;\n }\n return src.hash.equals(this.hash);\n }\n}\nexports.Address = Address;\n_a = symbol_inspect_1.default;\nfunction address(src) {\n return Address.parse(src);\n}\nexports.address = address;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExternalAddress = void 0;\nconst symbol_inspect_1 = __importDefault(require(\"symbol.inspect\"));\nclass ExternalAddress {\n static isAddress(src) {\n return src instanceof ExternalAddress;\n }\n constructor(value, bits) {\n this[_a] = () => this.toString();\n this.value = value;\n this.bits = bits;\n }\n toString() {\n return `External<${this.bits}:${this.value}>`;\n }\n}\nexports.ExternalAddress = ExternalAddress;\n_a = symbol_inspect_1.default;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.base32Decode = exports.base32Encode = void 0;\nconst alphabet = 'abcdefghijklmnopqrstuvwxyz234567';\nfunction base32Encode(buffer) {\n const length = buffer.byteLength;\n let bits = 0;\n let value = 0;\n let output = '';\n for (let i = 0; i < length; i++) {\n value = (value << 8) | buffer[i];\n bits += 8;\n while (bits >= 5) {\n output += alphabet[(value >>> (bits - 5)) & 31];\n bits -= 5;\n }\n }\n if (bits > 0) {\n output += alphabet[(value << (5 - bits)) & 31];\n }\n return output;\n}\nexports.base32Encode = base32Encode;\nfunction readChar(alphabet, char) {\n const idx = alphabet.indexOf(char);\n if (idx === -1) {\n throw new Error('Invalid character found: ' + char);\n }\n return idx;\n}\nfunction base32Decode(input) {\n let cleanedInput;\n cleanedInput = input.toLowerCase();\n const { length } = cleanedInput;\n let bits = 0;\n let value = 0;\n let index = 0;\n const output = Buffer.alloc(((length * 5) / 8) | 0);\n for (let i = 0; i < length; i++) {\n value = (value << 5) | readChar(alphabet, cleanedInput[i]);\n bits += 5;\n if (bits >= 8) {\n output[index++] = (value >>> (bits - 8)) & 255;\n bits -= 8;\n }\n }\n return output;\n}\nexports.base32Decode = base32Decode;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ADNLAddress = void 0;\nconst symbol_inspect_1 = __importDefault(require(\"symbol.inspect\"));\nconst base32_1 = require(\"../utils/base32\");\nconst crc16_1 = require(\"../utils/crc16\");\nclass ADNLAddress {\n static parseFriendly(src) {\n if (src.length !== 55) {\n throw Error('Invalid address');\n }\n // Decoding\n src = 'f' + src;\n let decoded = (0, base32_1.base32Decode)(src);\n if (decoded[0] !== 0x2d) {\n throw Error('Invalid address');\n }\n let gotHash = decoded.slice(33);\n let hash = (0, crc16_1.crc16)(decoded.slice(0, 33));\n if (!hash.equals(gotHash)) {\n throw Error('Invalid address');\n }\n return new ADNLAddress(decoded.slice(1, 33));\n }\n static parseRaw(src) {\n const data = Buffer.from(src, 'base64');\n return new ADNLAddress(data);\n }\n constructor(address) {\n this.toRaw = () => {\n return this.address.toString('hex').toUpperCase();\n };\n this.toString = () => {\n let data = Buffer.concat([Buffer.from([0x2D]), this.address]);\n let hash = (0, crc16_1.crc16)(data);\n data = Buffer.concat([data, hash]);\n return (0, base32_1.base32Encode)(data).slice(1);\n };\n this[_a] = () => this.toString();\n if (address.length !== 32) {\n throw Error('Invalid address');\n }\n this.address = address;\n }\n equals(b) {\n return this.address.equals(b.address);\n }\n}\nexports.ADNLAddress = ADNLAddress;\n_a = symbol_inspect_1.default;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.paddedBufferToBits = exports.bitsToPaddedBuffer = void 0;\nconst BitBuilder_1 = require(\"../BitBuilder\");\nconst BitString_1 = require(\"../BitString\");\nfunction bitsToPaddedBuffer(bits) {\n // Create builder\n let builder = new BitBuilder_1.BitBuilder(Math.ceil(bits.length / 8) * 8);\n builder.writeBits(bits);\n // Apply padding\n let padding = Math.ceil(bits.length / 8) * 8 - bits.length;\n for (let i = 0; i < padding; i++) {\n if (i === 0) {\n builder.writeBit(1);\n }\n else {\n builder.writeBit(0);\n }\n }\n return builder.buffer();\n}\nexports.bitsToPaddedBuffer = bitsToPaddedBuffer;\nfunction paddedBufferToBits(buff) {\n let bitLen = 0;\n // Finding rightmost non-zero byte in the buffer\n for (let i = buff.length - 1; i >= 0; i--) {\n if (buff[i] !== 0) {\n const testByte = buff[i];\n // Looking for a rightmost set padding bit\n let bitPos = testByte & -testByte;\n if ((bitPos & 1) == 0) {\n // It's power of 2 (only one bit set)\n bitPos = Math.log2(bitPos) + 1;\n }\n if (i > 0) {\n // If we are dealing with more than 1 byte buffer\n bitLen = i << 3; //Number of full bytes * 8\n }\n bitLen += 8 - bitPos;\n break;\n }\n }\n return new BitString_1.BitString(buff, 0, bitLen);\n}\nexports.paddedBufferToBits = paddedBufferToBits;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BitString = void 0;\nconst paddedBits_1 = require(\"./utils/paddedBits\");\nconst symbol_inspect_1 = __importDefault(require(\"symbol.inspect\"));\n/**\n * BitString is a class that represents a bitstring in a buffer with a specified offset and length\n */\nclass BitString {\n /**\n * Checks if supplied object is BitString\n * @param src is unknow object\n * @returns true if object is BitString and false otherwise\n **/\n static isBitString(src) {\n return src instanceof BitString;\n }\n /**\n * Constructing BitString from a buffer\n * @param data data that contains the bitstring data. NOTE: We are expecting this buffer to be NOT modified\n * @param offset offset in bits from the start of the buffer\n * @param length length of the bitstring in bits\n */\n constructor(data, offset, length) {\n this[_a] = () => this.toString();\n // Check bounds\n if (length < 0) {\n throw new Error(`Length ${length} is out of bounds`);\n }\n this._length = length;\n this._data = data;\n this._offset = offset;\n }\n /**\n * Returns the length of the bitstring\n */\n get length() {\n return this._length;\n }\n /**\n * Returns the bit at the specified index\n * @param index index of the bit\n * @throws Error if index is out of bounds\n * @returns true if the bit is set, false otherwise\n */\n at(index) {\n // Check bounds\n if (index >= this._length) {\n throw new Error(`Index ${index} > ${this._length} is out of bounds`);\n }\n if (index < 0) {\n throw new Error(`Index ${index} < 0 is out of bounds`);\n }\n // Calculcate offsets\n let byteIndex = (this._offset + index) >> 3;\n let bitIndex = 7 - ((this._offset + index) % 8); // NOTE: We are using big endian\n // Return the bit\n return (this._data[byteIndex] & (1 << bitIndex)) !== 0;\n }\n /**\n * Get a subscring of the bitstring\n * @param offset\n * @param length\n * @returns\n */\n substring(offset, length) {\n // Check offset\n if (offset > this._length) {\n throw new Error(`Offset(${offset}) > ${this._length} is out of bounds`);\n }\n if (offset < 0) {\n throw new Error(`Offset(${offset}) < 0 is out of bounds`);\n }\n // Corner case of empty string\n if (length === 0) {\n return BitString.EMPTY;\n }\n if (offset + length > this._length) {\n throw new Error(`Offset ${offset} + Length ${length} > ${this._length} is out of bounds`);\n }\n // Create substring\n return new BitString(this._data, this._offset + offset, length);\n }\n /**\n * Try to get a buffer from the bitstring without allocations\n * @param offset offset in bits\n * @param length length in bits\n * @returns buffer if the bitstring is aligned to bytes, null otherwise\n */\n subbuffer(offset, length) {\n // Check offset\n if (offset > this._length) {\n throw new Error(`Offset ${offset} is out of bounds`);\n }\n if (offset < 0) {\n throw new Error(`Offset ${offset} is out of bounds`);\n }\n if (offset + length > this._length) {\n throw new Error(`Offset + Lenght = ${offset + length} is out of bounds`);\n }\n // Check alignment\n if (length % 8 !== 0) {\n return null;\n }\n if ((this._offset + offset) % 8 !== 0) {\n return null;\n }\n // Create substring\n let start = ((this._offset + offset) >> 3);\n let end = start + (length >> 3);\n return this._data.subarray(start, end);\n }\n /**\n * Checks for equality\n * @param b other bitstring\n * @returns true if the bitstrings are equal, false otherwise\n */\n equals(b) {\n if (this._length !== b._length) {\n return false;\n }\n for (let i = 0; i < this._length; i++) {\n if (this.at(i) !== b.at(i)) {\n return false;\n }\n }\n return true;\n }\n /**\n * Format to canonical string\n * @returns formatted bits as a string\n */\n toString() {\n const padded = (0, paddedBits_1.bitsToPaddedBuffer)(this);\n if (this._length % 4 === 0) {\n const s = padded.subarray(0, Math.ceil(this._length / 8)).toString('hex').toUpperCase();\n if (this._length % 8 === 0) {\n return s;\n }\n else {\n return s.substring(0, s.length - 1);\n }\n }\n else {\n const hex = padded.toString('hex').toUpperCase();\n if (this._length % 8 <= 4) {\n return hex.substring(0, hex.length - 1) + '_';\n }\n else {\n return hex + '_';\n }\n }\n }\n}\nexports.BitString = BitString;\n_a = symbol_inspect_1.default;\nBitString.EMPTY = new BitString(Buffer.alloc(0), 0, 0);\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BitBuilder = void 0;\nconst Address_1 = require(\"../address/Address\");\nconst ExternalAddress_1 = require(\"../address/ExternalAddress\");\nconst BitString_1 = require(\"./BitString\");\n/**\n * Class for building bit strings\n */\nclass BitBuilder {\n constructor(size = 1023) {\n this._buffer = Buffer.alloc(Math.ceil(size / 8));\n this._length = 0;\n }\n /**\n * Current number of bits written\n */\n get length() {\n return this._length;\n }\n /**\n * Write a single bit\n * @param value bit to write, true or positive number for 1, false or zero or negative for 0\n */\n writeBit(value) {\n // Check overflow\n let n = this._length;\n if (n > this._buffer.length * 8) {\n throw new Error(\"BitBuilder overflow\");\n }\n // Set bit\n if ((typeof value === 'boolean' && value === true) || (typeof value === 'number' && value > 0)) {\n this._buffer[(n / 8) | 0] |= 1 << (7 - (n % 8));\n }\n // Advance\n this._length++;\n }\n /**\n * Copy bits from BitString\n * @param src source bits\n */\n writeBits(src) {\n for (let i = 0; i < src.length; i++) {\n this.writeBit(src.at(i));\n }\n }\n /**\n * Write bits from buffer\n * @param src source buffer\n */\n writeBuffer(src) {\n // Special case for aligned offsets\n if (this._length % 8 === 0) {\n if (this._length + src.length * 8 > this._buffer.length * 8) {\n throw new Error(\"BitBuilder overflow\");\n }\n src.copy(this._buffer, this._length / 8);\n this._length += src.length * 8;\n }\n else {\n for (let i = 0; i < src.length; i++) {\n this.writeUint(src[i], 8);\n }\n }\n }\n /**\n * Write uint value\n * @param value value as bigint or number\n * @param bits number of bits to write\n */\n writeUint(value, bits) {\n if (bits < 0 || !Number.isSafeInteger(bits)) {\n throw Error(`invalid bit length. Got ${bits}`);\n }\n const v = BigInt(value);\n if (bits === 0) {\n if (v !== 0n) {\n throw Error(`value is not zero for ${bits} bits. Got ${value}`);\n }\n else {\n return;\n }\n }\n const vBits = (1n << BigInt(bits));\n if (v < 0 || v >= vBits) {\n throw Error(`bitLength is too small for a value ${value}. Got ${bits}`);\n }\n if (this._length + bits > this._buffer.length * 8) {\n throw new Error(\"BitBuilder overflow\");\n }\n const tillByte = 8 - (this._length % 8);\n if (tillByte > 0) {\n const bidx = Math.floor(this._length / 8);\n if (bits < tillByte) {\n const wb = Number(v);\n this._buffer[bidx] |= wb << (tillByte - bits);\n this._length += bits;\n }\n else {\n const wb = Number(v >> BigInt(bits - tillByte));\n this._buffer[bidx] |= wb;\n this._length += tillByte;\n }\n }\n bits -= tillByte;\n while (bits > 0) {\n if (bits >= 8) {\n this._buffer[this._length / 8] = Number((v >> BigInt(bits - 8)) & 0xffn);\n this._length += 8;\n bits -= 8;\n }\n else {\n this._buffer[this._length / 8] = Number((v << BigInt(8 - bits)) & 0xffn);\n this._length += bits;\n bits = 0;\n }\n }\n }\n /**\n * Write int value\n * @param value value as bigint or number\n * @param bits number of bits to write\n */\n writeInt(value, bits) {\n let v = BigInt(value);\n if (bits < 0 || !Number.isSafeInteger(bits)) {\n throw Error(`invalid bit length. Got ${bits}`);\n }\n // Corner case for zero bits\n if (bits === 0) {\n if (value !== 0n) {\n throw Error(`value is not zero for ${bits} bits. Got ${value}`);\n }\n else {\n return;\n }\n }\n // Corner case for one bit\n if (bits === 1) {\n if (value !== -1n && value !== 0n) {\n throw Error(`value is not zero or -1 for ${bits} bits. Got ${value}`);\n }\n else {\n this.writeBit(value === -1n);\n return;\n }\n }\n // Check input\n let vBits = 1n << (BigInt(bits) - 1n);\n if (v < -vBits || v >= vBits) {\n throw Error(`value is out of range for ${bits} bits. Got ${value}`);\n }\n // Write sign\n if (v < 0) {\n this.writeBit(true);\n v = vBits + v;\n }\n else {\n this.writeBit(false);\n }\n // Write value\n this.writeUint(v, bits - 1);\n }\n /**\n * Wrtie var uint value, used for serializing coins\n * @param value value to write as bigint or number\n * @param bits header bits to write size\n */\n writeVarUint(value, bits) {\n let v = BigInt(value);\n if (bits < 0 || !Number.isSafeInteger(bits)) {\n throw Error(`invalid bit length. Got ${bits}`);\n }\n if (v < 0) {\n throw Error(`value is negative. Got ${value}`);\n }\n // Corner case for zero\n if (v === 0n) {\n // Write zero size\n this.writeUint(0, bits);\n return;\n }\n // Calculate size\n const sizeBytes = Math.ceil((v.toString(2).length) / 8); // Fastest way in most environments\n const sizeBits = sizeBytes * 8;\n // Write size\n this.writeUint(sizeBytes, bits);\n // Write number\n this.writeUint(v, sizeBits);\n }\n /**\n * Wrtie var int value, used for serializing coins\n * @param value value to write as bigint or number\n * @param bits header bits to write size\n */\n writeVarInt(value, bits) {\n let v = BigInt(value);\n if (bits < 0 || !Number.isSafeInteger(bits)) {\n throw Error(`invalid bit length. Got ${bits}`);\n }\n // Corner case for zero\n if (v === 0n) {\n // Write zero size\n this.writeUint(0, bits);\n return;\n }\n // Calculate size\n let v2 = v > 0 ? v : -v;\n const sizeBytes = Math.ceil((v2.toString(2).length + 1) / 8); // Fastest way in most environments\n const sizeBits = sizeBytes * 8;\n // Write size\n this.writeUint(sizeBytes, bits);\n // Write number\n this.writeInt(v, sizeBits);\n }\n /**\n * Write coins in var uint format\n * @param amount amount to write\n */\n writeCoins(amount) {\n this.writeVarUint(amount, 4);\n }\n /**\n * Write address\n * @param address write address or address external\n */\n writeAddress(address) {\n // Is empty address\n if (address === null || address === undefined) {\n this.writeUint(0, 2); // Empty address\n return;\n }\n // Is Internal Address\n if (Address_1.Address.isAddress(address)) {\n this.writeUint(2, 2); // Internal address\n this.writeUint(0, 1); // No anycast\n this.writeInt(address.workChain, 8);\n this.writeBuffer(address.hash);\n return;\n }\n // Is External Address\n if (ExternalAddress_1.ExternalAddress.isAddress(address)) {\n this.writeUint(1, 2); // External address\n this.writeUint(address.bits, 9);\n this.writeUint(address.value, address.bits);\n return;\n }\n // Invalid address\n throw Error(`Invalid address. Got ${address}`);\n }\n /**\n * Build BitString\n * @returns result bit string\n */\n build() {\n return new BitString_1.BitString(this._buffer, 0, this._length);\n }\n /**\n * Build into Buffer\n * @returns result buffer\n */\n buffer() {\n if (this._length % 8 !== 0) {\n throw new Error(\"BitBuilder buffer is not byte aligned\");\n }\n return this._buffer.subarray(0, this._length / 8);\n }\n}\nexports.BitBuilder = BitBuilder;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CellType = void 0;\nvar CellType;\n(function (CellType) {\n CellType[CellType[\"Ordinary\"] = -1] = \"Ordinary\";\n CellType[CellType[\"PrunedBranch\"] = 1] = \"PrunedBranch\";\n CellType[CellType[\"Library\"] = 2] = \"Library\";\n CellType[CellType[\"MerkleProof\"] = 3] = \"MerkleProof\";\n CellType[CellType[\"MerkleUpdate\"] = 4] = \"MerkleUpdate\";\n})(CellType || (exports.CellType = CellType = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.readUnaryLength = void 0;\nfunction readUnaryLength(slice) {\n let res = 0;\n while (slice.loadBit()) {\n res++;\n }\n return res;\n}\nexports.readUnaryLength = readUnaryLength;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BitReader = void 0;\nconst Address_1 = require(\"../address/Address\");\nconst ExternalAddress_1 = require(\"../address/ExternalAddress\");\n/**\n * Class for reading bit strings\n */\nclass BitReader {\n constructor(bits, offset = 0) {\n this._checkpoints = [];\n this._bits = bits;\n this._offset = offset;\n }\n /**\n * Offset in source bit string\n */\n get offset() {\n return this._offset;\n }\n /**\n * Number of bits remaining\n */\n get remaining() {\n return this._bits.length - this._offset;\n }\n /**\n * Skip bits\n * @param bits number of bits to skip\n */\n skip(bits) {\n if (bits < 0 || this._offset + bits > this._bits.length) {\n throw new Error(`Index ${this._offset + bits} is out of bounds`);\n }\n this._offset += bits;\n }\n /**\n * Reset to the beginning or latest checkpoint\n */\n reset() {\n if (this._checkpoints.length > 0) {\n this._offset = this._checkpoints.pop();\n }\n else {\n this._offset = 0;\n }\n }\n /**\n * Save checkpoint\n */\n save() {\n this._checkpoints.push(this._offset);\n }\n /**\n * Load a single bit\n * @returns true if the bit is set, false otherwise\n */\n loadBit() {\n let r = this._bits.at(this._offset);\n this._offset++;\n return r;\n }\n /**\n * Preload bit\n * @returns true if the bit is set, false otherwise\n */\n preloadBit() {\n return this._bits.at(this._offset);\n }\n /**\n * Load bit string\n * @param bits number of bits to read\n * @returns new bitstring\n */\n loadBits(bits) {\n let r = this._bits.substring(this._offset, bits);\n this._offset += bits;\n return r;\n }\n /**\n * Preload bit string\n * @param bits number of bits to read\n * @returns new bitstring\n */\n preloadBits(bits) {\n return this._bits.substring(this._offset, bits);\n }\n /**\n * Load buffer\n * @param bytes number of bytes\n * @returns new buffer\n */\n loadBuffer(bytes) {\n let buf = this._preloadBuffer(bytes, this._offset);\n this._offset += bytes * 8;\n return buf;\n }\n /**\n * Preload buffer\n * @param bytes number of bytes\n * @returns new buffer\n */\n preloadBuffer(bytes) {\n return this._preloadBuffer(bytes, this._offset);\n }\n /**\n * Load uint value\n * @param bits uint bits\n * @returns read value as number\n */\n loadUint(bits) {\n return this._toSafeInteger(this.loadUintBig(bits), 'loadUintBig');\n }\n /**\n * Load uint value as bigint\n * @param bits uint bits\n * @returns read value as bigint\n */\n loadUintBig(bits) {\n let loaded = this.preloadUintBig(bits);\n this._offset += bits;\n return loaded;\n }\n /**\n * Preload uint value\n * @param bits uint bits\n * @returns read value as number\n */\n preloadUint(bits) {\n return this._toSafeInteger(this._preloadUint(bits, this._offset), 'preloadUintBig');\n }\n /**\n * Preload uint value as bigint\n * @param bits uint bits\n * @returns read value as bigint\n */\n preloadUintBig(bits) {\n return this._preloadUint(bits, this._offset);\n }\n /**\n * Load int value\n * @param bits int bits\n * @returns read value as bigint\n */\n loadInt(bits) {\n let res = this._preloadInt(bits, this._offset);\n this._offset += bits;\n return this._toSafeInteger(res, 'loadUintBig');\n }\n /**\n * Load int value as bigint\n * @param bits int bits\n * @returns read value as bigint\n */\n loadIntBig(bits) {\n let res = this._preloadInt(bits, this._offset);\n this._offset += bits;\n return res;\n }\n /**\n * Preload int value\n * @param bits int bits\n * @returns read value as bigint\n */\n preloadInt(bits) {\n return this._toSafeInteger(this._preloadInt(bits, this._offset), 'preloadIntBig');\n }\n /**\n * Preload int value\n * @param bits int bits\n * @returns read value as bigint\n */\n preloadIntBig(bits) {\n return this._preloadInt(bits, this._offset);\n }\n /**\n * Load varuint value\n * @param bits number of bits to read the size\n * @returns read value as bigint\n */\n loadVarUint(bits) {\n let size = Number(this.loadUint(bits));\n return this._toSafeInteger(this.loadUintBig(size * 8), 'loadVarUintBig');\n }\n /**\n * Load varuint value\n * @param bits number of bits to read the size\n * @returns read value as bigint\n */\n loadVarUintBig(bits) {\n let size = Number(this.loadUint(bits));\n return this.loadUintBig(size * 8);\n }\n /**\n * Preload varuint value\n * @param bits number of bits to read the size\n * @returns read value as bigint\n */\n preloadVarUint(bits) {\n let size = Number(this._preloadUint(bits, this._offset));\n return this._toSafeInteger(this._preloadUint(size * 8, this._offset + bits), 'preloadVarUintBig');\n }\n /**\n * Preload varuint value\n * @param bits number of bits to read the size\n * @returns read value as bigint\n */\n preloadVarUintBig(bits) {\n let size = Number(this._preloadUint(bits, this._offset));\n return this._preloadUint(size * 8, this._offset + bits);\n }\n /**\n * Load varint value\n * @param bits number of bits to read the size\n * @returns read value as bigint\n */\n loadVarInt(bits) {\n let size = Number(this.loadUint(bits));\n return this._toSafeInteger(this.loadIntBig(size * 8), 'loadVarIntBig');\n }\n /**\n * Load varint value\n * @param bits number of bits to read the size\n * @returns read value as bigint\n */\n loadVarIntBig(bits) {\n let size = Number(this.loadUint(bits));\n return this.loadIntBig(size * 8);\n }\n /**\n * Preload varint value\n * @param bits number of bits to read the size\n * @returns read value as bigint\n */\n preloadVarInt(bits) {\n let size = Number(this._preloadUint(bits, this._offset));\n return this._toSafeInteger(this._preloadInt(size * 8, this._offset + bits), 'preloadVarIntBig');\n }\n /**\n * Preload varint value\n * @param bits number of bits to read the size\n * @returns read value as bigint\n */\n preloadVarIntBig(bits) {\n let size = Number(this._preloadUint(bits, this._offset));\n return this._preloadInt(size * 8, this._offset + bits);\n }\n /**\n * Load coins value\n * @returns read value as bigint\n */\n loadCoins() {\n return this.loadVarUintBig(4);\n }\n /**\n * Preload coins value\n * @returns read value as bigint\n */\n preloadCoins() {\n return this.preloadVarUintBig(4);\n }\n /**\n * Load Address\n * @returns Address\n */\n loadAddress() {\n let type = Number(this._preloadUint(2, this._offset));\n if (type === 2) {\n return this._loadInternalAddress();\n }\n else {\n throw new Error(\"Invalid address: \" + type);\n }\n }\n /**\n * Load internal address\n * @returns Address or null\n */\n loadMaybeAddress() {\n let type = Number(this._preloadUint(2, this._offset));\n if (type === 0) {\n this._offset += 2;\n return null;\n }\n else if (type === 2) {\n return this._loadInternalAddress();\n }\n else {\n throw new Error(\"Invalid address\");\n }\n }\n /**\n * Load external address\n * @returns ExternalAddress\n */\n loadExternalAddress() {\n let type = Number(this._preloadUint(2, this._offset));\n if (type === 1) {\n return this._loadExternalAddress();\n }\n else {\n throw new Error(\"Invalid address\");\n }\n }\n /**\n * Load external address\n * @returns ExternalAddress or null\n */\n loadMaybeExternalAddress() {\n let type = Number(this._preloadUint(2, this._offset));\n if (type === 0) {\n this._offset += 2;\n return null;\n }\n else if (type === 1) {\n return this._loadExternalAddress();\n }\n else {\n throw new Error(\"Invalid address\");\n }\n }\n /**\n * Read address of any type\n * @returns Address or ExternalAddress or null\n */\n loadAddressAny() {\n let type = Number(this._preloadUint(2, this._offset));\n if (type === 0) {\n this._offset += 2;\n return null;\n }\n else if (type === 2) {\n return this._loadInternalAddress();\n }\n else if (type === 1) {\n return this._loadExternalAddress();\n }\n else if (type === 3) {\n throw Error('Unsupported');\n }\n else {\n throw Error('Unreachable');\n }\n }\n /**\n * Load bit string that was padded to make it byte alligned. Used in BOC serialization\n * @param bytes number of bytes to read\n */\n loadPaddedBits(bits) {\n // Check that number of bits is byte alligned\n if (bits % 8 !== 0) {\n throw new Error(\"Invalid number of bits\");\n }\n // Skip padding\n let length = bits;\n while (true) {\n if (this._bits.at(this._offset + length - 1)) {\n length--;\n break;\n }\n else {\n length--;\n }\n }\n // Read substring\n let r = this._bits.substring(this._offset, length);\n this._offset += bits;\n return r;\n }\n /**\n * Clone BitReader\n */\n clone() {\n return new BitReader(this._bits, this._offset);\n }\n /**\n * Preload int from specific offset\n * @param bits bits to preload\n * @param offset offset to start from\n * @returns read value as bigint\n */\n _preloadInt(bits, offset) {\n if (bits == 0) {\n return 0n;\n }\n let sign = this._bits.at(offset);\n let res = 0n;\n for (let i = 0; i < bits - 1; i++) {\n if (this._bits.at(offset + 1 + i)) {\n res += 1n << BigInt(bits - i - 1 - 1);\n }\n }\n if (sign) {\n res = res - (1n << BigInt(bits - 1));\n }\n return res;\n }\n /**\n * Preload uint from specific offset\n * @param bits bits to preload\n * @param offset offset to start from\n * @returns read value as bigint\n */\n _preloadUint(bits, offset) {\n if (bits == 0) {\n return 0n;\n }\n let res = 0n;\n for (let i = 0; i < bits; i++) {\n if (this._bits.at(offset + i)) {\n res += 1n << BigInt(bits - i - 1);\n }\n }\n return res;\n }\n _preloadBuffer(bytes, offset) {\n // Try to load fast\n let fastBuffer = this._bits.subbuffer(offset, bytes * 8);\n if (fastBuffer) {\n return fastBuffer;\n }\n // Load slow\n let buf = Buffer.alloc(bytes);\n for (let i = 0; i < bytes; i++) {\n buf[i] = Number(this._preloadUint(8, offset + i * 8));\n }\n return buf;\n }\n _loadInternalAddress() {\n let type = Number(this._preloadUint(2, this._offset));\n if (type !== 2) {\n throw Error('Invalid address');\n }\n // No Anycast supported\n if (this._preloadUint(1, this._offset + 2) !== 0n) {\n throw Error('Invalid address');\n }\n // Read address\n let wc = Number(this._preloadInt(8, this._offset + 3));\n let hash = this._preloadBuffer(32, this._offset + 11);\n // Update offset\n this._offset += 267;\n return new Address_1.Address(wc, hash);\n }\n _loadExternalAddress() {\n let type = Number(this._preloadUint(2, this._offset));\n if (type !== 1) {\n throw Error('Invalid address');\n }\n // Load length\n let bits = Number(this._preloadUint(9, this._offset + 2));\n // Load address\n let value = this._preloadUint(bits, this._offset + 11);\n // Update offset\n this._offset += 11 + bits;\n return new ExternalAddress_1.ExternalAddress(value, bits);\n }\n _toSafeInteger(src, alt) {\n if (BigInt(Number.MAX_SAFE_INTEGER) < src || src < BigInt(Number.MIN_SAFE_INTEGER)) {\n throw new TypeError(`${src} is out of safe integer range. Use ${alt} instead`);\n }\n return Number(src);\n }\n}\nexports.BitReader = BitReader;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertToMerkleProof = exports.exoticMerkleProof = void 0;\nconst BitReader_1 = require(\"../BitReader\");\nconst Builder_1 = require(\"../Builder\");\nfunction exoticMerkleProof(bits, refs) {\n const reader = new BitReader_1.BitReader(bits);\n // type + hash + depth\n const size = 8 + 256 + 16;\n if (bits.length !== size) {\n throw new Error(`Merkle Proof cell must have exactly (8 + 256 + 16) bits, got \"${bits.length}\"`);\n }\n if (refs.length !== 1) {\n throw new Error(`Merkle Proof cell must have exactly 1 ref, got \"${refs.length}\"`);\n }\n // Check type\n let type = reader.loadUint(8);\n if (type !== 3) {\n throw new Error(`Merkle Proof cell must have type 3, got \"${type}\"`);\n }\n // Check data\n const proofHash = reader.loadBuffer(32);\n const proofDepth = reader.loadUint(16);\n const refHash = refs[0].hash(0);\n const refDepth = refs[0].depth(0);\n if (proofDepth !== refDepth) {\n throw new Error(`Merkle Proof cell ref depth must be exactly \"${proofDepth}\", got \"${refDepth}\"`);\n }\n if (!proofHash.equals(refHash)) {\n throw new Error(`Merkle Proof cell ref hash must be exactly \"${proofHash.toString('hex')}\", got \"${refHash.toString('hex')}\"`);\n }\n return {\n proofDepth,\n proofHash\n };\n}\nexports.exoticMerkleProof = exoticMerkleProof;\nfunction convertToMerkleProof(c) {\n return (0, Builder_1.beginCell)()\n .storeUint(3, 8)\n .storeBuffer(c.hash(0))\n .storeUint(c.depth(0), 16)\n .storeRef(c)\n .endCell({ exotic: true });\n}\nexports.convertToMerkleProof = convertToMerkleProof;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.generateMerkleProof = exports.generateMerkleProofDirect = void 0;\nconst Builder_1 = require(\"../boc/Builder\");\nconst readUnaryLength_1 = require(\"./utils/readUnaryLength\");\nconst exoticMerkleProof_1 = require(\"../boc/cell/exoticMerkleProof\");\nfunction convertToPrunedBranch(c) {\n return (0, Builder_1.beginCell)()\n .storeUint(1, 8)\n .storeUint(1, 8)\n .storeBuffer(c.hash(0))\n .storeUint(c.depth(0), 16)\n .endCell({ exotic: true });\n}\nfunction doGenerateMerkleProof(prefix, slice, n, keys) {\n // Reading label\n const originalCell = slice.asCell();\n if (keys.length == 0) {\n // no keys to prove, prune the whole subdict\n return convertToPrunedBranch(originalCell);\n }\n let lb0 = slice.loadBit() ? 1 : 0;\n let prefixLength = 0;\n let pp = prefix;\n if (lb0 === 0) {\n // Short label detected\n // Read\n prefixLength = (0, readUnaryLength_1.readUnaryLength)(slice);\n // Read prefix\n for (let i = 0; i < prefixLength; i++) {\n pp += slice.loadBit() ? '1' : '0';\n }\n }\n else {\n let lb1 = slice.loadBit() ? 1 : 0;\n if (lb1 === 0) {\n // Long label detected\n prefixLength = slice.loadUint(Math.ceil(Math.log2(n + 1)));\n for (let i = 0; i < prefixLength; i++) {\n pp += slice.loadBit() ? '1' : '0';\n }\n }\n else {\n // Same label detected\n let bit = slice.loadBit() ? '1' : '0';\n prefixLength = slice.loadUint(Math.ceil(Math.log2(n + 1)));\n for (let i = 0; i < prefixLength; i++) {\n pp += bit;\n }\n }\n }\n if (n - prefixLength === 0) {\n return originalCell;\n }\n else {\n let sl = originalCell.beginParse();\n let left = sl.loadRef();\n let right = sl.loadRef();\n // NOTE: Left and right branches are implicitly contain prefixes '0' and '1'\n if (!left.isExotic) {\n const leftKeys = keys.filter((key) => {\n return pp + '0' === key.slice(0, pp.length + 1);\n });\n left = doGenerateMerkleProof(pp + '0', left.beginParse(), n - prefixLength - 1, leftKeys);\n }\n if (!right.isExotic) {\n const rightKeys = keys.filter((key) => {\n return pp + '1' === key.slice(0, pp.length + 1);\n });\n right = doGenerateMerkleProof(pp + '1', right.beginParse(), n - prefixLength - 1, rightKeys);\n }\n return (0, Builder_1.beginCell)()\n .storeSlice(sl)\n .storeRef(left)\n .storeRef(right)\n .endCell();\n }\n}\nfunction generateMerkleProofDirect(dict, keys, keyObject) {\n keys.forEach((key) => {\n if (!dict.has(key)) {\n throw new Error(`Trying to generate merkle proof for a missing key \"${key}\"`);\n }\n });\n const s = (0, Builder_1.beginCell)().storeDictDirect(dict).asSlice();\n return doGenerateMerkleProof('', s, keyObject.bits, keys.map((key) => keyObject.serialize(key).toString(2).padStart(keyObject.bits, '0')));\n}\nexports.generateMerkleProofDirect = generateMerkleProofDirect;\nfunction generateMerkleProof(dict, keys, keyObject) {\n return (0, exoticMerkleProof_1.convertToMerkleProof)(generateMerkleProofDirect(dict, keys, keyObject));\n}\nexports.generateMerkleProof = generateMerkleProof;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.generateMerkleUpdate = void 0;\nconst Builder_1 = require(\"../boc/Builder\");\nconst generateMerkleProof_1 = require(\"./generateMerkleProof\");\nfunction convertToMerkleUpdate(c1, c2) {\n return (0, Builder_1.beginCell)()\n .storeUint(4, 8)\n .storeBuffer(c1.hash(0))\n .storeBuffer(c2.hash(0))\n .storeUint(c1.depth(0), 16)\n .storeUint(c2.depth(0), 16)\n .storeRef(c1)\n .storeRef(c2)\n .endCell({ exotic: true });\n}\nfunction generateMerkleUpdate(dict, key, keyObject, newValue) {\n const oldProof = (0, generateMerkleProof_1.generateMerkleProof)(dict, [key], keyObject).refs[0];\n dict.set(key, newValue);\n const newProof = (0, generateMerkleProof_1.generateMerkleProof)(dict, [key], keyObject).refs[0];\n return convertToMerkleUpdate(oldProof, newProof);\n}\nexports.generateMerkleUpdate = generateMerkleUpdate;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseDict = void 0;\nfunction readUnaryLength(slice) {\n let res = 0;\n while (slice.loadBit()) {\n res++;\n }\n return res;\n}\nfunction doParse(prefix, slice, n, res, extractor) {\n // Reading label\n let lb0 = slice.loadBit() ? 1 : 0;\n let prefixLength = 0;\n let pp = prefix;\n if (lb0 === 0) {\n // Short label detected\n // Read \n prefixLength = readUnaryLength(slice);\n // Read prefix\n for (let i = 0; i < prefixLength; i++) {\n pp += slice.loadBit() ? '1' : '0';\n }\n }\n else {\n let lb1 = slice.loadBit() ? 1 : 0;\n if (lb1 === 0) {\n // Long label detected\n prefixLength = slice.loadUint(Math.ceil(Math.log2(n + 1)));\n for (let i = 0; i < prefixLength; i++) {\n pp += slice.loadBit() ? '1' : '0';\n }\n }\n else {\n // Same label detected\n let bit = slice.loadBit() ? '1' : '0';\n prefixLength = slice.loadUint(Math.ceil(Math.log2(n + 1)));\n for (let i = 0; i < prefixLength; i++) {\n pp += bit;\n }\n }\n }\n if (n - prefixLength === 0) {\n res.set(BigInt('0b' + pp), extractor(slice));\n }\n else {\n let left = slice.loadRef();\n let right = slice.loadRef();\n // NOTE: Left and right branches are implicitly contain prefixes '0' and '1'\n if (!left.isExotic) {\n doParse(pp + '0', left.beginParse(), n - prefixLength - 1, res, extractor);\n }\n if (!right.isExotic) {\n doParse(pp + '1', right.beginParse(), n - prefixLength - 1, res, extractor);\n }\n }\n}\nfunction parseDict(sc, keySize, extractor) {\n let res = new Map();\n if (sc) {\n doParse('', sc, keySize, res, extractor);\n }\n return res;\n}\nexports.parseDict = parseDict;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findCommonPrefix = void 0;\nfunction findCommonPrefix(src, startPos = 0) {\n // Corner cases\n if (src.length === 0) {\n return '';\n }\n let r = src[0].slice(startPos);\n for (let i = 1; i < src.length; i++) {\n const s = src[i];\n while (s.indexOf(r, startPos) !== startPos) {\n r = r.substring(0, r.length - 1);\n if (r === '') {\n return r;\n }\n }\n }\n return r;\n}\nexports.findCommonPrefix = findCommonPrefix;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.serializeDict = exports.detectLabelType = exports.writeLabelSame = exports.writeLabelLong = exports.writeLabelShort = exports.buildTree = void 0;\nconst Builder_1 = require(\"../boc/Builder\");\nconst findCommonPrefix_1 = require(\"./utils/findCommonPrefix\");\n//\n// Tree Build\n//\nfunction pad(src, size) {\n while (src.length < size) {\n src = '0' + src;\n }\n return src;\n}\nfunction removePrefixMap(src, length) {\n if (length === 0) {\n return src;\n }\n else {\n let res = new Map();\n for (let k of src.keys()) {\n let d = src.get(k);\n res.set(k.slice(length), d);\n }\n return res;\n }\n}\nfunction forkMap(src, prefixLen) {\n if (src.size === 0) {\n throw Error('Internal inconsistency');\n }\n let left = new Map();\n let right = new Map();\n for (let [k, d] of src.entries()) {\n if (k[prefixLen] === '0') {\n left.set(k, d);\n }\n else {\n right.set(k, d);\n }\n }\n if (left.size === 0) {\n throw Error('Internal inconsistency. Left emtpy.');\n }\n if (right.size === 0) {\n throw Error('Internal inconsistency. Right emtpy.');\n }\n return { left, right };\n}\nfunction buildNode(src, prefixLen) {\n if (src.size === 0) {\n throw Error('Internal inconsistency');\n }\n if (src.size === 1) {\n return { type: 'leaf', value: Array.from(src.values())[0] };\n }\n let { left, right } = forkMap(src, prefixLen);\n return {\n type: 'fork',\n left: buildEdge(left, prefixLen + 1),\n right: buildEdge(right, prefixLen + 1)\n };\n}\nfunction buildEdge(src, prefixLen = 0) {\n if (src.size === 0) {\n throw Error('Internal inconsistency');\n }\n const label = (0, findCommonPrefix_1.findCommonPrefix)(Array.from(src.keys()), prefixLen);\n return { label, node: buildNode(src, label.length + prefixLen) };\n}\nfunction buildTree(src, keyLength) {\n // Convert map keys\n let converted = new Map();\n for (let k of Array.from(src.keys())) {\n const padded = pad(k.toString(2), keyLength);\n converted.set(padded, src.get(k));\n }\n // Calculate root label\n return buildEdge(converted);\n}\nexports.buildTree = buildTree;\n//\n// Serialization\n//\nfunction writeLabelShort(src, to) {\n // Header\n to.storeBit(0);\n // Unary length\n for (let i = 0; i < src.length; i++) {\n to.storeBit(1);\n }\n to.storeBit(0);\n // Value\n if (src.length > 0) {\n to.storeUint(BigInt('0b' + src), src.length);\n }\n return to;\n}\nexports.writeLabelShort = writeLabelShort;\nfunction labelShortLength(src) {\n return 1 + src.length + 1 + src.length;\n}\nfunction writeLabelLong(src, keyLength, to) {\n // Header\n to.storeBit(1);\n to.storeBit(0);\n // Length\n let length = Math.ceil(Math.log2(keyLength + 1));\n to.storeUint(src.length, length);\n // Value\n if (src.length > 0) {\n to.storeUint(BigInt('0b' + src), src.length);\n }\n return to;\n}\nexports.writeLabelLong = writeLabelLong;\nfunction labelLongLength(src, keyLength) {\n return 1 + 1 + Math.ceil(Math.log2(keyLength + 1)) + src.length;\n}\nfunction writeLabelSame(value, length, keyLength, to) {\n // Header\n to.storeBit(1);\n to.storeBit(1);\n // Value\n to.storeBit(value);\n // Length\n let lenLen = Math.ceil(Math.log2(keyLength + 1));\n to.storeUint(length, lenLen);\n}\nexports.writeLabelSame = writeLabelSame;\nfunction labelSameLength(keyLength) {\n return 1 + 1 + 1 + Math.ceil(Math.log2(keyLength + 1));\n}\nfunction isSame(src) {\n if (src.length === 0 || src.length === 1) {\n return true;\n }\n for (let i = 1; i < src.length; i++) {\n if (src[i] !== src[0]) {\n return false;\n }\n }\n return true;\n}\nfunction detectLabelType(src, keyLength) {\n let kind = 'short';\n let kindLength = labelShortLength(src);\n let longLength = labelLongLength(src, keyLength);\n if (longLength < kindLength) {\n kindLength = longLength;\n kind = 'long';\n }\n if (isSame(src)) {\n let sameLength = labelSameLength(keyLength);\n if (sameLength < kindLength) {\n kindLength = sameLength;\n kind = 'same';\n }\n }\n return kind;\n}\nexports.detectLabelType = detectLabelType;\nfunction writeLabel(src, keyLength, to) {\n let type = detectLabelType(src, keyLength);\n if (type === 'short') {\n writeLabelShort(src, to);\n }\n else if (type === 'long') {\n writeLabelLong(src, keyLength, to);\n }\n else if (type === 'same') {\n writeLabelSame(src[0] === '1', src.length, keyLength, to);\n }\n}\nfunction writeNode(src, keyLength, serializer, to) {\n if (src.type === 'leaf') {\n serializer(src.value, to);\n }\n if (src.type === 'fork') {\n const leftCell = (0, Builder_1.beginCell)();\n const rightCell = (0, Builder_1.beginCell)();\n writeEdge(src.left, keyLength - 1, serializer, leftCell);\n writeEdge(src.right, keyLength - 1, serializer, rightCell);\n to.storeRef(leftCell);\n to.storeRef(rightCell);\n }\n}\nfunction writeEdge(src, keyLength, serializer, to) {\n writeLabel(src.label, keyLength, to);\n writeNode(src.node, keyLength - src.label.length, serializer, to);\n}\nfunction serializeDict(src, keyLength, serializer, to) {\n const tree = buildTree(src, keyLength);\n writeEdge(tree, keyLength, serializer, to);\n}\nexports.serializeDict = serializeDict;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deserializeInternalKey = exports.serializeInternalKey = void 0;\nconst Address_1 = require(\"../../address/Address\");\nconst BitString_1 = require(\"../../boc/BitString\");\nconst paddedBits_1 = require(\"../../boc/utils/paddedBits\");\nfunction serializeInternalKey(value) {\n if (typeof value === 'number') {\n if (!Number.isSafeInteger(value)) {\n throw Error('Invalid key type: not a safe integer: ' + value);\n }\n return 'n:' + value.toString(10);\n }\n else if (typeof value === 'bigint') {\n return 'b:' + value.toString(10);\n }\n else if (Address_1.Address.isAddress(value)) {\n return 'a:' + value.toString();\n }\n else if (Buffer.isBuffer(value)) {\n return 'f:' + value.toString('hex');\n }\n else if (BitString_1.BitString.isBitString(value)) {\n return 'B:' + value.toString();\n }\n else {\n throw Error('Invalid key type');\n }\n}\nexports.serializeInternalKey = serializeInternalKey;\nfunction deserializeInternalKey(value) {\n let k = value.slice(0, 2);\n let v = value.slice(2);\n if (k === 'n:') {\n return parseInt(v, 10);\n }\n else if (k === 'b:') {\n return BigInt(v);\n }\n else if (k === 'a:') {\n return Address_1.Address.parse(v);\n }\n else if (k === 'f:') {\n return Buffer.from(v, 'hex');\n }\n else if (k === 'B:') {\n const lastDash = v.slice(-1) == \"_\";\n const isPadded = lastDash || v.length % 2 != 0;\n if (isPadded) {\n let charLen = lastDash ? v.length - 1 : v.length;\n const padded = v.substr(0, charLen) + \"0\"; //Padding\n if ((!lastDash) && ((charLen & 1) !== 0)) {\n // Four bit nibmle without padding\n return new BitString_1.BitString(Buffer.from(padded, 'hex'), 0, charLen << 2);\n }\n else {\n return (0, paddedBits_1.paddedBufferToBits)(Buffer.from(padded, 'hex'));\n }\n }\n else {\n return new BitString_1.BitString(Buffer.from(v, 'hex'), 0, v.length << 2);\n }\n }\n throw Error('Invalid key type: ' + k);\n}\nexports.deserializeInternalKey = deserializeInternalKey;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Dictionary = void 0;\nconst Address_1 = require(\"../address/Address\");\nconst Builder_1 = require(\"../boc/Builder\");\nconst Cell_1 = require(\"../boc/Cell\");\nconst BitString_1 = require(\"../boc/BitString\");\nconst generateMerkleProof_1 = require(\"./generateMerkleProof\");\nconst generateMerkleUpdate_1 = require(\"./generateMerkleUpdate\");\nconst parseDict_1 = require(\"./parseDict\");\nconst serializeDict_1 = require(\"./serializeDict\");\nconst internalKeySerializer_1 = require(\"./utils/internalKeySerializer\");\nclass Dictionary {\n /**\n * Create an empty map\n * @param key key type\n * @param value value type\n * @returns Dictionary<K, V>\n */\n static empty(key, value) {\n if (key && value) {\n return new Dictionary(new Map(), key, value);\n }\n else {\n return new Dictionary(new Map(), null, null);\n }\n }\n /**\n * Load dictionary from slice\n * @param key key description\n * @param value value description\n * @param src slice\n * @returns Dictionary<K, V>\n */\n static load(key, value, sc) {\n let slice;\n if (sc instanceof Cell_1.Cell) {\n if (sc.isExotic) {\n return Dictionary.empty(key, value);\n }\n slice = sc.beginParse();\n }\n else {\n slice = sc;\n }\n let cell = slice.loadMaybeRef();\n if (cell && !cell.isExotic) {\n return Dictionary.loadDirect(key, value, cell.beginParse());\n }\n else {\n return Dictionary.empty(key, value);\n }\n }\n /**\n * Low level method for rare dictionaries from system contracts.\n * Loads dictionary from slice directly without going to the ref.\n *\n * @param key key description\n * @param value value description\n * @param sc slice\n * @returns Dictionary<K, V>\n */\n static loadDirect(key, value, sc) {\n if (!sc) {\n return Dictionary.empty(key, value);\n }\n let slice;\n if (sc instanceof Cell_1.Cell) {\n slice = sc.beginParse();\n }\n else {\n slice = sc;\n }\n let values = (0, parseDict_1.parseDict)(slice, key.bits, value.parse);\n let prepare = new Map();\n for (let [k, v] of values) {\n prepare.set((0, internalKeySerializer_1.serializeInternalKey)(key.parse(k)), v);\n }\n return new Dictionary(prepare, key, value);\n }\n constructor(values, key, value) {\n this._key = key;\n this._value = value;\n this._map = values;\n }\n get size() {\n return this._map.size;\n }\n get(key) {\n return this._map.get((0, internalKeySerializer_1.serializeInternalKey)(key));\n }\n has(key) {\n return this._map.has((0, internalKeySerializer_1.serializeInternalKey)(key));\n }\n set(key, value) {\n this._map.set((0, internalKeySerializer_1.serializeInternalKey)(key), value);\n return this;\n }\n delete(key) {\n const k = (0, internalKeySerializer_1.serializeInternalKey)(key);\n return this._map.delete(k);\n }\n clear() {\n this._map.clear();\n }\n *[Symbol.iterator]() {\n for (const [k, v] of this._map) {\n const key = (0, internalKeySerializer_1.deserializeInternalKey)(k);\n yield [key, v];\n }\n }\n keys() {\n return Array.from(this._map.keys()).map((v) => (0, internalKeySerializer_1.deserializeInternalKey)(v));\n }\n values() {\n return Array.from(this._map.values());\n }\n store(builder, key, value) {\n if (this._map.size === 0) {\n builder.storeBit(0);\n }\n else {\n // Resolve serializer\n let resolvedKey = this._key;\n if (key !== null && key !== undefined) {\n resolvedKey = key;\n }\n let resolvedValue = this._value;\n if (value !== null && value !== undefined) {\n resolvedValue = value;\n }\n if (!resolvedKey) {\n throw Error('Key serializer is not defined');\n }\n if (!resolvedValue) {\n throw Error('Value serializer is not defined');\n }\n // Prepare map\n let prepared = new Map();\n for (const [k, v] of this._map) {\n prepared.set(resolvedKey.serialize((0, internalKeySerializer_1.deserializeInternalKey)(k)), v);\n }\n // Store\n builder.storeBit(1);\n let dd = (0, Builder_1.beginCell)();\n (0, serializeDict_1.serializeDict)(prepared, resolvedKey.bits, resolvedValue.serialize, dd);\n builder.storeRef(dd.endCell());\n }\n }\n storeDirect(builder, key, value) {\n if (this._map.size === 0) {\n throw Error('Cannot store empty dictionary directly');\n }\n // Resolve serializer\n let resolvedKey = this._key;\n if (key !== null && key !== undefined) {\n resolvedKey = key;\n }\n let resolvedValue = this._value;\n if (value !== null && value !== undefined) {\n resolvedValue = value;\n }\n if (!resolvedKey) {\n throw Error('Key serializer is not defined');\n }\n if (!resolvedValue) {\n throw Error('Value serializer is not defined');\n }\n // Prepare map\n let prepared = new Map();\n for (const [k, v] of this._map) {\n prepared.set(resolvedKey.serialize((0, internalKeySerializer_1.deserializeInternalKey)(k)), v);\n }\n // Store\n (0, serializeDict_1.serializeDict)(prepared, resolvedKey.bits, resolvedValue.serialize, builder);\n }\n /**\n * Generate merkle proof for multiple keys in the dictionary\n * @param keys an array of the keys\n * @returns generated merkle proof cell\n */\n generateMerkleProof(keys) {\n return (0, generateMerkleProof_1.generateMerkleProof)(this, keys, this._key);\n }\n /**\n * Low level method for generating pruned dictionary directly.\n * The result can be used as a part of a bigger merkle proof\n * @param keys an array of the keys\n * @returns cell that contains the pruned dictionary\n */\n generateMerkleProofDirect(keys) {\n return (0, generateMerkleProof_1.generateMerkleProofDirect)(this, keys, this._key);\n }\n generateMerkleUpdate(key, newValue) {\n return (0, generateMerkleUpdate_1.generateMerkleUpdate)(this, key, this._key, newValue);\n }\n}\nexports.Dictionary = Dictionary;\nDictionary.Keys = {\n /**\n * Standard address key\n * @returns DictionaryKey<Address>\n */\n Address: () => {\n return createAddressKey();\n },\n /**\n * Create standard big integer key\n * @param bits number of bits\n * @returns DictionaryKey<bigint>\n */\n BigInt: (bits) => {\n return createBigIntKey(bits);\n },\n /**\n * Create integer key\n * @param bits bits of integer\n * @returns DictionaryKey<number>\n */\n Int: (bits) => {\n return createIntKey(bits);\n },\n /**\n * Create standard unsigned big integer key\n * @param bits number of bits\n * @returns DictionaryKey<bigint>\n */\n BigUint: (bits) => {\n return createBigUintKey(bits);\n },\n /**\n * Create standard unsigned integer key\n * @param bits number of bits\n * @returns DictionaryKey<number>\n */\n Uint: (bits) => {\n return createUintKey(bits);\n },\n /**\n * Create standard buffer key\n * @param bytes number of bytes of a buffer\n * @returns DictionaryKey<Buffer>\n */\n Buffer: (bytes) => {\n return createBufferKey(bytes);\n },\n /**\n * Create BitString key\n * @param bits key length\n * @returns DictionaryKey<BitString>\n * Point is that Buffer has to be 8 bit aligned,\n * while key is TVM dictionary doesn't have to be\n * aligned at all.\n */\n BitString: (bits) => {\n return createBitStringKey(bits);\n }\n};\nDictionary.Values = {\n /**\n * Create standard integer value\n * @returns DictionaryValue<bigint>\n */\n BigInt: (bits) => {\n return createBigIntValue(bits);\n },\n /**\n * Create standard integer value\n * @returns DictionaryValue<number>\n */\n Int: (bits) => {\n return createIntValue(bits);\n },\n /**\n * Create big var int\n * @param bits nubmer of header bits\n * @returns DictionaryValue<bigint>\n */\n BigVarInt: (bits) => {\n return createBigVarIntValue(bits);\n },\n /**\n * Create standard unsigned integer value\n * @param bits number of bits\n * @returns DictionaryValue<bigint>\n */\n BigUint: (bits) => {\n return createBigUintValue(bits);\n },\n /**\n * Create standard unsigned integer value\n * @param bits number of bits\n * @returns DictionaryValue<bigint>\n */\n Uint: (bits) => {\n return createUintValue(bits);\n },\n /**\n * Create big var int\n * @param bits nubmer of header bits\n * @returns DictionaryValue<bigint>\n */\n BigVarUint: (bits) => {\n return createBigVarUintValue(bits);\n },\n /**\n * Create standard boolean value\n * @returns DictionaryValue<boolean>\n */\n Bool: () => {\n return createBooleanValue();\n },\n /**\n * Create standard address value\n * @returns DictionaryValue<Address>\n */\n Address: () => {\n return createAddressValue();\n },\n /**\n * Create standard cell value\n * @returns DictionaryValue<Cell>\n */\n Cell: () => {\n return createCellValue();\n },\n /**\n * Create Builder value\n * @param bytes number of bytes of a buffer\n * @returns DictionaryValue<Builder>\n */\n Buffer: (bytes) => {\n return createBufferValue(bytes);\n },\n /**\n * Create BitString value\n * @param requested bit length\n * @returns DictionaryValue<BitString>\n * Point is that Buffer is not applicable\n * when length is not 8 bit alligned.\n */\n BitString: (bits) => {\n return createBitStringValue(bits);\n },\n /**\n * Create dictionary value\n * @param key\n * @param value\n */\n Dictionary: (key, value) => {\n return createDictionaryValue(key, value);\n }\n};\n//\n// Keys and Values\n//\nfunction createAddressKey() {\n return {\n bits: 267,\n serialize: (src) => {\n if (!Address_1.Address.isAddress(src)) {\n throw Error('Key is not an address');\n }\n return (0, Builder_1.beginCell)().storeAddress(src).endCell().beginParse().preloadUintBig(267);\n },\n parse: (src) => {\n return (0, Builder_1.beginCell)().storeUint(src, 267).endCell().beginParse().loadAddress();\n }\n };\n}\nfunction createBigIntKey(bits) {\n return {\n bits,\n serialize: (src) => {\n if (typeof src !== 'bigint') {\n throw Error('Key is not a bigint');\n }\n return (0, Builder_1.beginCell)().storeInt(src, bits).endCell().beginParse().loadUintBig(bits);\n },\n parse: (src) => {\n return (0, Builder_1.beginCell)().storeUint(src, bits).endCell().beginParse().loadIntBig(bits);\n }\n };\n}\nfunction createIntKey(bits) {\n return {\n bits: bits,\n serialize: (src) => {\n if (typeof src !== 'number') {\n throw Error('Key is not a number');\n }\n if (!Number.isSafeInteger(src)) {\n throw Error('Key is not a safe integer: ' + src);\n }\n return (0, Builder_1.beginCell)().storeInt(src, bits).endCell().beginParse().loadUintBig(bits);\n },\n parse: (src) => {\n return (0, Builder_1.beginCell)().storeUint(src, bits).endCell().beginParse().loadInt(bits);\n }\n };\n}\nfunction createBigUintKey(bits) {\n return {\n bits,\n serialize: (src) => {\n if (typeof src !== 'bigint') {\n throw Error('Key is not a bigint');\n }\n if (src < 0) {\n throw Error('Key is negative: ' + src);\n }\n return (0, Builder_1.beginCell)().storeUint(src, bits).endCell().beginParse().loadUintBig(bits);\n },\n parse: (src) => {\n return (0, Builder_1.beginCell)().storeUint(src, bits).endCell().beginParse().loadUintBig(bits);\n }\n };\n}\nfunction createUintKey(bits) {\n return {\n bits,\n serialize: (src) => {\n if (typeof src !== 'number') {\n throw Error('Key is not a number');\n }\n if (!Number.isSafeInteger(src)) {\n throw Error('Key is not a safe integer: ' + src);\n }\n if (src < 0) {\n throw Error('Key is negative: ' + src);\n }\n return (0, Builder_1.beginCell)().storeUint(src, bits).endCell().beginParse().loadUintBig(bits);\n },\n parse: (src) => {\n return Number((0, Builder_1.beginCell)().storeUint(src, bits).endCell().beginParse().loadUint(bits));\n }\n };\n}\nfunction createBufferKey(bytes) {\n return {\n bits: bytes * 8,\n serialize: (src) => {\n if (!Buffer.isBuffer(src)) {\n throw Error('Key is not a buffer');\n }\n return (0, Builder_1.beginCell)().storeBuffer(src).endCell().beginParse().loadUintBig(bytes * 8);\n },\n parse: (src) => {\n return (0, Builder_1.beginCell)().storeUint(src, bytes * 8).endCell().beginParse().loadBuffer(bytes);\n }\n };\n}\nfunction createBitStringKey(bits) {\n return {\n bits,\n serialize: (src) => {\n if (!BitString_1.BitString.isBitString(src))\n throw Error('Key is not a BitString');\n return (0, Builder_1.beginCell)().storeBits(src).endCell().beginParse().loadUintBig(bits);\n },\n parse: (src) => {\n return (0, Builder_1.beginCell)().storeUint(src, bits).endCell().beginParse().loadBits(bits);\n }\n };\n}\nfunction createIntValue(bits) {\n return {\n serialize: (src, buidler) => {\n buidler.storeInt(src, bits);\n },\n parse: (src) => {\n return src.loadInt(bits);\n }\n };\n}\nfunction createBigIntValue(bits) {\n return {\n serialize: (src, buidler) => {\n buidler.storeInt(src, bits);\n },\n parse: (src) => {\n return src.loadIntBig(bits);\n }\n };\n}\nfunction createBigVarIntValue(bits) {\n return {\n serialize: (src, buidler) => {\n buidler.storeVarInt(src, bits);\n },\n parse: (src) => {\n return src.loadVarIntBig(bits);\n }\n };\n}\nfunction createBigVarUintValue(bits) {\n return {\n serialize: (src, buidler) => {\n buidler.storeVarUint(src, bits);\n },\n parse: (src) => {\n return src.loadVarUintBig(bits);\n }\n };\n}\nfunction createUintValue(bits) {\n return {\n serialize: (src, buidler) => {\n buidler.storeUint(src, bits);\n },\n parse: (src) => {\n return src.loadUint(bits);\n }\n };\n}\nfunction createBigUintValue(bits) {\n return {\n serialize: (src, buidler) => {\n buidler.storeUint(src, bits);\n },\n parse: (src) => {\n return src.loadUintBig(bits);\n }\n };\n}\nfunction createBooleanValue() {\n return {\n serialize: (src, buidler) => {\n buidler.storeBit(src);\n },\n parse: (src) => {\n return src.loadBit();\n }\n };\n}\nfunction createAddressValue() {\n return {\n serialize: (src, buidler) => {\n buidler.storeAddress(src);\n },\n parse: (src) => {\n return src.loadAddress();\n }\n };\n}\nfunction createCellValue() {\n return {\n serialize: (src, buidler) => {\n buidler.storeRef(src);\n },\n parse: (src) => {\n return src.loadRef();\n }\n };\n}\nfunction createDictionaryValue(key, value) {\n return {\n serialize: (src, buidler) => {\n src.store(buidler);\n },\n parse: (src) => {\n return Dictionary.load(key, value, src);\n }\n };\n}\nfunction createBufferValue(size) {\n return {\n serialize: (src, buidler) => {\n if (src.length !== size) {\n throw Error('Invalid buffer size');\n }\n buidler.storeBuffer(src);\n },\n parse: (src) => {\n return src.loadBuffer(size);\n }\n };\n}\nfunction createBitStringValue(bits) {\n return {\n serialize: (src, builder) => {\n if (src.length !== bits) {\n throw Error('Invalid BitString size');\n }\n builder.storeBits(src);\n },\n parse: (src) => {\n return src.loadBits(bits);\n }\n };\n}\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.writeString = exports.stringToCell = exports.readString = void 0;\nconst Builder_1 = require(\"../Builder\");\nfunction readBuffer(slice) {\n // Check consistency\n if (slice.remainingBits % 8 !== 0) {\n throw new Error(`Invalid string length: ${slice.remainingBits}`);\n }\n if (slice.remainingRefs !== 0 && slice.remainingRefs !== 1) {\n throw new Error(`invalid number of refs: ${slice.remainingRefs}`);\n }\n // Read string\n let res;\n if (slice.remainingBits === 0) {\n res = Buffer.alloc(0);\n }\n else {\n res = slice.loadBuffer(slice.remainingBits / 8);\n }\n // Read tail\n if (slice.remainingRefs === 1) {\n res = Buffer.concat([res, readBuffer(slice.loadRef().beginParse())]);\n }\n return res;\n}\nfunction readString(slice) {\n return readBuffer(slice).toString();\n}\nexports.readString = readString;\nfunction writeBuffer(src, builder) {\n if (src.length > 0) {\n let bytes = Math.floor(builder.availableBits / 8);\n if (src.length > bytes) {\n let a = src.subarray(0, bytes);\n let t = src.subarray(bytes);\n builder = builder.storeBuffer(a);\n let bb = (0, Builder_1.beginCell)();\n writeBuffer(t, bb);\n builder = builder.storeRef(bb.endCell());\n }\n else {\n builder = builder.storeBuffer(src);\n }\n }\n}\nfunction stringToCell(src) {\n let builder = (0, Builder_1.beginCell)();\n writeBuffer(Buffer.from(src), builder);\n return builder.endCell();\n}\nexports.stringToCell = stringToCell;\nfunction writeString(src, builder) {\n writeBuffer(Buffer.from(src), builder);\n}\nexports.writeString = writeString;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Slice = void 0;\nconst symbol_inspect_1 = __importDefault(require(\"symbol.inspect\"));\nconst Dictionary_1 = require(\"../dict/Dictionary\");\nconst Builder_1 = require(\"./Builder\");\nconst strings_1 = require(\"./utils/strings\");\n/**\n * Slice is a class that allows to read cell data\n */\nclass Slice {\n constructor(reader, refs) {\n this[_a] = () => this.toString();\n this._reader = reader.clone();\n this._refs = [...refs];\n this._refsOffset = 0;\n }\n /**\n * Get remaining bits\n */\n get remainingBits() {\n return this._reader.remaining;\n }\n /**\n * Get offset bits\n */\n get offsetBits() {\n return this._reader.offset;\n }\n /**\n * Get remaining refs\n */\n get remainingRefs() {\n return this._refs.length - this._refsOffset;\n }\n /**\n * Get offset refs\n */\n get offsetRefs() {\n return this._refsOffset;\n }\n /**\n * Skip bits\n * @param bits\n */\n skip(bits) {\n this._reader.skip(bits);\n return this;\n }\n /**\n * Load a single bit\n * @returns true or false depending on the bit value\n */\n loadBit() {\n return this._reader.loadBit();\n }\n /**\n * Preload a signle bit\n * @returns true or false depending on the bit value\n */\n preloadBit() {\n return this._reader.preloadBit();\n }\n /**\n * Load a boolean\n * @returns true or false depending on the bit value\n */\n loadBoolean() {\n return this.loadBit();\n }\n /**\n * Load maybe boolean\n * @returns true or false depending on the bit value or null\n */\n loadMaybeBoolean() {\n if (this.loadBit()) {\n return this.loadBoolean();\n }\n else {\n return null;\n }\n }\n /**\n * Load bits as a new BitString\n * @param bits number of bits to read\n * @returns new BitString\n */\n loadBits(bits) {\n return this._reader.loadBits(bits);\n }\n /**\n * Preload bits as a new BitString\n * @param bits number of bits to read\n * @returns new BitString\n */\n preloadBits(bits) {\n return this._reader.preloadBits(bits);\n }\n /**\n * Load uint\n * @param bits number of bits to read\n * @returns uint value\n */\n loadUint(bits) {\n return this._reader.loadUint(bits);\n }\n /**\n * Load uint\n * @param bits number of bits to read\n * @returns uint value\n */\n loadUintBig(bits) {\n return this._reader.loadUintBig(bits);\n }\n /**\n * Preload uint\n * @param bits number of bits to read\n * @returns uint value\n */\n preloadUint(bits) {\n return this._reader.preloadUint(bits);\n }\n /**\n * Preload uint\n * @param bits number of bits to read\n * @returns uint value\n */\n preloadUintBig(bits) {\n return this._reader.preloadUintBig(bits);\n }\n /**\n * Load maybe uint\n * @param bits number of bits to read\n * @returns uint value or null\n */\n loadMaybeUint(bits) {\n if (this.loadBit()) {\n return this.loadUint(bits);\n }\n else {\n return null;\n }\n }\n /**\n * Load maybe uint\n * @param bits number of bits to read\n * @returns uint value or null\n */\n loadMaybeUintBig(bits) {\n if (this.loadBit()) {\n return this.loadUintBig(bits);\n }\n else {\n return null;\n }\n }\n /**\n * Load int\n * @param bits number of bits to read\n * @returns int value\n */\n loadInt(bits) {\n return this._reader.loadInt(bits);\n }\n /**\n * Load int\n * @param bits number of bits to read\n * @returns int value\n */\n loadIntBig(bits) {\n return this._reader.loadIntBig(bits);\n }\n /**\n * Preload int\n * @param bits number of bits to read\n * @returns int value\n */\n preloadInt(bits) {\n return this._reader.preloadInt(bits);\n }\n /**\n * Preload int\n * @param bits number of bits to read\n * @returns int value\n */\n preloadIntBig(bits) {\n return this._reader.preloadIntBig(bits);\n }\n /**\n * Load maybe uint\n * @param bits number of bits to read\n * @returns uint value or null\n */\n loadMaybeInt(bits) {\n if (this.loadBit()) {\n return this.loadInt(bits);\n }\n else {\n return null;\n }\n }\n /**\n * Load maybe uint\n * @param bits number of bits to read\n * @returns uint value or null\n */\n loadMaybeIntBig(bits) {\n if (this.loadBit()) {\n return this.loadIntBig(bits);\n }\n else {\n return null;\n }\n }\n /**\n * Load varuint\n * @param bits number of bits to read in header\n * @returns varuint value\n */\n loadVarUint(bits) {\n return this._reader.loadVarUint(bits);\n }\n /**\n * Load varuint\n * @param bits number of bits to read in header\n * @returns varuint value\n */\n loadVarUintBig(bits) {\n return this._reader.loadVarUintBig(bits);\n }\n /**\n * Preload varuint\n * @param bits number of bits to read in header\n * @returns varuint value\n */\n preloadVarUint(bits) {\n return this._reader.preloadVarUint(bits);\n }\n /**\n * Preload varuint\n * @param bits number of bits to read in header\n * @returns varuint value\n */\n preloadVarUintBig(bits) {\n return this._reader.preloadVarUintBig(bits);\n }\n /**\n * Load varint\n * @param bits number of bits to read in header\n * @returns varint value\n */\n loadVarInt(bits) {\n return this._reader.loadVarInt(bits);\n }\n /**\n * Load varint\n * @param bits number of bits to read in header\n * @returns varint value\n */\n loadVarIntBig(bits) {\n return this._reader.loadVarIntBig(bits);\n }\n /**\n * Preload varint\n * @param bits number of bits to read in header\n * @returns varint value\n */\n preloadVarInt(bits) {\n return this._reader.preloadVarInt(bits);\n }\n /**\n * Preload varint\n * @param bits number of bits to read in header\n * @returns varint value\n */\n preloadVarIntBig(bits) {\n return this._reader.preloadVarIntBig(bits);\n }\n /**\n * Load coins\n * @returns coins value\n */\n loadCoins() {\n return this._reader.loadCoins();\n }\n /**\n * Preload coins\n * @returns coins value\n */\n preloadCoins() {\n return this._reader.preloadCoins();\n }\n /**\n * Load maybe coins\n * @returns coins value or null\n */\n loadMaybeCoins() {\n if (this._reader.loadBit()) {\n return this._reader.loadCoins();\n }\n else {\n return null;\n }\n }\n /**\n * Load internal Address\n * @returns Address\n */\n loadAddress() {\n return this._reader.loadAddress();\n }\n /**\n * Load optional internal Address\n * @returns Address or null\n */\n loadMaybeAddress() {\n return this._reader.loadMaybeAddress();\n }\n /**\n * Load external address\n * @returns ExternalAddress\n */\n loadExternalAddress() {\n return this._reader.loadExternalAddress();\n }\n /**\n * Load optional external address\n * @returns ExternalAddress or null\n */\n loadMaybeExternalAddress() {\n return this._reader.loadMaybeExternalAddress();\n }\n /**\n * Load address\n * @returns Address, ExternalAddress or null\n */\n loadAddressAny() {\n return this._reader.loadAddressAny();\n }\n /**\n * Load reference\n * @returns Cell\n */\n loadRef() {\n if (this._refsOffset >= this._refs.length) {\n throw new Error(\"No more references\");\n }\n return this._refs[this._refsOffset++];\n }\n /**\n * Preload reference\n * @returns Cell\n */\n preloadRef() {\n if (this._refsOffset >= this._refs.length) {\n throw new Error(\"No more references\");\n }\n return this._refs[this._refsOffset];\n }\n /**\n * Load optional reference\n * @returns Cell or null\n */\n loadMaybeRef() {\n if (this.loadBit()) {\n return this.loadRef();\n }\n else {\n return null;\n }\n }\n /**\n * Preload optional reference\n * @returns Cell or null\n */\n preloadMaybeRef() {\n if (this.preloadBit()) {\n return this.preloadRef();\n }\n else {\n return null;\n }\n }\n /**\n * Load byte buffer\n * @param bytes number of bytes to load\n * @returns Buffer\n */\n loadBuffer(bytes) {\n return this._reader.loadBuffer(bytes);\n }\n /**\n * Load byte buffer\n * @param bytes number of bytes to load\n * @returns Buffer\n */\n preloadBuffer(bytes) {\n return this._reader.preloadBuffer(bytes);\n }\n /**\n * Load string tail\n */\n loadStringTail() {\n return (0, strings_1.readString)(this);\n }\n /**\n * Load maybe string tail\n * @returns string or null\n */\n loadMaybeStringTail() {\n if (this.loadBit()) {\n return (0, strings_1.readString)(this);\n }\n else {\n return null;\n }\n }\n /**\n * Load string tail from ref\n * @returns string\n */\n loadStringRefTail() {\n return (0, strings_1.readString)(this.loadRef().beginParse());\n }\n /**\n * Load maybe string tail from ref\n * @returns string or null\n */\n loadMaybeStringRefTail() {\n const ref = this.loadMaybeRef();\n if (ref) {\n return (0, strings_1.readString)(ref.beginParse());\n }\n else {\n return null;\n }\n }\n /**\n * Loads dictionary\n * @param key key description\n * @param value value description\n * @returns Dictionary<K, V>\n */\n loadDict(key, value) {\n return Dictionary_1.Dictionary.load(key, value, this);\n }\n /**\n * Loads dictionary directly from current slice\n * @param key key description\n * @param value value description\n * @returns Dictionary<K, V>\n */\n loadDictDirect(key, value) {\n return Dictionary_1.Dictionary.loadDirect(key, value, this);\n }\n /**\n * Checks if slice is empty\n */\n endParse() {\n if (this.remainingBits > 0 || this.remainingRefs > 0) {\n throw new Error(\"Slice is not empty\");\n }\n }\n /**\n * Convert slice to cell\n */\n asCell() {\n return (0, Builder_1.beginCell)().storeSlice(this).endCell();\n }\n /**\n *\n * @returns\n */\n asBuilder() {\n return (0, Builder_1.beginCell)().storeSlice(this);\n }\n /**\n * Clone slice\n * @returns cloned slice\n */\n clone(fromStart = false) {\n if (fromStart) {\n let reader = this._reader.clone();\n reader.reset();\n return new Slice(reader, this._refs);\n }\n else {\n let res = new Slice(this._reader, this._refs);\n res._refsOffset = this._refsOffset;\n return res;\n }\n }\n /**\n * Print slice as string by converting it to cell\n * @returns string\n */\n toString() {\n return this.asCell().toString();\n }\n}\nexports.Slice = Slice;\n_a = symbol_inspect_1.default;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.exoticLibrary = void 0;\nconst BitReader_1 = require(\"../BitReader\");\nfunction exoticLibrary(bits, refs) {\n const reader = new BitReader_1.BitReader(bits);\n // type + hash\n const size = 8 + 256;\n if (bits.length !== size) {\n throw new Error(`Library cell must have exactly (8 + 256) bits, got \"${bits.length}\"`);\n }\n // Check type\n let type = reader.loadUint(8);\n if (type !== 2) {\n throw new Error(`Library cell must have type 2, got \"${type}\"`);\n }\n return {};\n}\nexports.exoticLibrary = exoticLibrary;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.exoticMerkleUpdate = void 0;\nconst BitReader_1 = require(\"../BitReader\");\nfunction exoticMerkleUpdate(bits, refs) {\n const reader = new BitReader_1.BitReader(bits);\n // type + hash + hash + depth + depth\n const size = 8 + (2 * (256 + 16));\n if (bits.length !== size) {\n throw new Error(`Merkle Update cell must have exactly (8 + (2 * (256 + 16))) bits, got \"${bits.length}\"`);\n }\n if (refs.length !== 2) {\n throw new Error(`Merkle Update cell must have exactly 2 refs, got \"${refs.length}\"`);\n }\n let type = reader.loadUint(8);\n if (type !== 4) {\n throw new Error(`Merkle Update cell type must be exactly 4, got \"${type}\"`);\n }\n const proofHash1 = reader.loadBuffer(32);\n const proofHash2 = reader.loadBuffer(32);\n const proofDepth1 = reader.loadUint(16);\n const proofDepth2 = reader.loadUint(16);\n if (proofDepth1 !== refs[0].depth(0)) {\n throw new Error(`Merkle Update cell ref depth must be exactly \"${proofDepth1}\", got \"${refs[0].depth(0)}\"`);\n }\n if (!proofHash1.equals(refs[0].hash(0))) {\n throw new Error(`Merkle Update cell ref hash must be exactly \"${proofHash1.toString('hex')}\", got \"${refs[0].hash(0).toString('hex')}\"`);\n }\n if (proofDepth2 !== refs[1].depth(0)) {\n throw new Error(`Merkle Update cell ref depth must be exactly \"${proofDepth2}\", got \"${refs[1].depth(0)}\"`);\n }\n if (!proofHash2.equals(refs[1].hash(0))) {\n throw new Error(`Merkle Update cell ref hash must be exactly \"${proofHash2.toString('hex')}\", got \"${refs[1].hash(0).toString('hex')}\"`);\n }\n return {\n proofDepth1,\n proofDepth2,\n proofHash1,\n proofHash2\n };\n}\nexports.exoticMerkleUpdate = exoticMerkleUpdate;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LevelMask = void 0;\nclass LevelMask {\n constructor(mask = 0) {\n this._mask = 0;\n this._mask = mask;\n this._hashIndex = countSetBits(this._mask);\n this._hashCount = this._hashIndex + 1;\n }\n get value() {\n return this._mask;\n }\n get level() {\n return 32 - Math.clz32(this._mask);\n }\n get hashIndex() {\n return this._hashIndex;\n }\n get hashCount() {\n return this._hashCount;\n }\n apply(level) {\n return new LevelMask(this._mask & ((1 << level) - 1));\n }\n isSignificant(level) {\n let res = level === 0 || (this._mask >> (level - 1)) % 2 !== 0;\n return res;\n // bool res = level == 0 | | ( (mask_ >> (level -1)) % 2 != 0);\n }\n}\nexports.LevelMask = LevelMask;\nfunction countSetBits(n) {\n n = n - ((n >> 1) & 0x55555555);\n n = (n & 0x33333333) + ((n >> 2) & 0x33333333);\n return ((n + (n >> 4) & 0xF0F0F0F) * 0x1010101) >> 24;\n}\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.exoticPruned = void 0;\nconst BitReader_1 = require(\"../BitReader\");\nconst LevelMask_1 = require(\"./LevelMask\");\nfunction exoticPruned(bits, refs) {\n let reader = new BitReader_1.BitReader(bits);\n // Check type\n let type = reader.loadUint(8);\n if (type !== 1) {\n throw new Error(`Pruned branch cell must have type 1, got \"${type}\"`);\n }\n // Check refs\n if (refs.length !== 0) {\n throw new Error(`Pruned Branch cell can't has refs, got \"${refs.length}\"`);\n }\n // Resolve cell\n let mask;\n if (bits.length === 280) {\n // Special case for config proof\n // This test proof is generated in the moment of voting for a slashing\n // it seems that tools generate it incorrectly and therefore doesn't have mask in it\n // so we need to hardcode it equal to 1\n mask = new LevelMask_1.LevelMask(1);\n }\n else {\n // Check level\n mask = new LevelMask_1.LevelMask(reader.loadUint(8));\n if (mask.level < 1 || mask.level > 3) {\n throw new Error(`Pruned Branch cell level must be >= 1 and <= 3, got \"${mask.level}/${mask.value}\"`);\n }\n // Read pruned\n const size = 8 + 8 + (mask.apply(mask.level - 1).hashCount * (256 /* Hash */ + 16 /* Depth */));\n if (bits.length !== size) {\n throw new Error(`Pruned branch cell must have exactly ${size} bits, got \"${bits.length}\"`);\n }\n }\n // Read pruned\n let pruned = [];\n let hashes = [];\n let depths = [];\n for (let i = 0; i < mask.level; i++) {\n hashes.push(reader.loadBuffer(32));\n }\n for (let i = 0; i < mask.level; i++) {\n depths.push(reader.loadUint(16));\n }\n for (let i = 0; i < mask.level; i++) {\n pruned.push({\n depth: depths[i],\n hash: hashes[i]\n });\n }\n return {\n mask: mask.value,\n pruned\n };\n}\nexports.exoticPruned = exoticPruned;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveExotic = void 0;\nconst BitReader_1 = require(\"../BitReader\");\nconst CellType_1 = require(\"../CellType\");\nconst exoticLibrary_1 = require(\"./exoticLibrary\");\nconst exoticMerkleProof_1 = require(\"./exoticMerkleProof\");\nconst exoticMerkleUpdate_1 = require(\"./exoticMerkleUpdate\");\nconst exoticPruned_1 = require(\"./exoticPruned\");\nconst LevelMask_1 = require(\"./LevelMask\");\nfunction resolvePruned(bits, refs) {\n // Parse pruned cell\n let pruned = (0, exoticPruned_1.exoticPruned)(bits, refs);\n // Calculate parameters\n let depths = [];\n let hashes = [];\n let mask = new LevelMask_1.LevelMask(pruned.mask);\n for (let i = 0; i < pruned.pruned.length; i++) {\n depths.push(pruned.pruned[i].depth);\n hashes.push(pruned.pruned[i].hash);\n }\n return {\n type: CellType_1.CellType.PrunedBranch,\n depths,\n hashes,\n mask\n };\n}\nfunction resolveLibrary(bits, refs) {\n // Parse library cell\n let pruned = (0, exoticLibrary_1.exoticLibrary)(bits, refs);\n // Calculate parameters\n let depths = [];\n let hashes = [];\n let mask = new LevelMask_1.LevelMask();\n return {\n type: CellType_1.CellType.Library,\n depths,\n hashes,\n mask\n };\n}\nfunction resolveMerkleProof(bits, refs) {\n // Parse merkle proof cell\n let merkleProof = (0, exoticMerkleProof_1.exoticMerkleProof)(bits, refs);\n // Calculate parameters\n let depths = [];\n let hashes = [];\n let mask = new LevelMask_1.LevelMask(refs[0].level() >> 1);\n return {\n type: CellType_1.CellType.MerkleProof,\n depths,\n hashes,\n mask\n };\n}\nfunction resolveMerkleUpdate(bits, refs) {\n // Parse merkle proof cell\n let merkleUpdate = (0, exoticMerkleUpdate_1.exoticMerkleUpdate)(bits, refs);\n // Calculate parameters\n let depths = [];\n let hashes = [];\n let mask = new LevelMask_1.LevelMask((refs[0].level() | refs[1].level()) >> 1);\n return {\n type: CellType_1.CellType.MerkleUpdate,\n depths,\n hashes,\n mask\n };\n}\nfunction resolveExotic(bits, refs) {\n let reader = new BitReader_1.BitReader(bits);\n let type = reader.preloadUint(8);\n if (type === 1) {\n return resolvePruned(bits, refs);\n }\n if (type === 2) {\n return resolveLibrary(bits, refs);\n }\n if (type === 3) {\n return resolveMerkleProof(bits, refs);\n }\n if (type === 4) {\n return resolveMerkleUpdate(bits, refs);\n }\n throw Error('Invalid exotic cell type: ' + type);\n}\nexports.resolveExotic = resolveExotic;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRepr = exports.getBitsDescriptor = exports.getRefsDescriptor = void 0;\nconst CellType_1 = require(\"../CellType\");\nconst paddedBits_1 = require(\"../utils/paddedBits\");\nfunction getRefsDescriptor(refs, levelMask, type) {\n return refs.length + (type !== CellType_1.CellType.Ordinary ? 1 : 0) * 8 + levelMask * 32;\n}\nexports.getRefsDescriptor = getRefsDescriptor;\nfunction getBitsDescriptor(bits) {\n let len = bits.length;\n return Math.ceil(len / 8) + Math.floor(len / 8);\n}\nexports.getBitsDescriptor = getBitsDescriptor;\nfunction getRepr(originalBits, bits, refs, level, levelMask, type) {\n // Allocate\n const bitsLen = Math.ceil(bits.length / 8);\n const repr = Buffer.alloc(2 + bitsLen + (2 + 32) * refs.length);\n // Write descriptors\n let reprCursor = 0;\n repr[reprCursor++] = getRefsDescriptor(refs, levelMask, type);\n repr[reprCursor++] = getBitsDescriptor(originalBits);\n // Write bits\n (0, paddedBits_1.bitsToPaddedBuffer)(bits).copy(repr, reprCursor);\n reprCursor += bitsLen;\n // Write refs\n for (const c of refs) {\n let childDepth;\n if (type == CellType_1.CellType.MerkleProof || type == CellType_1.CellType.MerkleUpdate) {\n childDepth = c.depth(level + 1);\n }\n else {\n childDepth = c.depth(level);\n }\n repr[reprCursor++] = Math.floor(childDepth / 256);\n repr[reprCursor++] = childDepth % 256;\n }\n for (const c of refs) {\n let childHash;\n if (type == CellType_1.CellType.MerkleProof || type == CellType_1.CellType.MerkleUpdate) {\n childHash = c.hash(level + 1);\n }\n else {\n childHash = c.hash(level);\n }\n childHash.copy(repr, reprCursor);\n reprCursor += 32;\n }\n // Result\n return repr;\n}\nexports.getRepr = getRepr;\n","/**\n * A JavaScript implementation of the SHA family of hashes - defined in FIPS PUB 180-4, FIPS PUB 202,\n * and SP 800-185 - as well as the corresponding HMAC implementation as defined in FIPS PUB 198-1.\n *\n * Copyright 2008-2020 Brian Turek, 1998-2009 Paul Johnston & Contributors\n * Distributed under the BSD License\n * See http://caligatio.github.com/jsSHA/ for more information\n *\n * Two ECMAScript polyfill functions carry the following license:\n *\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with\n * the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED,\n * INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\n * MERCHANTABLITY OR NON-INFRINGEMENT.\n *\n * See the Apache Version 2.0 License for specific language governing permissions and limitations under the License.\n */\n!function(n,r){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=r():\"function\"==typeof define&&define.amd?define(r):(n=\"undefined\"!=typeof globalThis?globalThis:n||self).jsSHA=r()}(this,(function(){\"use strict\";var n=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";function r(n,r,t,e){var i,o,u,f=r||[0],w=(t=t||0)>>>3,s=-1===e?3:0;for(i=0;i<n.length;i+=1)o=(u=i+w)>>>2,f.length<=o&&f.push(0),f[o]|=n[i]<<8*(s+e*(u%4));return{value:f,binLen:8*n.length+t}}function t(t,e,i){switch(e){case\"UTF8\":case\"UTF16BE\":case\"UTF16LE\":break;default:throw new Error(\"encoding must be UTF8, UTF16BE, or UTF16LE\")}switch(t){case\"HEX\":return function(n,r,t){return function(n,r,t,e){var i,o,u,f;if(0!=n.length%2)throw new Error(\"String of HEX type must be in byte increments\");var w=r||[0],s=(t=t||0)>>>3,a=-1===e?3:0;for(i=0;i<n.length;i+=2){if(o=parseInt(n.substr(i,2),16),isNaN(o))throw new Error(\"String of HEX type contains invalid characters\");for(u=(f=(i>>>1)+s)>>>2;w.length<=u;)w.push(0);w[u]|=o<<8*(a+e*(f%4))}return{value:w,binLen:4*n.length+t}}(n,r,t,i)};case\"TEXT\":return function(n,r,t){return function(n,r,t,e,i){var o,u,f,w,s,a,h,c,v=0,A=t||[0],E=(e=e||0)>>>3;if(\"UTF8\"===r)for(h=-1===i?3:0,f=0;f<n.length;f+=1)for(u=[],128>(o=n.charCodeAt(f))?u.push(o):2048>o?(u.push(192|o>>>6),u.push(128|63&o)):55296>o||57344<=o?u.push(224|o>>>12,128|o>>>6&63,128|63&o):(f+=1,o=65536+((1023&o)<<10|1023&n.charCodeAt(f)),u.push(240|o>>>18,128|o>>>12&63,128|o>>>6&63,128|63&o)),w=0;w<u.length;w+=1){for(s=(a=v+E)>>>2;A.length<=s;)A.push(0);A[s]|=u[w]<<8*(h+i*(a%4)),v+=1}else for(h=-1===i?2:0,c=\"UTF16LE\"===r&&1!==i||\"UTF16LE\"!==r&&1===i,f=0;f<n.length;f+=1){for(o=n.charCodeAt(f),!0===c&&(o=(w=255&o)<<8|o>>>8),s=(a=v+E)>>>2;A.length<=s;)A.push(0);A[s]|=o<<8*(h+i*(a%4)),v+=2}return{value:A,binLen:8*v+e}}(n,e,r,t,i)};case\"B64\":return function(r,t,e){return function(r,t,e,i){var o,u,f,w,s,a,h=0,c=t||[0],v=(e=e||0)>>>3,A=-1===i?3:0,E=r.indexOf(\"=\");if(-1===r.search(/^[a-zA-Z0-9=+/]+$/))throw new Error(\"Invalid character in base-64 string\");if(r=r.replace(/=/g,\"\"),-1!==E&&E<r.length)throw new Error(\"Invalid '=' found in base-64 string\");for(o=0;o<r.length;o+=4){for(w=r.substr(o,4),f=0,u=0;u<w.length;u+=1)f|=n.indexOf(w.charAt(u))<<18-6*u;for(u=0;u<w.length-1;u+=1){for(s=(a=h+v)>>>2;c.length<=s;)c.push(0);c[s]|=(f>>>16-8*u&255)<<8*(A+i*(a%4)),h+=1}}return{value:c,binLen:8*h+e}}(r,t,e,i)};case\"BYTES\":return function(n,r,t){return function(n,r,t,e){var i,o,u,f,w=r||[0],s=(t=t||0)>>>3,a=-1===e?3:0;for(o=0;o<n.length;o+=1)i=n.charCodeAt(o),u=(f=o+s)>>>2,w.length<=u&&w.push(0),w[u]|=i<<8*(a+e*(f%4));return{value:w,binLen:8*n.length+t}}(n,r,t,i)};case\"ARRAYBUFFER\":try{new ArrayBuffer(0)}catch(n){throw new Error(\"ARRAYBUFFER not supported by this environment\")}return function(n,t,e){return function(n,t,e,i){return r(new Uint8Array(n),t,e,i)}(n,t,e,i)};case\"UINT8ARRAY\":try{new Uint8Array(0)}catch(n){throw new Error(\"UINT8ARRAY not supported by this environment\")}return function(n,t,e){return r(n,t,e,i)};default:throw new Error(\"format must be HEX, TEXT, B64, BYTES, ARRAYBUFFER, or UINT8ARRAY\")}}function e(r,t,e,i){switch(r){case\"HEX\":return function(n){return function(n,r,t,e){var i,o,u=\"\",f=r/8,w=-1===t?3:0;for(i=0;i<f;i+=1)o=n[i>>>2]>>>8*(w+t*(i%4)),u+=\"0123456789abcdef\".charAt(o>>>4&15)+\"0123456789abcdef\".charAt(15&o);return e.outputUpper?u.toUpperCase():u}(n,t,e,i)};case\"B64\":return function(r){return function(r,t,e,i){var o,u,f,w,s,a=\"\",h=t/8,c=-1===e?3:0;for(o=0;o<h;o+=3)for(w=o+1<h?r[o+1>>>2]:0,s=o+2<h?r[o+2>>>2]:0,f=(r[o>>>2]>>>8*(c+e*(o%4))&255)<<16|(w>>>8*(c+e*((o+1)%4))&255)<<8|s>>>8*(c+e*((o+2)%4))&255,u=0;u<4;u+=1)a+=8*o+6*u<=t?n.charAt(f>>>6*(3-u)&63):i.b64Pad;return a}(r,t,e,i)};case\"BYTES\":return function(n){return function(n,r,t){var e,i,o=\"\",u=r/8,f=-1===t?3:0;for(e=0;e<u;e+=1)i=n[e>>>2]>>>8*(f+t*(e%4))&255,o+=String.fromCharCode(i);return o}(n,t,e)};case\"ARRAYBUFFER\":try{new ArrayBuffer(0)}catch(n){throw new Error(\"ARRAYBUFFER not supported by this environment\")}return function(n){return function(n,r,t){var e,i=r/8,o=new ArrayBuffer(i),u=new Uint8Array(o),f=-1===t?3:0;for(e=0;e<i;e+=1)u[e]=n[e>>>2]>>>8*(f+t*(e%4))&255;return o}(n,t,e)};case\"UINT8ARRAY\":try{new Uint8Array(0)}catch(n){throw new Error(\"UINT8ARRAY not supported by this environment\")}return function(n){return function(n,r,t){var e,i=r/8,o=-1===t?3:0,u=new Uint8Array(i);for(e=0;e<i;e+=1)u[e]=n[e>>>2]>>>8*(o+t*(e%4))&255;return u}(n,t,e)};default:throw new Error(\"format must be HEX, B64, BYTES, ARRAYBUFFER, or UINT8ARRAY\")}}var i=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],o=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428],u=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],f=\"Chosen SHA variant is not supported\";function w(n,r){var t,e,i=n.binLen>>>3,o=r.binLen>>>3,u=i<<3,f=4-i<<3;if(i%4!=0){for(t=0;t<o;t+=4)e=i+t>>>2,n.value[e]|=r.value[t>>>2]<<u,n.value.push(0),n.value[e+1]|=r.value[t>>>2]>>>f;return(n.value.length<<2)-4>=o+i&&n.value.pop(),{value:n.value,binLen:n.binLen+r.binLen}}return{value:n.value.concat(r.value),binLen:n.binLen+r.binLen}}function s(n){var r={outputUpper:!1,b64Pad:\"=\",outputLen:-1},t=n||{},e=\"Output length must be a multiple of 8\";if(r.outputUpper=t.outputUpper||!1,t.b64Pad&&(r.b64Pad=t.b64Pad),t.outputLen){if(t.outputLen%8!=0)throw new Error(e);r.outputLen=t.outputLen}else if(t.shakeLen){if(t.shakeLen%8!=0)throw new Error(e);r.outputLen=t.shakeLen}if(\"boolean\"!=typeof r.outputUpper)throw new Error(\"Invalid outputUpper formatting option\");if(\"string\"!=typeof r.b64Pad)throw new Error(\"Invalid b64Pad formatting option\");return r}function a(n,r,e,i){var o=n+\" must include a value and format\";if(!r){if(!i)throw new Error(o);return i}if(void 0===r.value||!r.format)throw new Error(o);return t(r.format,r.encoding||\"UTF8\",e)(r.value)}var h=function(){function n(n,r,t){var e=t||{};if(this.t=r,this.i=e.encoding||\"UTF8\",this.numRounds=e.numRounds||1,isNaN(this.numRounds)||this.numRounds!==parseInt(this.numRounds,10)||1>this.numRounds)throw new Error(\"numRounds must a integer >= 1\");this.o=n,this.u=[],this.s=0,this.h=!1,this.v=0,this.A=!1,this.l=[],this.H=[]}return n.prototype.update=function(n){var r,t=0,e=this.S>>>5,i=this.p(n,this.u,this.s),o=i.binLen,u=i.value,f=o>>>5;for(r=0;r<f;r+=e)t+this.S<=o&&(this.m=this.R(u.slice(r,r+e),this.m),t+=this.S);this.v+=t,this.u=u.slice(t>>>5),this.s=o%this.S,this.h=!0},n.prototype.getHash=function(n,r){var t,i,o=this.U,u=s(r);if(this.T){if(-1===u.outputLen)throw new Error(\"Output length must be specified in options\");o=u.outputLen}var f=e(n,o,this.C,u);if(this.A&&this.F)return f(this.F(u));for(i=this.K(this.u.slice(),this.s,this.v,this.B(this.m),o),t=1;t<this.numRounds;t+=1)this.T&&o%32!=0&&(i[i.length-1]&=16777215>>>24-o%32),i=this.K(i,o,0,this.L(this.o),o);return f(i)},n.prototype.setHMACKey=function(n,r,e){if(!this.g)throw new Error(\"Variant does not support HMAC\");if(this.h)throw new Error(\"Cannot set MAC key after calling update\");var i=t(r,(e||{}).encoding||\"UTF8\",this.C);this.k(i(n))},n.prototype.k=function(n){var r,t=this.S>>>3,e=t/4-1;if(1!==this.numRounds)throw new Error(\"Cannot set numRounds with MAC\");if(this.A)throw new Error(\"MAC key already set\");for(t<n.binLen/8&&(n.value=this.K(n.value,n.binLen,0,this.L(this.o),this.U));n.value.length<=e;)n.value.push(0);for(r=0;r<=e;r+=1)this.l[r]=909522486^n.value[r],this.H[r]=1549556828^n.value[r];this.m=this.R(this.l,this.m),this.v=this.S,this.A=!0},n.prototype.getHMAC=function(n,r){var t=s(r);return e(n,this.U,this.C,t)(this.Y())},n.prototype.Y=function(){var n;if(!this.A)throw new Error(\"Cannot call getHMAC without first setting MAC key\");var r=this.K(this.u.slice(),this.s,this.v,this.B(this.m),this.U);return n=this.R(this.H,this.L(this.o)),n=this.K(r,this.U,this.S,n,this.U)},n}(),c=function(n,r){return(c=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(n[t]=r[t])})(n,r)};function v(n,r){function t(){this.constructor=n}c(n,r),n.prototype=null===r?Object.create(r):(t.prototype=r.prototype,new t)}function A(n,r){return n<<r|n>>>32-r}function E(n,r){return n>>>r|n<<32-r}function l(n,r){return n>>>r}function b(n,r,t){return n^r^t}function H(n,r,t){return n&r^~n&t}function d(n,r,t){return n&r^n&t^r&t}function S(n){return E(n,2)^E(n,13)^E(n,22)}function p(n,r){var t=(65535&n)+(65535&r);return(65535&(n>>>16)+(r>>>16)+(t>>>16))<<16|65535&t}function m(n,r,t,e){var i=(65535&n)+(65535&r)+(65535&t)+(65535&e);return(65535&(n>>>16)+(r>>>16)+(t>>>16)+(e>>>16)+(i>>>16))<<16|65535&i}function y(n,r,t,e,i){var o=(65535&n)+(65535&r)+(65535&t)+(65535&e)+(65535&i);return(65535&(n>>>16)+(r>>>16)+(t>>>16)+(e>>>16)+(i>>>16)+(o>>>16))<<16|65535&o}function R(n){return E(n,7)^E(n,18)^l(n,3)}function U(n){return E(n,6)^E(n,11)^E(n,25)}function T(n){return[1732584193,4023233417,2562383102,271733878,3285377520]}function C(n,r){var t,e,i,o,u,f,w,s=[];for(t=r[0],e=r[1],i=r[2],o=r[3],u=r[4],w=0;w<80;w+=1)s[w]=w<16?n[w]:A(s[w-3]^s[w-8]^s[w-14]^s[w-16],1),f=w<20?y(A(t,5),H(e,i,o),u,1518500249,s[w]):w<40?y(A(t,5),b(e,i,o),u,1859775393,s[w]):w<60?y(A(t,5),d(e,i,o),u,2400959708,s[w]):y(A(t,5),b(e,i,o),u,3395469782,s[w]),u=o,o=i,i=A(e,30),e=t,t=f;return r[0]=p(t,r[0]),r[1]=p(e,r[1]),r[2]=p(i,r[2]),r[3]=p(o,r[3]),r[4]=p(u,r[4]),r}function F(n,r,t,e){for(var i,o=15+(r+65>>>9<<4),u=r+t;n.length<=o;)n.push(0);for(n[r>>>5]|=128<<24-r%32,n[o]=4294967295&u,n[o-1]=u/4294967296|0,i=0;i<n.length;i+=16)e=C(n.slice(i,i+16),e);return e}var K=function(n){function r(r,e,i){var o=this;if(\"SHA-1\"!==r)throw new Error(f);var u=i||{};return(o=n.call(this,r,e,i)||this).g=!0,o.F=o.Y,o.C=-1,o.p=t(o.t,o.i,o.C),o.R=C,o.B=function(n){return n.slice()},o.L=T,o.K=F,o.m=[1732584193,4023233417,2562383102,271733878,3285377520],o.S=512,o.U=160,o.T=!1,u.hmacKey&&o.k(a(\"hmacKey\",u.hmacKey,o.C)),o}return v(r,n),r}(h);function B(n){return\"SHA-224\"==n?o.slice():u.slice()}function L(n,r){var t,e,o,u,f,w,s,a,h,c,v,A,b=[];for(t=r[0],e=r[1],o=r[2],u=r[3],f=r[4],w=r[5],s=r[6],a=r[7],v=0;v<64;v+=1)b[v]=v<16?n[v]:m(E(A=b[v-2],17)^E(A,19)^l(A,10),b[v-7],R(b[v-15]),b[v-16]),h=y(a,U(f),H(f,w,s),i[v],b[v]),c=p(S(t),d(t,e,o)),a=s,s=w,w=f,f=p(u,h),u=o,o=e,e=t,t=p(h,c);return r[0]=p(t,r[0]),r[1]=p(e,r[1]),r[2]=p(o,r[2]),r[3]=p(u,r[3]),r[4]=p(f,r[4]),r[5]=p(w,r[5]),r[6]=p(s,r[6]),r[7]=p(a,r[7]),r}var g=function(n){function r(r,e,i){var o=this;if(\"SHA-224\"!==r&&\"SHA-256\"!==r)throw new Error(f);var u=i||{};return(o=n.call(this,r,e,i)||this).F=o.Y,o.g=!0,o.C=-1,o.p=t(o.t,o.i,o.C),o.R=L,o.B=function(n){return n.slice()},o.L=B,o.K=function(n,t,e,i){return function(n,r,t,e,i){for(var o,u=15+(r+65>>>9<<4),f=r+t;n.length<=u;)n.push(0);for(n[r>>>5]|=128<<24-r%32,n[u]=4294967295&f,n[u-1]=f/4294967296|0,o=0;o<n.length;o+=16)e=L(n.slice(o,o+16),e);return\"SHA-224\"===i?[e[0],e[1],e[2],e[3],e[4],e[5],e[6]]:e}(n,t,e,i,r)},o.m=B(r),o.S=512,o.U=\"SHA-224\"===r?224:256,o.T=!1,u.hmacKey&&o.k(a(\"hmacKey\",u.hmacKey,o.C)),o}return v(r,n),r}(h),k=function(n,r){this.N=n,this.I=r};function Y(n,r){var t;return r>32?(t=64-r,new k(n.I<<r|n.N>>>t,n.N<<r|n.I>>>t)):0!==r?(t=32-r,new k(n.N<<r|n.I>>>t,n.I<<r|n.N>>>t)):n}function N(n,r){var t;return r<32?(t=32-r,new k(n.N>>>r|n.I<<t,n.I>>>r|n.N<<t)):(t=64-r,new k(n.I>>>r|n.N<<t,n.N>>>r|n.I<<t))}function I(n,r){return new k(n.N>>>r,n.I>>>r|n.N<<32-r)}function M(n,r,t){return new k(n.N&r.N^~n.N&t.N,n.I&r.I^~n.I&t.I)}function X(n,r,t){return new k(n.N&r.N^n.N&t.N^r.N&t.N,n.I&r.I^n.I&t.I^r.I&t.I)}function z(n){var r=N(n,28),t=N(n,34),e=N(n,39);return new k(r.N^t.N^e.N,r.I^t.I^e.I)}function O(n,r){var t,e;t=(65535&n.I)+(65535&r.I);var i=(65535&(e=(n.I>>>16)+(r.I>>>16)+(t>>>16)))<<16|65535&t;return t=(65535&n.N)+(65535&r.N)+(e>>>16),e=(n.N>>>16)+(r.N>>>16)+(t>>>16),new k((65535&e)<<16|65535&t,i)}function j(n,r,t,e){var i,o;i=(65535&n.I)+(65535&r.I)+(65535&t.I)+(65535&e.I);var u=(65535&(o=(n.I>>>16)+(r.I>>>16)+(t.I>>>16)+(e.I>>>16)+(i>>>16)))<<16|65535&i;return i=(65535&n.N)+(65535&r.N)+(65535&t.N)+(65535&e.N)+(o>>>16),o=(n.N>>>16)+(r.N>>>16)+(t.N>>>16)+(e.N>>>16)+(i>>>16),new k((65535&o)<<16|65535&i,u)}function _(n,r,t,e,i){var o,u;o=(65535&n.I)+(65535&r.I)+(65535&t.I)+(65535&e.I)+(65535&i.I);var f=(65535&(u=(n.I>>>16)+(r.I>>>16)+(t.I>>>16)+(e.I>>>16)+(i.I>>>16)+(o>>>16)))<<16|65535&o;return o=(65535&n.N)+(65535&r.N)+(65535&t.N)+(65535&e.N)+(65535&i.N)+(u>>>16),u=(n.N>>>16)+(r.N>>>16)+(t.N>>>16)+(e.N>>>16)+(i.N>>>16)+(o>>>16),new k((65535&u)<<16|65535&o,f)}function P(n,r){return new k(n.N^r.N,n.I^r.I)}function x(n){var r=N(n,1),t=N(n,8),e=I(n,7);return new k(r.N^t.N^e.N,r.I^t.I^e.I)}function V(n){var r=N(n,14),t=N(n,18),e=N(n,41);return new k(r.N^t.N^e.N,r.I^t.I^e.I)}var Z=[new k(i[0],3609767458),new k(i[1],602891725),new k(i[2],3964484399),new k(i[3],2173295548),new k(i[4],4081628472),new k(i[5],3053834265),new k(i[6],2937671579),new k(i[7],3664609560),new k(i[8],2734883394),new k(i[9],1164996542),new k(i[10],1323610764),new k(i[11],3590304994),new k(i[12],4068182383),new k(i[13],991336113),new k(i[14],633803317),new k(i[15],3479774868),new k(i[16],2666613458),new k(i[17],944711139),new k(i[18],2341262773),new k(i[19],2007800933),new k(i[20],1495990901),new k(i[21],1856431235),new k(i[22],3175218132),new k(i[23],2198950837),new k(i[24],3999719339),new k(i[25],766784016),new k(i[26],2566594879),new k(i[27],3203337956),new k(i[28],1034457026),new k(i[29],2466948901),new k(i[30],3758326383),new k(i[31],168717936),new k(i[32],1188179964),new k(i[33],1546045734),new k(i[34],1522805485),new k(i[35],2643833823),new k(i[36],2343527390),new k(i[37],1014477480),new k(i[38],1206759142),new k(i[39],344077627),new k(i[40],1290863460),new k(i[41],3158454273),new k(i[42],3505952657),new k(i[43],106217008),new k(i[44],3606008344),new k(i[45],1432725776),new k(i[46],1467031594),new k(i[47],851169720),new k(i[48],3100823752),new k(i[49],1363258195),new k(i[50],3750685593),new k(i[51],3785050280),new k(i[52],3318307427),new k(i[53],3812723403),new k(i[54],2003034995),new k(i[55],3602036899),new k(i[56],1575990012),new k(i[57],1125592928),new k(i[58],2716904306),new k(i[59],442776044),new k(i[60],593698344),new k(i[61],3733110249),new k(i[62],2999351573),new k(i[63],3815920427),new k(3391569614,3928383900),new k(3515267271,566280711),new k(3940187606,3454069534),new k(4118630271,4000239992),new k(116418474,1914138554),new k(174292421,2731055270),new k(289380356,3203993006),new k(460393269,320620315),new k(685471733,587496836),new k(852142971,1086792851),new k(1017036298,365543100),new k(1126000580,2618297676),new k(1288033470,3409855158),new k(1501505948,4234509866),new k(1607167915,987167468),new k(1816402316,1246189591)];function q(n){return\"SHA-384\"===n?[new k(3418070365,o[0]),new k(1654270250,o[1]),new k(2438529370,o[2]),new k(355462360,o[3]),new k(1731405415,o[4]),new k(41048885895,o[5]),new k(3675008525,o[6]),new k(1203062813,o[7])]:[new k(u[0],4089235720),new k(u[1],2227873595),new k(u[2],4271175723),new k(u[3],1595750129),new k(u[4],2917565137),new k(u[5],725511199),new k(u[6],4215389547),new k(u[7],327033209)]}function D(n,r){var t,e,i,o,u,f,w,s,a,h,c,v,A,E,l,b,H=[];for(t=r[0],e=r[1],i=r[2],o=r[3],u=r[4],f=r[5],w=r[6],s=r[7],c=0;c<80;c+=1)c<16?(v=2*c,H[c]=new k(n[v],n[v+1])):H[c]=j((A=H[c-2],E=void 0,l=void 0,b=void 0,E=N(A,19),l=N(A,61),b=I(A,6),new k(E.N^l.N^b.N,E.I^l.I^b.I)),H[c-7],x(H[c-15]),H[c-16]),a=_(s,V(u),M(u,f,w),Z[c],H[c]),h=O(z(t),X(t,e,i)),s=w,w=f,f=u,u=O(o,a),o=i,i=e,e=t,t=O(a,h);return r[0]=O(t,r[0]),r[1]=O(e,r[1]),r[2]=O(i,r[2]),r[3]=O(o,r[3]),r[4]=O(u,r[4]),r[5]=O(f,r[5]),r[6]=O(w,r[6]),r[7]=O(s,r[7]),r}var G=function(n){function r(r,e,i){var o=this;if(\"SHA-384\"!==r&&\"SHA-512\"!==r)throw new Error(f);var u=i||{};return(o=n.call(this,r,e,i)||this).F=o.Y,o.g=!0,o.C=-1,o.p=t(o.t,o.i,o.C),o.R=D,o.B=function(n){return n.slice()},o.L=q,o.K=function(n,t,e,i){return function(n,r,t,e,i){for(var o,u=31+(r+129>>>10<<5),f=r+t;n.length<=u;)n.push(0);for(n[r>>>5]|=128<<24-r%32,n[u]=4294967295&f,n[u-1]=f/4294967296|0,o=0;o<n.length;o+=32)e=D(n.slice(o,o+32),e);return\"SHA-384\"===i?[(e=e)[0].N,e[0].I,e[1].N,e[1].I,e[2].N,e[2].I,e[3].N,e[3].I,e[4].N,e[4].I,e[5].N,e[5].I]:[e[0].N,e[0].I,e[1].N,e[1].I,e[2].N,e[2].I,e[3].N,e[3].I,e[4].N,e[4].I,e[5].N,e[5].I,e[6].N,e[6].I,e[7].N,e[7].I]}(n,t,e,i,r)},o.m=q(r),o.S=1024,o.U=\"SHA-384\"===r?384:512,o.T=!1,u.hmacKey&&o.k(a(\"hmacKey\",u.hmacKey,o.C)),o}return v(r,n),r}(h),J=[new k(0,1),new k(0,32898),new k(2147483648,32906),new k(2147483648,2147516416),new k(0,32907),new k(0,2147483649),new k(2147483648,2147516545),new k(2147483648,32777),new k(0,138),new k(0,136),new k(0,2147516425),new k(0,2147483658),new k(0,2147516555),new k(2147483648,139),new k(2147483648,32905),new k(2147483648,32771),new k(2147483648,32770),new k(2147483648,128),new k(0,32778),new k(2147483648,2147483658),new k(2147483648,2147516545),new k(2147483648,32896),new k(0,2147483649),new k(2147483648,2147516424)],Q=[[0,36,3,41,18],[1,44,10,45,2],[62,6,43,15,61],[28,55,25,21,56],[27,20,39,8,14]];function W(n){var r,t=[];for(r=0;r<5;r+=1)t[r]=[new k(0,0),new k(0,0),new k(0,0),new k(0,0),new k(0,0)];return t}function $(n){var r,t=[];for(r=0;r<5;r+=1)t[r]=n[r].slice();return t}function nn(n,r){var t,e,i,o,u,f,w,s,a,h=[],c=[];if(null!==n)for(e=0;e<n.length;e+=2)r[(e>>>1)%5][(e>>>1)/5|0]=P(r[(e>>>1)%5][(e>>>1)/5|0],new k(n[e+1],n[e]));for(t=0;t<24;t+=1){for(o=W(),e=0;e<5;e+=1)h[e]=(u=r[e][0],f=r[e][1],w=r[e][2],s=r[e][3],a=r[e][4],new k(u.N^f.N^w.N^s.N^a.N,u.I^f.I^w.I^s.I^a.I));for(e=0;e<5;e+=1)c[e]=P(h[(e+4)%5],Y(h[(e+1)%5],1));for(e=0;e<5;e+=1)for(i=0;i<5;i+=1)r[e][i]=P(r[e][i],c[e]);for(e=0;e<5;e+=1)for(i=0;i<5;i+=1)o[i][(2*e+3*i)%5]=Y(r[e][i],Q[e][i]);for(e=0;e<5;e+=1)for(i=0;i<5;i+=1)r[e][i]=P(o[e][i],new k(~o[(e+1)%5][i].N&o[(e+2)%5][i].N,~o[(e+1)%5][i].I&o[(e+2)%5][i].I));r[0][0]=P(r[0][0],J[t])}return r}function rn(n){var r,t,e=0,i=[0,0],o=[4294967295&n,n/4294967296&2097151];for(r=6;r>=0;r--)0===(t=o[r>>2]>>>8*r&255)&&0===e||(i[e+1>>2]|=t<<8*(e+1),e+=1);return e=0!==e?e:1,i[0]|=e,{value:e+1>4?i:[i[0]],binLen:8+8*e}}function tn(n){return w(rn(n.binLen),n)}function en(n,r){var t,e=rn(r),i=r>>>2,o=(i-(e=w(e,n)).value.length%i)%i;for(t=0;t<o;t++)e.value.push(0);return e.value}var on=function(n){function r(r,e,i){var o=this,u=6,w=0,s=i||{};if(1!==(o=n.call(this,r,e,i)||this).numRounds){if(s.kmacKey||s.hmacKey)throw new Error(\"Cannot set numRounds with MAC\");if(\"CSHAKE128\"===o.o||\"CSHAKE256\"===o.o)throw new Error(\"Cannot set numRounds for CSHAKE variants\")}switch(o.C=1,o.p=t(o.t,o.i,o.C),o.R=nn,o.B=$,o.L=W,o.m=W(),o.T=!1,r){case\"SHA3-224\":o.S=w=1152,o.U=224,o.g=!0,o.F=o.Y;break;case\"SHA3-256\":o.S=w=1088,o.U=256,o.g=!0,o.F=o.Y;break;case\"SHA3-384\":o.S=w=832,o.U=384,o.g=!0,o.F=o.Y;break;case\"SHA3-512\":o.S=w=576,o.U=512,o.g=!0,o.F=o.Y;break;case\"SHAKE128\":u=31,o.S=w=1344,o.U=-1,o.T=!0,o.g=!1,o.F=null;break;case\"SHAKE256\":u=31,o.S=w=1088,o.U=-1,o.T=!0,o.g=!1,o.F=null;break;case\"KMAC128\":u=4,o.S=w=1344,o.M(i),o.U=-1,o.T=!0,o.g=!1,o.F=o.X;break;case\"KMAC256\":u=4,o.S=w=1088,o.M(i),o.U=-1,o.T=!0,o.g=!1,o.F=o.X;break;case\"CSHAKE128\":o.S=w=1344,u=o.O(i),o.U=-1,o.T=!0,o.g=!1,o.F=null;break;case\"CSHAKE256\":o.S=w=1088,u=o.O(i),o.U=-1,o.T=!0,o.g=!1,o.F=null;break;default:throw new Error(f)}return o.K=function(n,r,t,e,i){return function(n,r,t,e,i,o,u){var f,w,s=0,a=[],h=i>>>5,c=r>>>5;for(f=0;f<c&&r>=i;f+=h)e=nn(n.slice(f,f+h),e),r-=i;for(n=n.slice(f),r%=i;n.length<h;)n.push(0);for(n[(f=r>>>3)>>2]^=o<<f%4*8,n[h-1]^=2147483648,e=nn(n,e);32*a.length<u&&(w=e[s%5][s/5|0],a.push(w.I),!(32*a.length>=u));)a.push(w.N),0==64*(s+=1)%i&&(nn(null,e),s=0);return a}(n,r,0,e,w,u,i)},s.hmacKey&&o.k(a(\"hmacKey\",s.hmacKey,o.C)),o}return v(r,n),r.prototype.O=function(n,r){var t=function(n){var r=n||{};return{funcName:a(\"funcName\",r.funcName,1,{value:[],binLen:0}),customization:a(\"Customization\",r.customization,1,{value:[],binLen:0})}}(n||{});r&&(t.funcName=r);var e=w(tn(t.funcName),tn(t.customization));if(0!==t.customization.binLen||0!==t.funcName.binLen){for(var i=en(e,this.S>>>3),o=0;o<i.length;o+=this.S>>>5)this.m=this.R(i.slice(o,o+(this.S>>>5)),this.m),this.v+=this.S;return 4}return 31},r.prototype.M=function(n){var r=function(n){var r=n||{};return{kmacKey:a(\"kmacKey\",r.kmacKey,1),funcName:{value:[1128353099],binLen:32},customization:a(\"Customization\",r.customization,1,{value:[],binLen:0})}}(n||{});this.O(n,r.funcName);for(var t=en(tn(r.kmacKey),this.S>>>3),e=0;e<t.length;e+=this.S>>>5)this.m=this.R(t.slice(e,e+(this.S>>>5)),this.m),this.v+=this.S;this.A=!0},r.prototype.X=function(n){var r=w({value:this.u.slice(),binLen:this.s},function(n){var r,t,e=0,i=[0,0],o=[4294967295&n,n/4294967296&2097151];for(r=6;r>=0;r--)0==(t=o[r>>2]>>>8*r&255)&&0===e||(i[e>>2]|=t<<8*e,e+=1);return i[(e=0!==e?e:1)>>2]|=e<<8*e,{value:e+1>4?i:[i[0]],binLen:8+8*e}}(n.outputLen));return this.K(r.value,r.binLen,this.v,this.B(this.m),n.outputLen)},r}(h);return function(){function n(n,r,t){if(\"SHA-1\"==n)this.j=new K(n,r,t);else if(\"SHA-224\"==n||\"SHA-256\"==n)this.j=new g(n,r,t);else if(\"SHA-384\"==n||\"SHA-512\"==n)this.j=new G(n,r,t);else{if(\"SHA3-224\"!=n&&\"SHA3-256\"!=n&&\"SHA3-384\"!=n&&\"SHA3-512\"!=n&&\"SHAKE128\"!=n&&\"SHAKE256\"!=n&&\"CSHAKE128\"!=n&&\"CSHAKE256\"!=n&&\"KMAC128\"!=n&&\"KMAC256\"!=n)throw new Error(f);this.j=new on(n,r,t)}}return n.prototype.update=function(n){this.j.update(n)},n.prototype.getHash=function(n,r){return this.j.getHash(n,r)},n.prototype.setHMACKey=function(n,r,t){this.j.setHMACKey(n,r,t)},n.prototype.getHMAC=function(n,r){return this.j.getHMAC(n,r)},n}()}));\n//# sourceMappingURL=sha.js.map\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSecureRandomWords = exports.getSecureRandomBytes = void 0;\nfunction getSecureRandomBytes(size) {\n return Buffer.from(window.crypto.getRandomValues(new Uint8Array(size)));\n}\nexports.getSecureRandomBytes = getSecureRandomBytes;\nfunction getSecureRandomWords(size) {\n return window.crypto.getRandomValues(new Uint16Array(size));\n}\nexports.getSecureRandomWords = getSecureRandomWords;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hmac_sha512 = void 0;\nasync function hmac_sha512(key, data) {\n let keyBuffer = typeof key === 'string' ? Buffer.from(key, 'utf-8') : key;\n let dataBuffer = typeof data === 'string' ? Buffer.from(data, 'utf-8') : data;\n const hmacAlgo = { name: \"HMAC\", hash: \"SHA-512\" };\n const hmacKey = await window.crypto.subtle.importKey(\"raw\", keyBuffer, hmacAlgo, false, [\"sign\"]);\n return Buffer.from(await crypto.subtle.sign(hmacAlgo, hmacKey, dataBuffer));\n}\nexports.hmac_sha512 = hmac_sha512;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pbkdf2_sha512 = void 0;\nasync function pbkdf2_sha512(key, salt, iterations, keyLen) {\n const keyBuffer = typeof key === 'string' ? Buffer.from(key, 'utf-8') : key;\n const saltBuffer = typeof salt === 'string' ? Buffer.from(salt, 'utf-8') : salt;\n const pbkdf2_key = await window.crypto.subtle.importKey(\"raw\", keyBuffer, { name: \"PBKDF2\" }, false, [\"deriveBits\"]);\n const derivedBits = await window.crypto.subtle.deriveBits({ name: \"PBKDF2\", hash: \"SHA-512\", salt: saltBuffer, iterations: iterations }, pbkdf2_key, keyLen * 8);\n return Buffer.from(derivedBits);\n}\nexports.pbkdf2_sha512 = pbkdf2_sha512;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha256 = void 0;\nasync function sha256(source) {\n if (typeof source === 'string') {\n return Buffer.from(await crypto.subtle.digest(\"SHA-256\", Buffer.from(source, 'utf-8')));\n }\n return Buffer.from(await crypto.subtle.digest(\"SHA-256\", source));\n}\nexports.sha256 = sha256;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha512 = void 0;\nasync function sha512(source) {\n if (typeof source === 'string') {\n return Buffer.from(await crypto.subtle.digest(\"SHA-512\", Buffer.from(source, 'utf-8')));\n }\n return Buffer.from(await crypto.subtle.digest(\"SHA-512\", source));\n}\nexports.sha512 = sha512;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha512 = exports.sha256 = exports.pbkdf2_sha512 = exports.hmac_sha512 = exports.getSecureRandomWords = exports.getSecureRandomBytes = void 0;\nvar getSecureRandom_1 = require(\"./browser/getSecureRandom\");\nObject.defineProperty(exports, \"getSecureRandomBytes\", { enumerable: true, get: function () { return getSecureRandom_1.getSecureRandomBytes; } });\nObject.defineProperty(exports, \"getSecureRandomWords\", { enumerable: true, get: function () { return getSecureRandom_1.getSecureRandomWords; } });\nvar hmac_sha512_1 = require(\"./browser/hmac_sha512\");\nObject.defineProperty(exports, \"hmac_sha512\", { enumerable: true, get: function () { return hmac_sha512_1.hmac_sha512; } });\nvar pbkdf2_sha512_1 = require(\"./browser/pbkdf2_sha512\");\nObject.defineProperty(exports, \"pbkdf2_sha512\", { enumerable: true, get: function () { return pbkdf2_sha512_1.pbkdf2_sha512; } });\nvar sha256_1 = require(\"./browser/sha256\");\nObject.defineProperty(exports, \"sha256\", { enumerable: true, get: function () { return sha256_1.sha256; } });\nvar sha512_1 = require(\"./browser/sha512\");\nObject.defineProperty(exports, \"sha512\", { enumerable: true, get: function () { return sha512_1.sha512; } });\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha256 = exports.sha256_fallback = exports.sha256_sync = void 0;\nconst jssha_1 = __importDefault(require(\"jssha\"));\nconst crypto_primitives_1 = require(\"@ton/crypto-primitives\");\nfunction sha256_sync(source) {\n let src;\n if (typeof source === 'string') {\n src = Buffer.from(source, 'utf-8').toString('hex');\n }\n else {\n src = source.toString('hex');\n }\n let hasher = new jssha_1.default('SHA-256', 'HEX');\n hasher.update(src);\n let res = hasher.getHash('HEX');\n return Buffer.from(res, 'hex');\n}\nexports.sha256_sync = sha256_sync;\nasync function sha256_fallback(source) {\n return sha256_sync(source);\n}\nexports.sha256_fallback = sha256_fallback;\nfunction sha256(source) {\n return (0, crypto_primitives_1.sha256)(source);\n}\nexports.sha256 = sha256;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha512 = exports.sha512_fallback = exports.sha512_sync = void 0;\nconst jssha_1 = __importDefault(require(\"jssha\"));\nconst crypto_primitives_1 = require(\"@ton/crypto-primitives\");\nfunction sha512_sync(source) {\n let src;\n if (typeof source === 'string') {\n src = Buffer.from(source, 'utf-8').toString('hex');\n }\n else {\n src = source.toString('hex');\n }\n let hasher = new jssha_1.default('SHA-512', 'HEX');\n hasher.update(src);\n let res = hasher.getHash('HEX');\n return Buffer.from(res, 'hex');\n}\nexports.sha512_sync = sha512_sync;\nasync function sha512_fallback(source) {\n return sha512_sync(source);\n}\nexports.sha512_fallback = sha512_fallback;\nasync function sha512(source) {\n return (0, crypto_primitives_1.sha512)(source);\n}\nexports.sha512 = sha512;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pbkdf2_sha512 = void 0;\nconst crypto_primitives_1 = require(\"@ton/crypto-primitives\");\nfunction pbkdf2_sha512(key, salt, iterations, keyLen) {\n return (0, crypto_primitives_1.pbkdf2_sha512)(key, salt, iterations, keyLen);\n}\nexports.pbkdf2_sha512 = pbkdf2_sha512;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hmac_sha512 = exports.hmac_sha512_fallback = void 0;\nconst jssha_1 = __importDefault(require(\"jssha\"));\nconst crypto_primitives_1 = require(\"@ton/crypto-primitives\");\nasync function hmac_sha512_fallback(key, data) {\n let keyBuffer = typeof key === 'string' ? Buffer.from(key, 'utf-8') : key;\n let dataBuffer = typeof data === 'string' ? Buffer.from(data, 'utf-8') : data;\n const shaObj = new jssha_1.default(\"SHA-512\", \"HEX\", {\n hmacKey: { value: keyBuffer.toString('hex'), format: \"HEX\" },\n });\n shaObj.update(dataBuffer.toString('hex'));\n const hmac = shaObj.getHash(\"HEX\");\n return Buffer.from(hmac, 'hex');\n}\nexports.hmac_sha512_fallback = hmac_sha512_fallback;\nfunction hmac_sha512(key, data) {\n return (0, crypto_primitives_1.hmac_sha512)(key, data);\n}\nexports.hmac_sha512 = hmac_sha512;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSecureRandomNumber = exports.getSecureRandomWords = exports.getSecureRandomBytes = void 0;\nconst crypto_primitives_1 = require(\"@ton/crypto-primitives\");\nasync function getSecureRandomBytes(size) {\n return (0, crypto_primitives_1.getSecureRandomBytes)(size);\n}\nexports.getSecureRandomBytes = getSecureRandomBytes;\nasync function getSecureRandomWords(size) {\n return getSecureRandomWords(size);\n}\nexports.getSecureRandomWords = getSecureRandomWords;\nasync function getSecureRandomNumber(min, max) {\n let range = max - min;\n var bitsNeeded = Math.ceil(Math.log2(range));\n if (bitsNeeded > 53) {\n throw new Error('Range is too large');\n }\n var bytesNeeded = Math.ceil(bitsNeeded / 8);\n var mask = Math.pow(2, bitsNeeded) - 1;\n while (true) {\n let res = await getSecureRandomBytes(bitsNeeded);\n let power = (bytesNeeded - 1) * 8;\n let numberValue = 0;\n for (var i = 0; i < bytesNeeded; i++) {\n numberValue += res[i] * Math.pow(2, power);\n power -= 8;\n }\n numberValue = numberValue & mask; // Truncate\n if (numberValue >= range) {\n continue;\n }\n return min + numberValue;\n }\n}\nexports.getSecureRandomNumber = getSecureRandomNumber;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wordlist = void 0;\n// Source https://www.eff.org/dice\nexports.wordlist = [\n 'abacus',\n 'abdomen',\n 'abdominal',\n 'abide',\n 'abiding',\n 'ability',\n 'ablaze',\n 'able',\n 'abnormal',\n 'abrasion',\n 'abrasive',\n 'abreast',\n 'abridge',\n 'abroad',\n 'abruptly',\n 'absence',\n 'absentee',\n 'absently',\n 'absinthe',\n 'absolute',\n 'absolve',\n 'abstain',\n 'abstract',\n 'absurd',\n 'accent',\n 'acclaim',\n 'acclimate',\n 'accompany',\n 'account',\n 'accuracy',\n 'accurate',\n 'accustom',\n 'acetone',\n 'achiness',\n 'aching',\n 'acid',\n 'acorn',\n 'acquaint',\n 'acquire',\n 'acre',\n 'acrobat',\n 'acronym',\n 'acting',\n 'action',\n 'activate',\n 'activator',\n 'active',\n 'activism',\n 'activist',\n 'activity',\n 'actress',\n 'acts',\n 'acutely',\n 'acuteness',\n 'aeration',\n 'aerobics',\n 'aerosol',\n 'aerospace',\n 'afar',\n 'affair',\n 'affected',\n 'affecting',\n 'affection',\n 'affidavit',\n 'affiliate',\n 'affirm',\n 'affix',\n 'afflicted',\n 'affluent',\n 'afford',\n 'affront',\n 'aflame',\n 'afloat',\n 'aflutter',\n 'afoot',\n 'afraid',\n 'afterglow',\n 'afterlife',\n 'aftermath',\n 'aftermost',\n 'afternoon',\n 'aged',\n 'ageless',\n 'agency',\n 'agenda',\n 'agent',\n 'aggregate',\n 'aghast',\n 'agile',\n 'agility',\n 'aging',\n 'agnostic',\n 'agonize',\n 'agonizing',\n 'agony',\n 'agreeable',\n 'agreeably',\n 'agreed',\n 'agreeing',\n 'agreement',\n 'aground',\n 'ahead',\n 'ahoy',\n 'aide',\n 'aids',\n 'aim',\n 'ajar',\n 'alabaster',\n 'alarm',\n 'albatross',\n 'album',\n 'alfalfa',\n 'algebra',\n 'algorithm',\n 'alias',\n 'alibi',\n 'alienable',\n 'alienate',\n 'aliens',\n 'alike',\n 'alive',\n 'alkaline',\n 'alkalize',\n 'almanac',\n 'almighty',\n 'almost',\n 'aloe',\n 'aloft',\n 'aloha',\n 'alone',\n 'alongside',\n 'aloof',\n 'alphabet',\n 'alright',\n 'although',\n 'altitude',\n 'alto',\n 'aluminum',\n 'alumni',\n 'always',\n 'amaretto',\n 'amaze',\n 'amazingly',\n 'amber',\n 'ambiance',\n 'ambiguity',\n 'ambiguous',\n 'ambition',\n 'ambitious',\n 'ambulance',\n 'ambush',\n 'amendable',\n 'amendment',\n 'amends',\n 'amenity',\n 'amiable',\n 'amicably',\n 'amid',\n 'amigo',\n 'amino',\n 'amiss',\n 'ammonia',\n 'ammonium',\n 'amnesty',\n 'amniotic',\n 'among',\n 'amount',\n 'amperage',\n 'ample',\n 'amplifier',\n 'amplify',\n 'amply',\n 'amuck',\n 'amulet',\n 'amusable',\n 'amused',\n 'amusement',\n 'amuser',\n 'amusing',\n 'anaconda',\n 'anaerobic',\n 'anagram',\n 'anatomist',\n 'anatomy',\n 'anchor',\n 'anchovy',\n 'ancient',\n 'android',\n 'anemia',\n 'anemic',\n 'aneurism',\n 'anew',\n 'angelfish',\n 'angelic',\n 'anger',\n 'angled',\n 'angler',\n 'angles',\n 'angling',\n 'angrily',\n 'angriness',\n 'anguished',\n 'angular',\n 'animal',\n 'animate',\n 'animating',\n 'animation',\n 'animator',\n 'anime',\n 'animosity',\n 'ankle',\n 'annex',\n 'annotate',\n 'announcer',\n 'annoying',\n 'annually',\n 'annuity',\n 'anointer',\n 'another',\n 'answering',\n 'antacid',\n 'antarctic',\n 'anteater',\n 'antelope',\n 'antennae',\n 'anthem',\n 'anthill',\n 'anthology',\n 'antibody',\n 'antics',\n 'antidote',\n 'antihero',\n 'antiquely',\n 'antiques',\n 'antiquity',\n 'antirust',\n 'antitoxic',\n 'antitrust',\n 'antiviral',\n 'antivirus',\n 'antler',\n 'antonym',\n 'antsy',\n 'anvil',\n 'anybody',\n 'anyhow',\n 'anymore',\n 'anyone',\n 'anyplace',\n 'anything',\n 'anytime',\n 'anyway',\n 'anywhere',\n 'aorta',\n 'apache',\n 'apostle',\n 'appealing',\n 'appear',\n 'appease',\n 'appeasing',\n 'appendage',\n 'appendix',\n 'appetite',\n 'appetizer',\n 'applaud',\n 'applause',\n 'apple',\n 'appliance',\n 'applicant',\n 'applied',\n 'apply',\n 'appointee',\n 'appraisal',\n 'appraiser',\n 'apprehend',\n 'approach',\n 'approval',\n 'approve',\n 'apricot',\n 'april',\n 'apron',\n 'aptitude',\n 'aptly',\n 'aqua',\n 'aqueduct',\n 'arbitrary',\n 'arbitrate',\n 'ardently',\n 'area',\n 'arena',\n 'arguable',\n 'arguably',\n 'argue',\n 'arise',\n 'armadillo',\n 'armband',\n 'armchair',\n 'armed',\n 'armful',\n 'armhole',\n 'arming',\n 'armless',\n 'armoire',\n 'armored',\n 'armory',\n 'armrest',\n 'army',\n 'aroma',\n 'arose',\n 'around',\n 'arousal',\n 'arrange',\n 'array',\n 'arrest',\n 'arrival',\n 'arrive',\n 'arrogance',\n 'arrogant',\n 'arson',\n 'art',\n 'ascend',\n 'ascension',\n 'ascent',\n 'ascertain',\n 'ashamed',\n 'ashen',\n 'ashes',\n 'ashy',\n 'aside',\n 'askew',\n 'asleep',\n 'asparagus',\n 'aspect',\n 'aspirate',\n 'aspire',\n 'aspirin',\n 'astonish',\n 'astound',\n 'astride',\n 'astrology',\n 'astronaut',\n 'astronomy',\n 'astute',\n 'atlantic',\n 'atlas',\n 'atom',\n 'atonable',\n 'atop',\n 'atrium',\n 'atrocious',\n 'atrophy',\n 'attach',\n 'attain',\n 'attempt',\n 'attendant',\n 'attendee',\n 'attention',\n 'attentive',\n 'attest',\n 'attic',\n 'attire',\n 'attitude',\n 'attractor',\n 'attribute',\n 'atypical',\n 'auction',\n 'audacious',\n 'audacity',\n 'audible',\n 'audibly',\n 'audience',\n 'audio',\n 'audition',\n 'augmented',\n 'august',\n 'authentic',\n 'author',\n 'autism',\n 'autistic',\n 'autograph',\n 'automaker',\n 'automated',\n 'automatic',\n 'autopilot',\n 'available',\n 'avalanche',\n 'avatar',\n 'avenge',\n 'avenging',\n 'avenue',\n 'average',\n 'aversion',\n 'avert',\n 'aviation',\n 'aviator',\n 'avid',\n 'avoid',\n 'await',\n 'awaken',\n 'award',\n 'aware',\n 'awhile',\n 'awkward',\n 'awning',\n 'awoke',\n 'awry',\n 'axis',\n 'babble',\n 'babbling',\n 'babied',\n 'baboon',\n 'backache',\n 'backboard',\n 'backboned',\n 'backdrop',\n 'backed',\n 'backer',\n 'backfield',\n 'backfire',\n 'backhand',\n 'backing',\n 'backlands',\n 'backlash',\n 'backless',\n 'backlight',\n 'backlit',\n 'backlog',\n 'backpack',\n 'backpedal',\n 'backrest',\n 'backroom',\n 'backshift',\n 'backside',\n 'backslid',\n 'backspace',\n 'backspin',\n 'backstab',\n 'backstage',\n 'backtalk',\n 'backtrack',\n 'backup',\n 'backward',\n 'backwash',\n 'backwater',\n 'backyard',\n 'bacon',\n 'bacteria',\n 'bacterium',\n 'badass',\n 'badge',\n 'badland',\n 'badly',\n 'badness',\n 'baffle',\n 'baffling',\n 'bagel',\n 'bagful',\n 'baggage',\n 'bagged',\n 'baggie',\n 'bagginess',\n 'bagging',\n 'baggy',\n 'bagpipe',\n 'baguette',\n 'baked',\n 'bakery',\n 'bakeshop',\n 'baking',\n 'balance',\n 'balancing',\n 'balcony',\n 'balmy',\n 'balsamic',\n 'bamboo',\n 'banana',\n 'banish',\n 'banister',\n 'banjo',\n 'bankable',\n 'bankbook',\n 'banked',\n 'banker',\n 'banking',\n 'banknote',\n 'bankroll',\n 'banner',\n 'bannister',\n 'banshee',\n 'banter',\n 'barbecue',\n 'barbed',\n 'barbell',\n 'barber',\n 'barcode',\n 'barge',\n 'bargraph',\n 'barista',\n 'baritone',\n 'barley',\n 'barmaid',\n 'barman',\n 'barn',\n 'barometer',\n 'barrack',\n 'barracuda',\n 'barrel',\n 'barrette',\n 'barricade',\n 'barrier',\n 'barstool',\n 'bartender',\n 'barterer',\n 'bash',\n 'basically',\n 'basics',\n 'basil',\n 'basin',\n 'basis',\n 'basket',\n 'batboy',\n 'batch',\n 'bath',\n 'baton',\n 'bats',\n 'battalion',\n 'battered',\n 'battering',\n 'battery',\n 'batting',\n 'battle',\n 'bauble',\n 'bazooka',\n 'blabber',\n 'bladder',\n 'blade',\n 'blah',\n 'blame',\n 'blaming',\n 'blanching',\n 'blandness',\n 'blank',\n 'blaspheme',\n 'blasphemy',\n 'blast',\n 'blatancy',\n 'blatantly',\n 'blazer',\n 'blazing',\n 'bleach',\n 'bleak',\n 'bleep',\n 'blemish',\n 'blend',\n 'bless',\n 'blighted',\n 'blimp',\n 'bling',\n 'blinked',\n 'blinker',\n 'blinking',\n 'blinks',\n 'blip',\n 'blissful',\n 'blitz',\n 'blizzard',\n 'bloated',\n 'bloating',\n 'blob',\n 'blog',\n 'bloomers',\n 'blooming',\n 'blooper',\n 'blot',\n 'blouse',\n 'blubber',\n 'bluff',\n 'bluish',\n 'blunderer',\n 'blunt',\n 'blurb',\n 'blurred',\n 'blurry',\n 'blurt',\n 'blush',\n 'blustery',\n 'boaster',\n 'boastful',\n 'boasting',\n 'boat',\n 'bobbed',\n 'bobbing',\n 'bobble',\n 'bobcat',\n 'bobsled',\n 'bobtail',\n 'bodacious',\n 'body',\n 'bogged',\n 'boggle',\n 'bogus',\n 'boil',\n 'bok',\n 'bolster',\n 'bolt',\n 'bonanza',\n 'bonded',\n 'bonding',\n 'bondless',\n 'boned',\n 'bonehead',\n 'boneless',\n 'bonelike',\n 'boney',\n 'bonfire',\n 'bonnet',\n 'bonsai',\n 'bonus',\n 'bony',\n 'boogeyman',\n 'boogieman',\n 'book',\n 'boondocks',\n 'booted',\n 'booth',\n 'bootie',\n 'booting',\n 'bootlace',\n 'bootleg',\n 'boots',\n 'boozy',\n 'borax',\n 'boring',\n 'borough',\n 'borrower',\n 'borrowing',\n 'boss',\n 'botanical',\n 'botanist',\n 'botany',\n 'botch',\n 'both',\n 'bottle',\n 'bottling',\n 'bottom',\n 'bounce',\n 'bouncing',\n 'bouncy',\n 'bounding',\n 'boundless',\n 'bountiful',\n 'bovine',\n 'boxcar',\n 'boxer',\n 'boxing',\n 'boxlike',\n 'boxy',\n 'breach',\n 'breath',\n 'breeches',\n 'breeching',\n 'breeder',\n 'breeding',\n 'breeze',\n 'breezy',\n 'brethren',\n 'brewery',\n 'brewing',\n 'briar',\n 'bribe',\n 'brick',\n 'bride',\n 'bridged',\n 'brigade',\n 'bright',\n 'brilliant',\n 'brim',\n 'bring',\n 'brink',\n 'brisket',\n 'briskly',\n 'briskness',\n 'bristle',\n 'brittle',\n 'broadband',\n 'broadcast',\n 'broaden',\n 'broadly',\n 'broadness',\n 'broadside',\n 'broadways',\n 'broiler',\n 'broiling',\n 'broken',\n 'broker',\n 'bronchial',\n 'bronco',\n 'bronze',\n 'bronzing',\n 'brook',\n 'broom',\n 'brought',\n 'browbeat',\n 'brownnose',\n 'browse',\n 'browsing',\n 'bruising',\n 'brunch',\n 'brunette',\n 'brunt',\n 'brush',\n 'brussels',\n 'brute',\n 'brutishly',\n 'bubble',\n 'bubbling',\n 'bubbly',\n 'buccaneer',\n 'bucked',\n 'bucket',\n 'buckle',\n 'buckshot',\n 'buckskin',\n 'bucktooth',\n 'buckwheat',\n 'buddhism',\n 'buddhist',\n 'budding',\n 'buddy',\n 'budget',\n 'buffalo',\n 'buffed',\n 'buffer',\n 'buffing',\n 'buffoon',\n 'buggy',\n 'bulb',\n 'bulge',\n 'bulginess',\n 'bulgur',\n 'bulk',\n 'bulldog',\n 'bulldozer',\n 'bullfight',\n 'bullfrog',\n 'bullhorn',\n 'bullion',\n 'bullish',\n 'bullpen',\n 'bullring',\n 'bullseye',\n 'bullwhip',\n 'bully',\n 'bunch',\n 'bundle',\n 'bungee',\n 'bunion',\n 'bunkbed',\n 'bunkhouse',\n 'bunkmate',\n 'bunny',\n 'bunt',\n 'busboy',\n 'bush',\n 'busily',\n 'busload',\n 'bust',\n 'busybody',\n 'buzz',\n 'cabana',\n 'cabbage',\n 'cabbie',\n 'cabdriver',\n 'cable',\n 'caboose',\n 'cache',\n 'cackle',\n 'cacti',\n 'cactus',\n 'caddie',\n 'caddy',\n 'cadet',\n 'cadillac',\n 'cadmium',\n 'cage',\n 'cahoots',\n 'cake',\n 'calamari',\n 'calamity',\n 'calcium',\n 'calculate',\n 'calculus',\n 'caliber',\n 'calibrate',\n 'calm',\n 'caloric',\n 'calorie',\n 'calzone',\n 'camcorder',\n 'cameo',\n 'camera',\n 'camisole',\n 'camper',\n 'campfire',\n 'camping',\n 'campsite',\n 'campus',\n 'canal',\n 'canary',\n 'cancel',\n 'candied',\n 'candle',\n 'candy',\n 'cane',\n 'canine',\n 'canister',\n 'cannabis',\n 'canned',\n 'canning',\n 'cannon',\n 'cannot',\n 'canola',\n 'canon',\n 'canopener',\n 'canopy',\n 'canteen',\n 'canyon',\n 'capable',\n 'capably',\n 'capacity',\n 'cape',\n 'capillary',\n 'capital',\n 'capitol',\n 'capped',\n 'capricorn',\n 'capsize',\n 'capsule',\n 'caption',\n 'captivate',\n 'captive',\n 'captivity',\n 'capture',\n 'caramel',\n 'carat',\n 'caravan',\n 'carbon',\n 'cardboard',\n 'carded',\n 'cardiac',\n 'cardigan',\n 'cardinal',\n 'cardstock',\n 'carefully',\n 'caregiver',\n 'careless',\n 'caress',\n 'caretaker',\n 'cargo',\n 'caring',\n 'carless',\n 'carload',\n 'carmaker',\n 'carnage',\n 'carnation',\n 'carnival',\n 'carnivore',\n 'carol',\n 'carpenter',\n 'carpentry',\n 'carpool',\n 'carport',\n 'carried',\n 'carrot',\n 'carrousel',\n 'carry',\n 'cartel',\n 'cartload',\n 'carton',\n 'cartoon',\n 'cartridge',\n 'cartwheel',\n 'carve',\n 'carving',\n 'carwash',\n 'cascade',\n 'case',\n 'cash',\n 'casing',\n 'casino',\n 'casket',\n 'cassette',\n 'casually',\n 'casualty',\n 'catacomb',\n 'catalog',\n 'catalyst',\n 'catalyze',\n 'catapult',\n 'cataract',\n 'catatonic',\n 'catcall',\n 'catchable',\n 'catcher',\n 'catching',\n 'catchy',\n 'caterer',\n 'catering',\n 'catfight',\n 'catfish',\n 'cathedral',\n 'cathouse',\n 'catlike',\n 'catnap',\n 'catnip',\n 'catsup',\n 'cattail',\n 'cattishly',\n 'cattle',\n 'catty',\n 'catwalk',\n 'caucasian',\n 'caucus',\n 'causal',\n 'causation',\n 'cause',\n 'causing',\n 'cauterize',\n 'caution',\n 'cautious',\n 'cavalier',\n 'cavalry',\n 'caviar',\n 'cavity',\n 'cedar',\n 'celery',\n 'celestial',\n 'celibacy',\n 'celibate',\n 'celtic',\n 'cement',\n 'census',\n 'ceramics',\n 'ceremony',\n 'certainly',\n 'certainty',\n 'certified',\n 'certify',\n 'cesarean',\n 'cesspool',\n 'chafe',\n 'chaffing',\n 'chain',\n 'chair',\n 'chalice',\n 'challenge',\n 'chamber',\n 'chamomile',\n 'champion',\n 'chance',\n 'change',\n 'channel',\n 'chant',\n 'chaos',\n 'chaperone',\n 'chaplain',\n 'chapped',\n 'chaps',\n 'chapter',\n 'character',\n 'charbroil',\n 'charcoal',\n 'charger',\n 'charging',\n 'chariot',\n 'charity',\n 'charm',\n 'charred',\n 'charter',\n 'charting',\n 'chase',\n 'chasing',\n 'chaste',\n 'chastise',\n 'chastity',\n 'chatroom',\n 'chatter',\n 'chatting',\n 'chatty',\n 'cheating',\n 'cheddar',\n 'cheek',\n 'cheer',\n 'cheese',\n 'cheesy',\n 'chef',\n 'chemicals',\n 'chemist',\n 'chemo',\n 'cherisher',\n 'cherub',\n 'chess',\n 'chest',\n 'chevron',\n 'chevy',\n 'chewable',\n 'chewer',\n 'chewing',\n 'chewy',\n 'chief',\n 'chihuahua',\n 'childcare',\n 'childhood',\n 'childish',\n 'childless',\n 'childlike',\n 'chili',\n 'chill',\n 'chimp',\n 'chip',\n 'chirping',\n 'chirpy',\n 'chitchat',\n 'chivalry',\n 'chive',\n 'chloride',\n 'chlorine',\n 'choice',\n 'chokehold',\n 'choking',\n 'chomp',\n 'chooser',\n 'choosing',\n 'choosy',\n 'chop',\n 'chosen',\n 'chowder',\n 'chowtime',\n 'chrome',\n 'chubby',\n 'chuck',\n 'chug',\n 'chummy',\n 'chump',\n 'chunk',\n 'churn',\n 'chute',\n 'cider',\n 'cilantro',\n 'cinch',\n 'cinema',\n 'cinnamon',\n 'circle',\n 'circling',\n 'circular',\n 'circulate',\n 'circus',\n 'citable',\n 'citadel',\n 'citation',\n 'citizen',\n 'citric',\n 'citrus',\n 'city',\n 'civic',\n 'civil',\n 'clad',\n 'claim',\n 'clambake',\n 'clammy',\n 'clamor',\n 'clamp',\n 'clamshell',\n 'clang',\n 'clanking',\n 'clapped',\n 'clapper',\n 'clapping',\n 'clarify',\n 'clarinet',\n 'clarity',\n 'clash',\n 'clasp',\n 'class',\n 'clatter',\n 'clause',\n 'clavicle',\n 'claw',\n 'clay',\n 'clean',\n 'clear',\n 'cleat',\n 'cleaver',\n 'cleft',\n 'clench',\n 'clergyman',\n 'clerical',\n 'clerk',\n 'clever',\n 'clicker',\n 'client',\n 'climate',\n 'climatic',\n 'cling',\n 'clinic',\n 'clinking',\n 'clip',\n 'clique',\n 'cloak',\n 'clobber',\n 'clock',\n 'clone',\n 'cloning',\n 'closable',\n 'closure',\n 'clothes',\n 'clothing',\n 'cloud',\n 'clover',\n 'clubbed',\n 'clubbing',\n 'clubhouse',\n 'clump',\n 'clumsily',\n 'clumsy',\n 'clunky',\n 'clustered',\n 'clutch',\n 'clutter',\n 'coach',\n 'coagulant',\n 'coastal',\n 'coaster',\n 'coasting',\n 'coastland',\n 'coastline',\n 'coat',\n 'coauthor',\n 'cobalt',\n 'cobbler',\n 'cobweb',\n 'cocoa',\n 'coconut',\n 'cod',\n 'coeditor',\n 'coerce',\n 'coexist',\n 'coffee',\n 'cofounder',\n 'cognition',\n 'cognitive',\n 'cogwheel',\n 'coherence',\n 'coherent',\n 'cohesive',\n 'coil',\n 'coke',\n 'cola',\n 'cold',\n 'coleslaw',\n 'coliseum',\n 'collage',\n 'collapse',\n 'collar',\n 'collected',\n 'collector',\n 'collide',\n 'collie',\n 'collision',\n 'colonial',\n 'colonist',\n 'colonize',\n 'colony',\n 'colossal',\n 'colt',\n 'coma',\n 'come',\n 'comfort',\n 'comfy',\n 'comic',\n 'coming',\n 'comma',\n 'commence',\n 'commend',\n 'comment',\n 'commerce',\n 'commode',\n 'commodity',\n 'commodore',\n 'common',\n 'commotion',\n 'commute',\n 'commuting',\n 'compacted',\n 'compacter',\n 'compactly',\n 'compactor',\n 'companion',\n 'company',\n 'compare',\n 'compel',\n 'compile',\n 'comply',\n 'component',\n 'composed',\n 'composer',\n 'composite',\n 'compost',\n 'composure',\n 'compound',\n 'compress',\n 'comprised',\n 'computer',\n 'computing',\n 'comrade',\n 'concave',\n 'conceal',\n 'conceded',\n 'concept',\n 'concerned',\n 'concert',\n 'conch',\n 'concierge',\n 'concise',\n 'conclude',\n 'concrete',\n 'concur',\n 'condense',\n 'condiment',\n 'condition',\n 'condone',\n 'conducive',\n 'conductor',\n 'conduit',\n 'cone',\n 'confess',\n 'confetti',\n 'confidant',\n 'confident',\n 'confider',\n 'confiding',\n 'configure',\n 'confined',\n 'confining',\n 'confirm',\n 'conflict',\n 'conform',\n 'confound',\n 'confront',\n 'confused',\n 'confusing',\n 'confusion',\n 'congenial',\n 'congested',\n 'congrats',\n 'congress',\n 'conical',\n 'conjoined',\n 'conjure',\n 'conjuror',\n 'connected',\n 'connector',\n 'consensus',\n 'consent',\n 'console',\n 'consoling',\n 'consonant',\n 'constable',\n 'constant',\n 'constrain',\n 'constrict',\n 'construct',\n 'consult',\n 'consumer',\n 'consuming',\n 'contact',\n 'container',\n 'contempt',\n 'contend',\n 'contented',\n 'contently',\n 'contents',\n 'contest',\n 'context',\n 'contort',\n 'contour',\n 'contrite',\n 'control',\n 'contusion',\n 'convene',\n 'convent',\n 'copartner',\n 'cope',\n 'copied',\n 'copier',\n 'copilot',\n 'coping',\n 'copious',\n 'copper',\n 'copy',\n 'coral',\n 'cork',\n 'cornball',\n 'cornbread',\n 'corncob',\n 'cornea',\n 'corned',\n 'corner',\n 'cornfield',\n 'cornflake',\n 'cornhusk',\n 'cornmeal',\n 'cornstalk',\n 'corny',\n 'coronary',\n 'coroner',\n 'corporal',\n 'corporate',\n 'corral',\n 'correct',\n 'corridor',\n 'corrode',\n 'corroding',\n 'corrosive',\n 'corsage',\n 'corset',\n 'cortex',\n 'cosigner',\n 'cosmetics',\n 'cosmic',\n 'cosmos',\n 'cosponsor',\n 'cost',\n 'cottage',\n 'cotton',\n 'couch',\n 'cough',\n 'could',\n 'countable',\n 'countdown',\n 'counting',\n 'countless',\n 'country',\n 'county',\n 'courier',\n 'covenant',\n 'cover',\n 'coveted',\n 'coveting',\n 'coyness',\n 'cozily',\n 'coziness',\n 'cozy',\n 'crabbing',\n 'crabgrass',\n 'crablike',\n 'crabmeat',\n 'cradle',\n 'cradling',\n 'crafter',\n 'craftily',\n 'craftsman',\n 'craftwork',\n 'crafty',\n 'cramp',\n 'cranberry',\n 'crane',\n 'cranial',\n 'cranium',\n 'crank',\n 'crate',\n 'crave',\n 'craving',\n 'crawfish',\n 'crawlers',\n 'crawling',\n 'crayfish',\n 'crayon',\n 'crazed',\n 'crazily',\n 'craziness',\n 'crazy',\n 'creamed',\n 'creamer',\n 'creamlike',\n 'crease',\n 'creasing',\n 'creatable',\n 'create',\n 'creation',\n 'creative',\n 'creature',\n 'credible',\n 'credibly',\n 'credit',\n 'creed',\n 'creme',\n 'creole',\n 'crepe',\n 'crept',\n 'crescent',\n 'crested',\n 'cresting',\n 'crestless',\n 'crevice',\n 'crewless',\n 'crewman',\n 'crewmate',\n 'crib',\n 'cricket',\n 'cried',\n 'crier',\n 'crimp',\n 'crimson',\n 'cringe',\n 'cringing',\n 'crinkle',\n 'crinkly',\n 'crisped',\n 'crisping',\n 'crisply',\n 'crispness',\n 'crispy',\n 'criteria',\n 'critter',\n 'croak',\n 'crock',\n 'crook',\n 'croon',\n 'crop',\n 'cross',\n 'crouch',\n 'crouton',\n 'crowbar',\n 'crowd',\n 'crown',\n 'crucial',\n 'crudely',\n 'crudeness',\n 'cruelly',\n 'cruelness',\n 'cruelty',\n 'crumb',\n 'crummiest',\n 'crummy',\n 'crumpet',\n 'crumpled',\n 'cruncher',\n 'crunching',\n 'crunchy',\n 'crusader',\n 'crushable',\n 'crushed',\n 'crusher',\n 'crushing',\n 'crust',\n 'crux',\n 'crying',\n 'cryptic',\n 'crystal',\n 'cubbyhole',\n 'cube',\n 'cubical',\n 'cubicle',\n 'cucumber',\n 'cuddle',\n 'cuddly',\n 'cufflink',\n 'culinary',\n 'culminate',\n 'culpable',\n 'culprit',\n 'cultivate',\n 'cultural',\n 'culture',\n 'cupbearer',\n 'cupcake',\n 'cupid',\n 'cupped',\n 'cupping',\n 'curable',\n 'curator',\n 'curdle',\n 'cure',\n 'curfew',\n 'curing',\n 'curled',\n 'curler',\n 'curliness',\n 'curling',\n 'curly',\n 'curry',\n 'curse',\n 'cursive',\n 'cursor',\n 'curtain',\n 'curtly',\n 'curtsy',\n 'curvature',\n 'curve',\n 'curvy',\n 'cushy',\n 'cusp',\n 'cussed',\n 'custard',\n 'custodian',\n 'custody',\n 'customary',\n 'customer',\n 'customize',\n 'customs',\n 'cut',\n 'cycle',\n 'cyclic',\n 'cycling',\n 'cyclist',\n 'cylinder',\n 'cymbal',\n 'cytoplasm',\n 'cytoplast',\n 'dab',\n 'dad',\n 'daffodil',\n 'dagger',\n 'daily',\n 'daintily',\n 'dainty',\n 'dairy',\n 'daisy',\n 'dallying',\n 'dance',\n 'dancing',\n 'dandelion',\n 'dander',\n 'dandruff',\n 'dandy',\n 'danger',\n 'dangle',\n 'dangling',\n 'daredevil',\n 'dares',\n 'daringly',\n 'darkened',\n 'darkening',\n 'darkish',\n 'darkness',\n 'darkroom',\n 'darling',\n 'darn',\n 'dart',\n 'darwinism',\n 'dash',\n 'dastardly',\n 'data',\n 'datebook',\n 'dating',\n 'daughter',\n 'daunting',\n 'dawdler',\n 'dawn',\n 'daybed',\n 'daybreak',\n 'daycare',\n 'daydream',\n 'daylight',\n 'daylong',\n 'dayroom',\n 'daytime',\n 'dazzler',\n 'dazzling',\n 'deacon',\n 'deafening',\n 'deafness',\n 'dealer',\n 'dealing',\n 'dealmaker',\n 'dealt',\n 'dean',\n 'debatable',\n 'debate',\n 'debating',\n 'debit',\n 'debrief',\n 'debtless',\n 'debtor',\n 'debug',\n 'debunk',\n 'decade',\n 'decaf',\n 'decal',\n 'decathlon',\n 'decay',\n 'deceased',\n 'deceit',\n 'deceiver',\n 'deceiving',\n 'december',\n 'decency',\n 'decent',\n 'deception',\n 'deceptive',\n 'decibel',\n 'decidable',\n 'decimal',\n 'decimeter',\n 'decipher',\n 'deck',\n 'declared',\n 'decline',\n 'decode',\n 'decompose',\n 'decorated',\n 'decorator',\n 'decoy',\n 'decrease',\n 'decree',\n 'dedicate',\n 'dedicator',\n 'deduce',\n 'deduct',\n 'deed',\n 'deem',\n 'deepen',\n 'deeply',\n 'deepness',\n 'deface',\n 'defacing',\n 'defame',\n 'default',\n 'defeat',\n 'defection',\n 'defective',\n 'defendant',\n 'defender',\n 'defense',\n 'defensive',\n 'deferral',\n 'deferred',\n 'defiance',\n 'defiant',\n 'defile',\n 'defiling',\n 'define',\n 'definite',\n 'deflate',\n 'deflation',\n 'deflator',\n 'deflected',\n 'deflector',\n 'defog',\n 'deforest',\n 'defraud',\n 'defrost',\n 'deftly',\n 'defuse',\n 'defy',\n 'degraded',\n 'degrading',\n 'degrease',\n 'degree',\n 'dehydrate',\n 'deity',\n 'dejected',\n 'delay',\n 'delegate',\n 'delegator',\n 'delete',\n 'deletion',\n 'delicacy',\n 'delicate',\n 'delicious',\n 'delighted',\n 'delirious',\n 'delirium',\n 'deliverer',\n 'delivery',\n 'delouse',\n 'delta',\n 'deluge',\n 'delusion',\n 'deluxe',\n 'demanding',\n 'demeaning',\n 'demeanor',\n 'demise',\n 'democracy',\n 'democrat',\n 'demote',\n 'demotion',\n 'demystify',\n 'denatured',\n 'deniable',\n 'denial',\n 'denim',\n 'denote',\n 'dense',\n 'density',\n 'dental',\n 'dentist',\n 'denture',\n 'deny',\n 'deodorant',\n 'deodorize',\n 'departed',\n 'departure',\n 'depict',\n 'deplete',\n 'depletion',\n 'deplored',\n 'deploy',\n 'deport',\n 'depose',\n 'depraved',\n 'depravity',\n 'deprecate',\n 'depress',\n 'deprive',\n 'depth',\n 'deputize',\n 'deputy',\n 'derail',\n 'deranged',\n 'derby',\n 'derived',\n 'desecrate',\n 'deserve',\n 'deserving',\n 'designate',\n 'designed',\n 'designer',\n 'designing',\n 'deskbound',\n 'desktop',\n 'deskwork',\n 'desolate',\n 'despair',\n 'despise',\n 'despite',\n 'destiny',\n 'destitute',\n 'destruct',\n 'detached',\n 'detail',\n 'detection',\n 'detective',\n 'detector',\n 'detention',\n 'detergent',\n 'detest',\n 'detonate',\n 'detonator',\n 'detoxify',\n 'detract',\n 'deuce',\n 'devalue',\n 'deviancy',\n 'deviant',\n 'deviate',\n 'deviation',\n 'deviator',\n 'device',\n 'devious',\n 'devotedly',\n 'devotee',\n 'devotion',\n 'devourer',\n 'devouring',\n 'devoutly',\n 'dexterity',\n 'dexterous',\n 'diabetes',\n 'diabetic',\n 'diabolic',\n 'diagnoses',\n 'diagnosis',\n 'diagram',\n 'dial',\n 'diameter',\n 'diaper',\n 'diaphragm',\n 'diary',\n 'dice',\n 'dicing',\n 'dictate',\n 'dictation',\n 'dictator',\n 'difficult',\n 'diffused',\n 'diffuser',\n 'diffusion',\n 'diffusive',\n 'dig',\n 'dilation',\n 'diligence',\n 'diligent',\n 'dill',\n 'dilute',\n 'dime',\n 'diminish',\n 'dimly',\n 'dimmed',\n 'dimmer',\n 'dimness',\n 'dimple',\n 'diner',\n 'dingbat',\n 'dinghy',\n 'dinginess',\n 'dingo',\n 'dingy',\n 'dining',\n 'dinner',\n 'diocese',\n 'dioxide',\n 'diploma',\n 'dipped',\n 'dipper',\n 'dipping',\n 'directed',\n 'direction',\n 'directive',\n 'directly',\n 'directory',\n 'direness',\n 'dirtiness',\n 'disabled',\n 'disagree',\n 'disallow',\n 'disarm',\n 'disarray',\n 'disaster',\n 'disband',\n 'disbelief',\n 'disburse',\n 'discard',\n 'discern',\n 'discharge',\n 'disclose',\n 'discolor',\n 'discount',\n 'discourse',\n 'discover',\n 'discuss',\n 'disdain',\n 'disengage',\n 'disfigure',\n 'disgrace',\n 'dish',\n 'disinfect',\n 'disjoin',\n 'disk',\n 'dislike',\n 'disliking',\n 'dislocate',\n 'dislodge',\n 'disloyal',\n 'dismantle',\n 'dismay',\n 'dismiss',\n 'dismount',\n 'disobey',\n 'disorder',\n 'disown',\n 'disparate',\n 'disparity',\n 'dispatch',\n 'dispense',\n 'dispersal',\n 'dispersed',\n 'disperser',\n 'displace',\n 'display',\n 'displease',\n 'disposal',\n 'dispose',\n 'disprove',\n 'dispute',\n 'disregard',\n 'disrupt',\n 'dissuade',\n 'distance',\n 'distant',\n 'distaste',\n 'distill',\n 'distinct',\n 'distort',\n 'distract',\n 'distress',\n 'district',\n 'distrust',\n 'ditch',\n 'ditto',\n 'ditzy',\n 'dividable',\n 'divided',\n 'dividend',\n 'dividers',\n 'dividing',\n 'divinely',\n 'diving',\n 'divinity',\n 'divisible',\n 'divisibly',\n 'division',\n 'divisive',\n 'divorcee',\n 'dizziness',\n 'dizzy',\n 'doable',\n 'docile',\n 'dock',\n 'doctrine',\n 'document',\n 'dodge',\n 'dodgy',\n 'doily',\n 'doing',\n 'dole',\n 'dollar',\n 'dollhouse',\n 'dollop',\n 'dolly',\n 'dolphin',\n 'domain',\n 'domelike',\n 'domestic',\n 'dominion',\n 'dominoes',\n 'donated',\n 'donation',\n 'donator',\n 'donor',\n 'donut',\n 'doodle',\n 'doorbell',\n 'doorframe',\n 'doorknob',\n 'doorman',\n 'doormat',\n 'doornail',\n 'doorpost',\n 'doorstep',\n 'doorstop',\n 'doorway',\n 'doozy',\n 'dork',\n 'dormitory',\n 'dorsal',\n 'dosage',\n 'dose',\n 'dotted',\n 'doubling',\n 'douche',\n 'dove',\n 'down',\n 'dowry',\n 'doze',\n 'drab',\n 'dragging',\n 'dragonfly',\n 'dragonish',\n 'dragster',\n 'drainable',\n 'drainage',\n 'drained',\n 'drainer',\n 'drainpipe',\n 'dramatic',\n 'dramatize',\n 'drank',\n 'drapery',\n 'drastic',\n 'draw',\n 'dreaded',\n 'dreadful',\n 'dreadlock',\n 'dreamboat',\n 'dreamily',\n 'dreamland',\n 'dreamless',\n 'dreamlike',\n 'dreamt',\n 'dreamy',\n 'drearily',\n 'dreary',\n 'drench',\n 'dress',\n 'drew',\n 'dribble',\n 'dried',\n 'drier',\n 'drift',\n 'driller',\n 'drilling',\n 'drinkable',\n 'drinking',\n 'dripping',\n 'drippy',\n 'drivable',\n 'driven',\n 'driver',\n 'driveway',\n 'driving',\n 'drizzle',\n 'drizzly',\n 'drone',\n 'drool',\n 'droop',\n 'drop-down',\n 'dropbox',\n 'dropkick',\n 'droplet',\n 'dropout',\n 'dropper',\n 'drove',\n 'drown',\n 'drowsily',\n 'drudge',\n 'drum',\n 'dry',\n 'dubbed',\n 'dubiously',\n 'duchess',\n 'duckbill',\n 'ducking',\n 'duckling',\n 'ducktail',\n 'ducky',\n 'duct',\n 'dude',\n 'duffel',\n 'dugout',\n 'duh',\n 'duke',\n 'duller',\n 'dullness',\n 'duly',\n 'dumping',\n 'dumpling',\n 'dumpster',\n 'duo',\n 'dupe',\n 'duplex',\n 'duplicate',\n 'duplicity',\n 'durable',\n 'durably',\n 'duration',\n 'duress',\n 'during',\n 'dusk',\n 'dust',\n 'dutiful',\n 'duty',\n 'duvet',\n 'dwarf',\n 'dweeb',\n 'dwelled',\n 'dweller',\n 'dwelling',\n 'dwindle',\n 'dwindling',\n 'dynamic',\n 'dynamite',\n 'dynasty',\n 'dyslexia',\n 'dyslexic',\n 'each',\n 'eagle',\n 'earache',\n 'eardrum',\n 'earflap',\n 'earful',\n 'earlobe',\n 'early',\n 'earmark',\n 'earmuff',\n 'earphone',\n 'earpiece',\n 'earplugs',\n 'earring',\n 'earshot',\n 'earthen',\n 'earthlike',\n 'earthling',\n 'earthly',\n 'earthworm',\n 'earthy',\n 'earwig',\n 'easeful',\n 'easel',\n 'easiest',\n 'easily',\n 'easiness',\n 'easing',\n 'eastbound',\n 'eastcoast',\n 'easter',\n 'eastward',\n 'eatable',\n 'eaten',\n 'eatery',\n 'eating',\n 'eats',\n 'ebay',\n 'ebony',\n 'ebook',\n 'ecard',\n 'eccentric',\n 'echo',\n 'eclair',\n 'eclipse',\n 'ecologist',\n 'ecology',\n 'economic',\n 'economist',\n 'economy',\n 'ecosphere',\n 'ecosystem',\n 'edge',\n 'edginess',\n 'edging',\n 'edgy',\n 'edition',\n 'editor',\n 'educated',\n 'education',\n 'educator',\n 'eel',\n 'effective',\n 'effects',\n 'efficient',\n 'effort',\n 'eggbeater',\n 'egging',\n 'eggnog',\n 'eggplant',\n 'eggshell',\n 'egomaniac',\n 'egotism',\n 'egotistic',\n 'either',\n 'eject',\n 'elaborate',\n 'elastic',\n 'elated',\n 'elbow',\n 'eldercare',\n 'elderly',\n 'eldest',\n 'electable',\n 'election',\n 'elective',\n 'elephant',\n 'elevate',\n 'elevating',\n 'elevation',\n 'elevator',\n 'eleven',\n 'elf',\n 'eligible',\n 'eligibly',\n 'eliminate',\n 'elite',\n 'elitism',\n 'elixir',\n 'elk',\n 'ellipse',\n 'elliptic',\n 'elm',\n 'elongated',\n 'elope',\n 'eloquence',\n 'eloquent',\n 'elsewhere',\n 'elude',\n 'elusive',\n 'elves',\n 'email',\n 'embargo',\n 'embark',\n 'embassy',\n 'embattled',\n 'embellish',\n 'ember',\n 'embezzle',\n 'emblaze',\n 'emblem',\n 'embody',\n 'embolism',\n 'emboss',\n 'embroider',\n 'emcee',\n 'emerald',\n 'emergency',\n 'emission',\n 'emit',\n 'emote',\n 'emoticon',\n 'emotion',\n 'empathic',\n 'empathy',\n 'emperor',\n 'emphases',\n 'emphasis',\n 'emphasize',\n 'emphatic',\n 'empirical',\n 'employed',\n 'employee',\n 'employer',\n 'emporium',\n 'empower',\n 'emptier',\n 'emptiness',\n 'empty',\n 'emu',\n 'enable',\n 'enactment',\n 'enamel',\n 'enchanted',\n 'enchilada',\n 'encircle',\n 'enclose',\n 'enclosure',\n 'encode',\n 'encore',\n 'encounter',\n 'encourage',\n 'encroach',\n 'encrust',\n 'encrypt',\n 'endanger',\n 'endeared',\n 'endearing',\n 'ended',\n 'ending',\n 'endless',\n 'endnote',\n 'endocrine',\n 'endorphin',\n 'endorse',\n 'endowment',\n 'endpoint',\n 'endurable',\n 'endurance',\n 'enduring',\n 'energetic',\n 'energize',\n 'energy',\n 'enforced',\n 'enforcer',\n 'engaged',\n 'engaging',\n 'engine',\n 'engorge',\n 'engraved',\n 'engraver',\n 'engraving',\n 'engross',\n 'engulf',\n 'enhance',\n 'enigmatic',\n 'enjoyable',\n 'enjoyably',\n 'enjoyer',\n 'enjoying',\n 'enjoyment',\n 'enlarged',\n 'enlarging',\n 'enlighten',\n 'enlisted',\n 'enquirer',\n 'enrage',\n 'enrich',\n 'enroll',\n 'enslave',\n 'ensnare',\n 'ensure',\n 'entail',\n 'entangled',\n 'entering',\n 'entertain',\n 'enticing',\n 'entire',\n 'entitle',\n 'entity',\n 'entomb',\n 'entourage',\n 'entrap',\n 'entree',\n 'entrench',\n 'entrust',\n 'entryway',\n 'entwine',\n 'enunciate',\n 'envelope',\n 'enviable',\n 'enviably',\n 'envious',\n 'envision',\n 'envoy',\n 'envy',\n 'enzyme',\n 'epic',\n 'epidemic',\n 'epidermal',\n 'epidermis',\n 'epidural',\n 'epilepsy',\n 'epileptic',\n 'epilogue',\n 'epiphany',\n 'episode',\n 'equal',\n 'equate',\n 'equation',\n 'equator',\n 'equinox',\n 'equipment',\n 'equity',\n 'equivocal',\n 'eradicate',\n 'erasable',\n 'erased',\n 'eraser',\n 'erasure',\n 'ergonomic',\n 'errand',\n 'errant',\n 'erratic',\n 'error',\n 'erupt',\n 'escalate',\n 'escalator',\n 'escapable',\n 'escapade',\n 'escapist',\n 'escargot',\n 'eskimo',\n 'esophagus',\n 'espionage',\n 'espresso',\n 'esquire',\n 'essay',\n 'essence',\n 'essential',\n 'establish',\n 'estate',\n 'esteemed',\n 'estimate',\n 'estimator',\n 'estranged',\n 'estrogen',\n 'etching',\n 'eternal',\n 'eternity',\n 'ethanol',\n 'ether',\n 'ethically',\n 'ethics',\n 'euphemism',\n 'evacuate',\n 'evacuee',\n 'evade',\n 'evaluate',\n 'evaluator',\n 'evaporate',\n 'evasion',\n 'evasive',\n 'even',\n 'everglade',\n 'evergreen',\n 'everybody',\n 'everyday',\n 'everyone',\n 'evict',\n 'evidence',\n 'evident',\n 'evil',\n 'evoke',\n 'evolution',\n 'evolve',\n 'exact',\n 'exalted',\n 'example',\n 'excavate',\n 'excavator',\n 'exceeding',\n 'exception',\n 'excess',\n 'exchange',\n 'excitable',\n 'exciting',\n 'exclaim',\n 'exclude',\n 'excluding',\n 'exclusion',\n 'exclusive',\n 'excretion',\n 'excretory',\n 'excursion',\n 'excusable',\n 'excusably',\n 'excuse',\n 'exemplary',\n 'exemplify',\n 'exemption',\n 'exerciser',\n 'exert',\n 'exes',\n 'exfoliate',\n 'exhale',\n 'exhaust',\n 'exhume',\n 'exile',\n 'existing',\n 'exit',\n 'exodus',\n 'exonerate',\n 'exorcism',\n 'exorcist',\n 'expand',\n 'expanse',\n 'expansion',\n 'expansive',\n 'expectant',\n 'expedited',\n 'expediter',\n 'expel',\n 'expend',\n 'expenses',\n 'expensive',\n 'expert',\n 'expire',\n 'expiring',\n 'explain',\n 'expletive',\n 'explicit',\n 'explode',\n 'exploit',\n 'explore',\n 'exploring',\n 'exponent',\n 'exporter',\n 'exposable',\n 'expose',\n 'exposure',\n 'express',\n 'expulsion',\n 'exquisite',\n 'extended',\n 'extending',\n 'extent',\n 'extenuate',\n 'exterior',\n 'external',\n 'extinct',\n 'extortion',\n 'extradite',\n 'extras',\n 'extrovert',\n 'extrude',\n 'extruding',\n 'exuberant',\n 'fable',\n 'fabric',\n 'fabulous',\n 'facebook',\n 'facecloth',\n 'facedown',\n 'faceless',\n 'facelift',\n 'faceplate',\n 'faceted',\n 'facial',\n 'facility',\n 'facing',\n 'facsimile',\n 'faction',\n 'factoid',\n 'factor',\n 'factsheet',\n 'factual',\n 'faculty',\n 'fade',\n 'fading',\n 'failing',\n 'falcon',\n 'fall',\n 'false',\n 'falsify',\n 'fame',\n 'familiar',\n 'family',\n 'famine',\n 'famished',\n 'fanatic',\n 'fancied',\n 'fanciness',\n 'fancy',\n 'fanfare',\n 'fang',\n 'fanning',\n 'fantasize',\n 'fantastic',\n 'fantasy',\n 'fascism',\n 'fastball',\n 'faster',\n 'fasting',\n 'fastness',\n 'faucet',\n 'favorable',\n 'favorably',\n 'favored',\n 'favoring',\n 'favorite',\n 'fax',\n 'feast',\n 'federal',\n 'fedora',\n 'feeble',\n 'feed',\n 'feel',\n 'feisty',\n 'feline',\n 'felt-tip',\n 'feminine',\n 'feminism',\n 'feminist',\n 'feminize',\n 'femur',\n 'fence',\n 'fencing',\n 'fender',\n 'ferment',\n 'fernlike',\n 'ferocious',\n 'ferocity',\n 'ferret',\n 'ferris',\n 'ferry',\n 'fervor',\n 'fester',\n 'festival',\n 'festive',\n 'festivity',\n 'fetal',\n 'fetch',\n 'fever',\n 'fiber',\n 'fiction',\n 'fiddle',\n 'fiddling',\n 'fidelity',\n 'fidgeting',\n 'fidgety',\n 'fifteen',\n 'fifth',\n 'fiftieth',\n 'fifty',\n 'figment',\n 'figure',\n 'figurine',\n 'filing',\n 'filled',\n 'filler',\n 'filling',\n 'film',\n 'filter',\n 'filth',\n 'filtrate',\n 'finale',\n 'finalist',\n 'finalize',\n 'finally',\n 'finance',\n 'financial',\n 'finch',\n 'fineness',\n 'finer',\n 'finicky',\n 'finished',\n 'finisher',\n 'finishing',\n 'finite',\n 'finless',\n 'finlike',\n 'fiscally',\n 'fit',\n 'five',\n 'flaccid',\n 'flagman',\n 'flagpole',\n 'flagship',\n 'flagstick',\n 'flagstone',\n 'flail',\n 'flakily',\n 'flaky',\n 'flame',\n 'flammable',\n 'flanked',\n 'flanking',\n 'flannels',\n 'flap',\n 'flaring',\n 'flashback',\n 'flashbulb',\n 'flashcard',\n 'flashily',\n 'flashing',\n 'flashy',\n 'flask',\n 'flatbed',\n 'flatfoot',\n 'flatly',\n 'flatness',\n 'flatten',\n 'flattered',\n 'flatterer',\n 'flattery',\n 'flattop',\n 'flatware',\n 'flatworm',\n 'flavored',\n 'flavorful',\n 'flavoring',\n 'flaxseed',\n 'fled',\n 'fleshed',\n 'fleshy',\n 'flick',\n 'flier',\n 'flight',\n 'flinch',\n 'fling',\n 'flint',\n 'flip',\n 'flirt',\n 'float',\n 'flock',\n 'flogging',\n 'flop',\n 'floral',\n 'florist',\n 'floss',\n 'flounder',\n 'flyable',\n 'flyaway',\n 'flyer',\n 'flying',\n 'flyover',\n 'flypaper',\n 'foam',\n 'foe',\n 'fog',\n 'foil',\n 'folic',\n 'folk',\n 'follicle',\n 'follow',\n 'fondling',\n 'fondly',\n 'fondness',\n 'fondue',\n 'font',\n 'food',\n 'fool',\n 'footage',\n 'football',\n 'footbath',\n 'footboard',\n 'footer',\n 'footgear',\n 'foothill',\n 'foothold',\n 'footing',\n 'footless',\n 'footman',\n 'footnote',\n 'footpad',\n 'footpath',\n 'footprint',\n 'footrest',\n 'footsie',\n 'footsore',\n 'footwear',\n 'footwork',\n 'fossil',\n 'foster',\n 'founder',\n 'founding',\n 'fountain',\n 'fox',\n 'foyer',\n 'fraction',\n 'fracture',\n 'fragile',\n 'fragility',\n 'fragment',\n 'fragrance',\n 'fragrant',\n 'frail',\n 'frame',\n 'framing',\n 'frantic',\n 'fraternal',\n 'frayed',\n 'fraying',\n 'frays',\n 'freckled',\n 'freckles',\n 'freebase',\n 'freebee',\n 'freebie',\n 'freedom',\n 'freefall',\n 'freehand',\n 'freeing',\n 'freeload',\n 'freely',\n 'freemason',\n 'freeness',\n 'freestyle',\n 'freeware',\n 'freeway',\n 'freewill',\n 'freezable',\n 'freezing',\n 'freight',\n 'french',\n 'frenzied',\n 'frenzy',\n 'frequency',\n 'frequent',\n 'fresh',\n 'fretful',\n 'fretted',\n 'friction',\n 'friday',\n 'fridge',\n 'fried',\n 'friend',\n 'frighten',\n 'frightful',\n 'frigidity',\n 'frigidly',\n 'frill',\n 'fringe',\n 'frisbee',\n 'frisk',\n 'fritter',\n 'frivolous',\n 'frolic',\n 'from',\n 'front',\n 'frostbite',\n 'frosted',\n 'frostily',\n 'frosting',\n 'frostlike',\n 'frosty',\n 'froth',\n 'frown',\n 'frozen',\n 'fructose',\n 'frugality',\n 'frugally',\n 'fruit',\n 'frustrate',\n 'frying',\n 'gab',\n 'gaffe',\n 'gag',\n 'gainfully',\n 'gaining',\n 'gains',\n 'gala',\n 'gallantly',\n 'galleria',\n 'gallery',\n 'galley',\n 'gallon',\n 'gallows',\n 'gallstone',\n 'galore',\n 'galvanize',\n 'gambling',\n 'game',\n 'gaming',\n 'gamma',\n 'gander',\n 'gangly',\n 'gangrene',\n 'gangway',\n 'gap',\n 'garage',\n 'garbage',\n 'garden',\n 'gargle',\n 'garland',\n 'garlic',\n 'garment',\n 'garnet',\n 'garnish',\n 'garter',\n 'gas',\n 'gatherer',\n 'gathering',\n 'gating',\n 'gauging',\n 'gauntlet',\n 'gauze',\n 'gave',\n 'gawk',\n 'gazing',\n 'gear',\n 'gecko',\n 'geek',\n 'geiger',\n 'gem',\n 'gender',\n 'generic',\n 'generous',\n 'genetics',\n 'genre',\n 'gentile',\n 'gentleman',\n 'gently',\n 'gents',\n 'geography',\n 'geologic',\n 'geologist',\n 'geology',\n 'geometric',\n 'geometry',\n 'geranium',\n 'gerbil',\n 'geriatric',\n 'germicide',\n 'germinate',\n 'germless',\n 'germproof',\n 'gestate',\n 'gestation',\n 'gesture',\n 'getaway',\n 'getting',\n 'getup',\n 'giant',\n 'gibberish',\n 'giblet',\n 'giddily',\n 'giddiness',\n 'giddy',\n 'gift',\n 'gigabyte',\n 'gigahertz',\n 'gigantic',\n 'giggle',\n 'giggling',\n 'giggly',\n 'gigolo',\n 'gilled',\n 'gills',\n 'gimmick',\n 'girdle',\n 'giveaway',\n 'given',\n 'giver',\n 'giving',\n 'gizmo',\n 'gizzard',\n 'glacial',\n 'glacier',\n 'glade',\n 'gladiator',\n 'gladly',\n 'glamorous',\n 'glamour',\n 'glance',\n 'glancing',\n 'glandular',\n 'glare',\n 'glaring',\n 'glass',\n 'glaucoma',\n 'glazing',\n 'gleaming',\n 'gleeful',\n 'glider',\n 'gliding',\n 'glimmer',\n 'glimpse',\n 'glisten',\n 'glitch',\n 'glitter',\n 'glitzy',\n 'gloater',\n 'gloating',\n 'gloomily',\n 'gloomy',\n 'glorified',\n 'glorifier',\n 'glorify',\n 'glorious',\n 'glory',\n 'gloss',\n 'glove',\n 'glowing',\n 'glowworm',\n 'glucose',\n 'glue',\n 'gluten',\n 'glutinous',\n 'glutton',\n 'gnarly',\n 'gnat',\n 'goal',\n 'goatskin',\n 'goes',\n 'goggles',\n 'going',\n 'goldfish',\n 'goldmine',\n 'goldsmith',\n 'golf',\n 'goliath',\n 'gonad',\n 'gondola',\n 'gone',\n 'gong',\n 'good',\n 'gooey',\n 'goofball',\n 'goofiness',\n 'goofy',\n 'google',\n 'goon',\n 'gopher',\n 'gore',\n 'gorged',\n 'gorgeous',\n 'gory',\n 'gosling',\n 'gossip',\n 'gothic',\n 'gotten',\n 'gout',\n 'gown',\n 'grab',\n 'graceful',\n 'graceless',\n 'gracious',\n 'gradation',\n 'graded',\n 'grader',\n 'gradient',\n 'grading',\n 'gradually',\n 'graduate',\n 'graffiti',\n 'grafted',\n 'grafting',\n 'grain',\n 'granddad',\n 'grandkid',\n 'grandly',\n 'grandma',\n 'grandpa',\n 'grandson',\n 'granite',\n 'granny',\n 'granola',\n 'grant',\n 'granular',\n 'grape',\n 'graph',\n 'grapple',\n 'grappling',\n 'grasp',\n 'grass',\n 'gratified',\n 'gratify',\n 'grating',\n 'gratitude',\n 'gratuity',\n 'gravel',\n 'graveness',\n 'graves',\n 'graveyard',\n 'gravitate',\n 'gravity',\n 'gravy',\n 'gray',\n 'grazing',\n 'greasily',\n 'greedily',\n 'greedless',\n 'greedy',\n 'green',\n 'greeter',\n 'greeting',\n 'grew',\n 'greyhound',\n 'grid',\n 'grief',\n 'grievance',\n 'grieving',\n 'grievous',\n 'grill',\n 'grimace',\n 'grimacing',\n 'grime',\n 'griminess',\n 'grimy',\n 'grinch',\n 'grinning',\n 'grip',\n 'gristle',\n 'grit',\n 'groggily',\n 'groggy',\n 'groin',\n 'groom',\n 'groove',\n 'grooving',\n 'groovy',\n 'grope',\n 'ground',\n 'grouped',\n 'grout',\n 'grove',\n 'grower',\n 'growing',\n 'growl',\n 'grub',\n 'grudge',\n 'grudging',\n 'grueling',\n 'gruffly',\n 'grumble',\n 'grumbling',\n 'grumbly',\n 'grumpily',\n 'grunge',\n 'grunt',\n 'guacamole',\n 'guidable',\n 'guidance',\n 'guide',\n 'guiding',\n 'guileless',\n 'guise',\n 'gulf',\n 'gullible',\n 'gully',\n 'gulp',\n 'gumball',\n 'gumdrop',\n 'gumminess',\n 'gumming',\n 'gummy',\n 'gurgle',\n 'gurgling',\n 'guru',\n 'gush',\n 'gusto',\n 'gusty',\n 'gutless',\n 'guts',\n 'gutter',\n 'guy',\n 'guzzler',\n 'gyration',\n 'habitable',\n 'habitant',\n 'habitat',\n 'habitual',\n 'hacked',\n 'hacker',\n 'hacking',\n 'hacksaw',\n 'had',\n 'haggler',\n 'haiku',\n 'half',\n 'halogen',\n 'halt',\n 'halved',\n 'halves',\n 'hamburger',\n 'hamlet',\n 'hammock',\n 'hamper',\n 'hamster',\n 'hamstring',\n 'handbag',\n 'handball',\n 'handbook',\n 'handbrake',\n 'handcart',\n 'handclap',\n 'handclasp',\n 'handcraft',\n 'handcuff',\n 'handed',\n 'handful',\n 'handgrip',\n 'handgun',\n 'handheld',\n 'handiness',\n 'handiwork',\n 'handlebar',\n 'handled',\n 'handler',\n 'handling',\n 'handmade',\n 'handoff',\n 'handpick',\n 'handprint',\n 'handrail',\n 'handsaw',\n 'handset',\n 'handsfree',\n 'handshake',\n 'handstand',\n 'handwash',\n 'handwork',\n 'handwoven',\n 'handwrite',\n 'handyman',\n 'hangnail',\n 'hangout',\n 'hangover',\n 'hangup',\n 'hankering',\n 'hankie',\n 'hanky',\n 'haphazard',\n 'happening',\n 'happier',\n 'happiest',\n 'happily',\n 'happiness',\n 'happy',\n 'harbor',\n 'hardcopy',\n 'hardcore',\n 'hardcover',\n 'harddisk',\n 'hardened',\n 'hardener',\n 'hardening',\n 'hardhat',\n 'hardhead',\n 'hardiness',\n 'hardly',\n 'hardness',\n 'hardship',\n 'hardware',\n 'hardwired',\n 'hardwood',\n 'hardy',\n 'harmful',\n 'harmless',\n 'harmonica',\n 'harmonics',\n 'harmonize',\n 'harmony',\n 'harness',\n 'harpist',\n 'harsh',\n 'harvest',\n 'hash',\n 'hassle',\n 'haste',\n 'hastily',\n 'hastiness',\n 'hasty',\n 'hatbox',\n 'hatchback',\n 'hatchery',\n 'hatchet',\n 'hatching',\n 'hatchling',\n 'hate',\n 'hatless',\n 'hatred',\n 'haunt',\n 'haven',\n 'hazard',\n 'hazelnut',\n 'hazily',\n 'haziness',\n 'hazing',\n 'hazy',\n 'headache',\n 'headband',\n 'headboard',\n 'headcount',\n 'headdress',\n 'headed',\n 'header',\n 'headfirst',\n 'headgear',\n 'heading',\n 'headlamp',\n 'headless',\n 'headlock',\n 'headphone',\n 'headpiece',\n 'headrest',\n 'headroom',\n 'headscarf',\n 'headset',\n 'headsman',\n 'headstand',\n 'headstone',\n 'headway',\n 'headwear',\n 'heap',\n 'heat',\n 'heave',\n 'heavily',\n 'heaviness',\n 'heaving',\n 'hedge',\n 'hedging',\n 'heftiness',\n 'hefty',\n 'helium',\n 'helmet',\n 'helper',\n 'helpful',\n 'helping',\n 'helpless',\n 'helpline',\n 'hemlock',\n 'hemstitch',\n 'hence',\n 'henchman',\n 'henna',\n 'herald',\n 'herbal',\n 'herbicide',\n 'herbs',\n 'heritage',\n 'hermit',\n 'heroics',\n 'heroism',\n 'herring',\n 'herself',\n 'hertz',\n 'hesitancy',\n 'hesitant',\n 'hesitate',\n 'hexagon',\n 'hexagram',\n 'hubcap',\n 'huddle',\n 'huddling',\n 'huff',\n 'hug',\n 'hula',\n 'hulk',\n 'hull',\n 'human',\n 'humble',\n 'humbling',\n 'humbly',\n 'humid',\n 'humiliate',\n 'humility',\n 'humming',\n 'hummus',\n 'humongous',\n 'humorist',\n 'humorless',\n 'humorous',\n 'humpback',\n 'humped',\n 'humvee',\n 'hunchback',\n 'hundredth',\n 'hunger',\n 'hungrily',\n 'hungry',\n 'hunk',\n 'hunter',\n 'hunting',\n 'huntress',\n 'huntsman',\n 'hurdle',\n 'hurled',\n 'hurler',\n 'hurling',\n 'hurray',\n 'hurricane',\n 'hurried',\n 'hurry',\n 'hurt',\n 'husband',\n 'hush',\n 'husked',\n 'huskiness',\n 'hut',\n 'hybrid',\n 'hydrant',\n 'hydrated',\n 'hydration',\n 'hydrogen',\n 'hydroxide',\n 'hyperlink',\n 'hypertext',\n 'hyphen',\n 'hypnoses',\n 'hypnosis',\n 'hypnotic',\n 'hypnotism',\n 'hypnotist',\n 'hypnotize',\n 'hypocrisy',\n 'hypocrite',\n 'ibuprofen',\n 'ice',\n 'iciness',\n 'icing',\n 'icky',\n 'icon',\n 'icy',\n 'idealism',\n 'idealist',\n 'idealize',\n 'ideally',\n 'idealness',\n 'identical',\n 'identify',\n 'identity',\n 'ideology',\n 'idiocy',\n 'idiom',\n 'idly',\n 'igloo',\n 'ignition',\n 'ignore',\n 'iguana',\n 'illicitly',\n 'illusion',\n 'illusive',\n 'image',\n 'imaginary',\n 'imagines',\n 'imaging',\n 'imbecile',\n 'imitate',\n 'imitation',\n 'immature',\n 'immerse',\n 'immersion',\n 'imminent',\n 'immobile',\n 'immodest',\n 'immorally',\n 'immortal',\n 'immovable',\n 'immovably',\n 'immunity',\n 'immunize',\n 'impaired',\n 'impale',\n 'impart',\n 'impatient',\n 'impeach',\n 'impeding',\n 'impending',\n 'imperfect',\n 'imperial',\n 'impish',\n 'implant',\n 'implement',\n 'implicate',\n 'implicit',\n 'implode',\n 'implosion',\n 'implosive',\n 'imply',\n 'impolite',\n 'important',\n 'importer',\n 'impose',\n 'imposing',\n 'impotence',\n 'impotency',\n 'impotent',\n 'impound',\n 'imprecise',\n 'imprint',\n 'imprison',\n 'impromptu',\n 'improper',\n 'improve',\n 'improving',\n 'improvise',\n 'imprudent',\n 'impulse',\n 'impulsive',\n 'impure',\n 'impurity',\n 'iodine',\n 'iodize',\n 'ion',\n 'ipad',\n 'iphone',\n 'ipod',\n 'irate',\n 'irk',\n 'iron',\n 'irregular',\n 'irrigate',\n 'irritable',\n 'irritably',\n 'irritant',\n 'irritate',\n 'islamic',\n 'islamist',\n 'isolated',\n 'isolating',\n 'isolation',\n 'isotope',\n 'issue',\n 'issuing',\n 'italicize',\n 'italics',\n 'item',\n 'itinerary',\n 'itunes',\n 'ivory',\n 'ivy',\n 'jab',\n 'jackal',\n 'jacket',\n 'jackknife',\n 'jackpot',\n 'jailbird',\n 'jailbreak',\n 'jailer',\n 'jailhouse',\n 'jalapeno',\n 'jam',\n 'janitor',\n 'january',\n 'jargon',\n 'jarring',\n 'jasmine',\n 'jaundice',\n 'jaunt',\n 'java',\n 'jawed',\n 'jawless',\n 'jawline',\n 'jaws',\n 'jaybird',\n 'jaywalker',\n 'jazz',\n 'jeep',\n 'jeeringly',\n 'jellied',\n 'jelly',\n 'jersey',\n 'jester',\n 'jet',\n 'jiffy',\n 'jigsaw',\n 'jimmy',\n 'jingle',\n 'jingling',\n 'jinx',\n 'jitters',\n 'jittery',\n 'job',\n 'jockey',\n 'jockstrap',\n 'jogger',\n 'jogging',\n 'john',\n 'joining',\n 'jokester',\n 'jokingly',\n 'jolliness',\n 'jolly',\n 'jolt',\n 'jot',\n 'jovial',\n 'joyfully',\n 'joylessly',\n 'joyous',\n 'joyride',\n 'joystick',\n 'jubilance',\n 'jubilant',\n 'judge',\n 'judgingly',\n 'judicial',\n 'judiciary',\n 'judo',\n 'juggle',\n 'juggling',\n 'jugular',\n 'juice',\n 'juiciness',\n 'juicy',\n 'jujitsu',\n 'jukebox',\n 'july',\n 'jumble',\n 'jumbo',\n 'jump',\n 'junction',\n 'juncture',\n 'june',\n 'junior',\n 'juniper',\n 'junkie',\n 'junkman',\n 'junkyard',\n 'jurist',\n 'juror',\n 'jury',\n 'justice',\n 'justifier',\n 'justify',\n 'justly',\n 'justness',\n 'juvenile',\n 'kabob',\n 'kangaroo',\n 'karaoke',\n 'karate',\n 'karma',\n 'kebab',\n 'keenly',\n 'keenness',\n 'keep',\n 'keg',\n 'kelp',\n 'kennel',\n 'kept',\n 'kerchief',\n 'kerosene',\n 'kettle',\n 'kick',\n 'kiln',\n 'kilobyte',\n 'kilogram',\n 'kilometer',\n 'kilowatt',\n 'kilt',\n 'kimono',\n 'kindle',\n 'kindling',\n 'kindly',\n 'kindness',\n 'kindred',\n 'kinetic',\n 'kinfolk',\n 'king',\n 'kinship',\n 'kinsman',\n 'kinswoman',\n 'kissable',\n 'kisser',\n 'kissing',\n 'kitchen',\n 'kite',\n 'kitten',\n 'kitty',\n 'kiwi',\n 'kleenex',\n 'knapsack',\n 'knee',\n 'knelt',\n 'knickers',\n 'knoll',\n 'koala',\n 'kooky',\n 'kosher',\n 'krypton',\n 'kudos',\n 'kung',\n 'labored',\n 'laborer',\n 'laboring',\n 'laborious',\n 'labrador',\n 'ladder',\n 'ladies',\n 'ladle',\n 'ladybug',\n 'ladylike',\n 'lagged',\n 'lagging',\n 'lagoon',\n 'lair',\n 'lake',\n 'lance',\n 'landed',\n 'landfall',\n 'landfill',\n 'landing',\n 'landlady',\n 'landless',\n 'landline',\n 'landlord',\n 'landmark',\n 'landmass',\n 'landmine',\n 'landowner',\n 'landscape',\n 'landside',\n 'landslide',\n 'language',\n 'lankiness',\n 'lanky',\n 'lantern',\n 'lapdog',\n 'lapel',\n 'lapped',\n 'lapping',\n 'laptop',\n 'lard',\n 'large',\n 'lark',\n 'lash',\n 'lasso',\n 'last',\n 'latch',\n 'late',\n 'lather',\n 'latitude',\n 'latrine',\n 'latter',\n 'latticed',\n 'launch',\n 'launder',\n 'laundry',\n 'laurel',\n 'lavender',\n 'lavish',\n 'laxative',\n 'lazily',\n 'laziness',\n 'lazy',\n 'lecturer',\n 'left',\n 'legacy',\n 'legal',\n 'legend',\n 'legged',\n 'leggings',\n 'legible',\n 'legibly',\n 'legislate',\n 'lego',\n 'legroom',\n 'legume',\n 'legwarmer',\n 'legwork',\n 'lemon',\n 'lend',\n 'length',\n 'lens',\n 'lent',\n 'leotard',\n 'lesser',\n 'letdown',\n 'lethargic',\n 'lethargy',\n 'letter',\n 'lettuce',\n 'level',\n 'leverage',\n 'levers',\n 'levitate',\n 'levitator',\n 'liability',\n 'liable',\n 'liberty',\n 'librarian',\n 'library',\n 'licking',\n 'licorice',\n 'lid',\n 'life',\n 'lifter',\n 'lifting',\n 'liftoff',\n 'ligament',\n 'likely',\n 'likeness',\n 'likewise',\n 'liking',\n 'lilac',\n 'lilly',\n 'lily',\n 'limb',\n 'limeade',\n 'limelight',\n 'limes',\n 'limit',\n 'limping',\n 'limpness',\n 'line',\n 'lingo',\n 'linguini',\n 'linguist',\n 'lining',\n 'linked',\n 'linoleum',\n 'linseed',\n 'lint',\n 'lion',\n 'lip',\n 'liquefy',\n 'liqueur',\n 'liquid',\n 'lisp',\n 'list',\n 'litigate',\n 'litigator',\n 'litmus',\n 'litter',\n 'little',\n 'livable',\n 'lived',\n 'lively',\n 'liver',\n 'livestock',\n 'lividly',\n 'living',\n 'lizard',\n 'lubricant',\n 'lubricate',\n 'lucid',\n 'luckily',\n 'luckiness',\n 'luckless',\n 'lucrative',\n 'ludicrous',\n 'lugged',\n 'lukewarm',\n 'lullaby',\n 'lumber',\n 'luminance',\n 'luminous',\n 'lumpiness',\n 'lumping',\n 'lumpish',\n 'lunacy',\n 'lunar',\n 'lunchbox',\n 'luncheon',\n 'lunchroom',\n 'lunchtime',\n 'lung',\n 'lurch',\n 'lure',\n 'luridness',\n 'lurk',\n 'lushly',\n 'lushness',\n 'luster',\n 'lustfully',\n 'lustily',\n 'lustiness',\n 'lustrous',\n 'lusty',\n 'luxurious',\n 'luxury',\n 'lying',\n 'lyrically',\n 'lyricism',\n 'lyricist',\n 'lyrics',\n 'macarena',\n 'macaroni',\n 'macaw',\n 'mace',\n 'machine',\n 'machinist',\n 'magazine',\n 'magenta',\n 'maggot',\n 'magical',\n 'magician',\n 'magma',\n 'magnesium',\n 'magnetic',\n 'magnetism',\n 'magnetize',\n 'magnifier',\n 'magnify',\n 'magnitude',\n 'magnolia',\n 'mahogany',\n 'maimed',\n 'majestic',\n 'majesty',\n 'majorette',\n 'majority',\n 'makeover',\n 'maker',\n 'makeshift',\n 'making',\n 'malformed',\n 'malt',\n 'mama',\n 'mammal',\n 'mammary',\n 'mammogram',\n 'manager',\n 'managing',\n 'manatee',\n 'mandarin',\n 'mandate',\n 'mandatory',\n 'mandolin',\n 'manger',\n 'mangle',\n 'mango',\n 'mangy',\n 'manhandle',\n 'manhole',\n 'manhood',\n 'manhunt',\n 'manicotti',\n 'manicure',\n 'manifesto',\n 'manila',\n 'mankind',\n 'manlike',\n 'manliness',\n 'manly',\n 'manmade',\n 'manned',\n 'mannish',\n 'manor',\n 'manpower',\n 'mantis',\n 'mantra',\n 'manual',\n 'many',\n 'map',\n 'marathon',\n 'marauding',\n 'marbled',\n 'marbles',\n 'marbling',\n 'march',\n 'mardi',\n 'margarine',\n 'margarita',\n 'margin',\n 'marigold',\n 'marina',\n 'marine',\n 'marital',\n 'maritime',\n 'marlin',\n 'marmalade',\n 'maroon',\n 'married',\n 'marrow',\n 'marry',\n 'marshland',\n 'marshy',\n 'marsupial',\n 'marvelous',\n 'marxism',\n 'mascot',\n 'masculine',\n 'mashed',\n 'mashing',\n 'massager',\n 'masses',\n 'massive',\n 'mastiff',\n 'matador',\n 'matchbook',\n 'matchbox',\n 'matcher',\n 'matching',\n 'matchless',\n 'material',\n 'maternal',\n 'maternity',\n 'math',\n 'mating',\n 'matriarch',\n 'matrimony',\n 'matrix',\n 'matron',\n 'matted',\n 'matter',\n 'maturely',\n 'maturing',\n 'maturity',\n 'mauve',\n 'maverick',\n 'maximize',\n 'maximum',\n 'maybe',\n 'mayday',\n 'mayflower',\n 'moaner',\n 'moaning',\n 'mobile',\n 'mobility',\n 'mobilize',\n 'mobster',\n 'mocha',\n 'mocker',\n 'mockup',\n 'modified',\n 'modify',\n 'modular',\n 'modulator',\n 'module',\n 'moisten',\n 'moistness',\n 'moisture',\n 'molar',\n 'molasses',\n 'mold',\n 'molecular',\n 'molecule',\n 'molehill',\n 'mollusk',\n 'mom',\n 'monastery',\n 'monday',\n 'monetary',\n 'monetize',\n 'moneybags',\n 'moneyless',\n 'moneywise',\n 'mongoose',\n 'mongrel',\n 'monitor',\n 'monkhood',\n 'monogamy',\n 'monogram',\n 'monologue',\n 'monopoly',\n 'monorail',\n 'monotone',\n 'monotype',\n 'monoxide',\n 'monsieur',\n 'monsoon',\n 'monstrous',\n 'monthly',\n 'monument',\n 'moocher',\n 'moodiness',\n 'moody',\n 'mooing',\n 'moonbeam',\n 'mooned',\n 'moonlight',\n 'moonlike',\n 'moonlit',\n 'moonrise',\n 'moonscape',\n 'moonshine',\n 'moonstone',\n 'moonwalk',\n 'mop',\n 'morale',\n 'morality',\n 'morally',\n 'morbidity',\n 'morbidly',\n 'morphine',\n 'morphing',\n 'morse',\n 'mortality',\n 'mortally',\n 'mortician',\n 'mortified',\n 'mortify',\n 'mortuary',\n 'mosaic',\n 'mossy',\n 'most',\n 'mothball',\n 'mothproof',\n 'motion',\n 'motivate',\n 'motivator',\n 'motive',\n 'motocross',\n 'motor',\n 'motto',\n 'mountable',\n 'mountain',\n 'mounted',\n 'mounting',\n 'mourner',\n 'mournful',\n 'mouse',\n 'mousiness',\n 'moustache',\n 'mousy',\n 'mouth',\n 'movable',\n 'move',\n 'movie',\n 'moving',\n 'mower',\n 'mowing',\n 'much',\n 'muck',\n 'mud',\n 'mug',\n 'mulberry',\n 'mulch',\n 'mule',\n 'mulled',\n 'mullets',\n 'multiple',\n 'multiply',\n 'multitask',\n 'multitude',\n 'mumble',\n 'mumbling',\n 'mumbo',\n 'mummified',\n 'mummify',\n 'mummy',\n 'mumps',\n 'munchkin',\n 'mundane',\n 'municipal',\n 'muppet',\n 'mural',\n 'murkiness',\n 'murky',\n 'murmuring',\n 'muscular',\n 'museum',\n 'mushily',\n 'mushiness',\n 'mushroom',\n 'mushy',\n 'music',\n 'musket',\n 'muskiness',\n 'musky',\n 'mustang',\n 'mustard',\n 'muster',\n 'mustiness',\n 'musty',\n 'mutable',\n 'mutate',\n 'mutation',\n 'mute',\n 'mutilated',\n 'mutilator',\n 'mutiny',\n 'mutt',\n 'mutual',\n 'muzzle',\n 'myself',\n 'myspace',\n 'mystified',\n 'mystify',\n 'myth',\n 'nacho',\n 'nag',\n 'nail',\n 'name',\n 'naming',\n 'nanny',\n 'nanometer',\n 'nape',\n 'napkin',\n 'napped',\n 'napping',\n 'nappy',\n 'narrow',\n 'nastily',\n 'nastiness',\n 'national',\n 'native',\n 'nativity',\n 'natural',\n 'nature',\n 'naturist',\n 'nautical',\n 'navigate',\n 'navigator',\n 'navy',\n 'nearby',\n 'nearest',\n 'nearly',\n 'nearness',\n 'neatly',\n 'neatness',\n 'nebula',\n 'nebulizer',\n 'nectar',\n 'negate',\n 'negation',\n 'negative',\n 'neglector',\n 'negligee',\n 'negligent',\n 'negotiate',\n 'nemeses',\n 'nemesis',\n 'neon',\n 'nephew',\n 'nerd',\n 'nervous',\n 'nervy',\n 'nest',\n 'net',\n 'neurology',\n 'neuron',\n 'neurosis',\n 'neurotic',\n 'neuter',\n 'neutron',\n 'never',\n 'next',\n 'nibble',\n 'nickname',\n 'nicotine',\n 'niece',\n 'nifty',\n 'nimble',\n 'nimbly',\n 'nineteen',\n 'ninetieth',\n 'ninja',\n 'nintendo',\n 'ninth',\n 'nuclear',\n 'nuclei',\n 'nucleus',\n 'nugget',\n 'nullify',\n 'number',\n 'numbing',\n 'numbly',\n 'numbness',\n 'numeral',\n 'numerate',\n 'numerator',\n 'numeric',\n 'numerous',\n 'nuptials',\n 'nursery',\n 'nursing',\n 'nurture',\n 'nutcase',\n 'nutlike',\n 'nutmeg',\n 'nutrient',\n 'nutshell',\n 'nuttiness',\n 'nutty',\n 'nuzzle',\n 'nylon',\n 'oaf',\n 'oak',\n 'oasis',\n 'oat',\n 'obedience',\n 'obedient',\n 'obituary',\n 'object',\n 'obligate',\n 'obliged',\n 'oblivion',\n 'oblivious',\n 'oblong',\n 'obnoxious',\n 'oboe',\n 'obscure',\n 'obscurity',\n 'observant',\n 'observer',\n 'observing',\n 'obsessed',\n 'obsession',\n 'obsessive',\n 'obsolete',\n 'obstacle',\n 'obstinate',\n 'obstruct',\n 'obtain',\n 'obtrusive',\n 'obtuse',\n 'obvious',\n 'occultist',\n 'occupancy',\n 'occupant',\n 'occupier',\n 'occupy',\n 'ocean',\n 'ocelot',\n 'octagon',\n 'octane',\n 'october',\n 'octopus',\n 'ogle',\n 'oil',\n 'oink',\n 'ointment',\n 'okay',\n 'old',\n 'olive',\n 'olympics',\n 'omega',\n 'omen',\n 'ominous',\n 'omission',\n 'omit',\n 'omnivore',\n 'onboard',\n 'oncoming',\n 'ongoing',\n 'onion',\n 'online',\n 'onlooker',\n 'only',\n 'onscreen',\n 'onset',\n 'onshore',\n 'onslaught',\n 'onstage',\n 'onto',\n 'onward',\n 'onyx',\n 'oops',\n 'ooze',\n 'oozy',\n 'opacity',\n 'opal',\n 'open',\n 'operable',\n 'operate',\n 'operating',\n 'operation',\n 'operative',\n 'operator',\n 'opium',\n 'opossum',\n 'opponent',\n 'oppose',\n 'opposing',\n 'opposite',\n 'oppressed',\n 'oppressor',\n 'opt',\n 'opulently',\n 'osmosis',\n 'other',\n 'otter',\n 'ouch',\n 'ought',\n 'ounce',\n 'outage',\n 'outback',\n 'outbid',\n 'outboard',\n 'outbound',\n 'outbreak',\n 'outburst',\n 'outcast',\n 'outclass',\n 'outcome',\n 'outdated',\n 'outdoors',\n 'outer',\n 'outfield',\n 'outfit',\n 'outflank',\n 'outgoing',\n 'outgrow',\n 'outhouse',\n 'outing',\n 'outlast',\n 'outlet',\n 'outline',\n 'outlook',\n 'outlying',\n 'outmatch',\n 'outmost',\n 'outnumber',\n 'outplayed',\n 'outpost',\n 'outpour',\n 'output',\n 'outrage',\n 'outrank',\n 'outreach',\n 'outright',\n 'outscore',\n 'outsell',\n 'outshine',\n 'outshoot',\n 'outsider',\n 'outskirts',\n 'outsmart',\n 'outsource',\n 'outspoken',\n 'outtakes',\n 'outthink',\n 'outward',\n 'outweigh',\n 'outwit',\n 'oval',\n 'ovary',\n 'oven',\n 'overact',\n 'overall',\n 'overarch',\n 'overbid',\n 'overbill',\n 'overbite',\n 'overblown',\n 'overboard',\n 'overbook',\n 'overbuilt',\n 'overcast',\n 'overcoat',\n 'overcome',\n 'overcook',\n 'overcrowd',\n 'overdraft',\n 'overdrawn',\n 'overdress',\n 'overdrive',\n 'overdue',\n 'overeager',\n 'overeater',\n 'overexert',\n 'overfed',\n 'overfeed',\n 'overfill',\n 'overflow',\n 'overfull',\n 'overgrown',\n 'overhand',\n 'overhang',\n 'overhaul',\n 'overhead',\n 'overhear',\n 'overheat',\n 'overhung',\n 'overjoyed',\n 'overkill',\n 'overlabor',\n 'overlaid',\n 'overlap',\n 'overlay',\n 'overload',\n 'overlook',\n 'overlord',\n 'overlying',\n 'overnight',\n 'overpass',\n 'overpay',\n 'overplant',\n 'overplay',\n 'overpower',\n 'overprice',\n 'overrate',\n 'overreach',\n 'overreact',\n 'override',\n 'overripe',\n 'overrule',\n 'overrun',\n 'overshoot',\n 'overshot',\n 'oversight',\n 'oversized',\n 'oversleep',\n 'oversold',\n 'overspend',\n 'overstate',\n 'overstay',\n 'overstep',\n 'overstock',\n 'overstuff',\n 'oversweet',\n 'overtake',\n 'overthrow',\n 'overtime',\n 'overtly',\n 'overtone',\n 'overture',\n 'overturn',\n 'overuse',\n 'overvalue',\n 'overview',\n 'overwrite',\n 'owl',\n 'oxford',\n 'oxidant',\n 'oxidation',\n 'oxidize',\n 'oxidizing',\n 'oxygen',\n 'oxymoron',\n 'oyster',\n 'ozone',\n 'paced',\n 'pacemaker',\n 'pacific',\n 'pacifier',\n 'pacifism',\n 'pacifist',\n 'pacify',\n 'padded',\n 'padding',\n 'paddle',\n 'paddling',\n 'padlock',\n 'pagan',\n 'pager',\n 'paging',\n 'pajamas',\n 'palace',\n 'palatable',\n 'palm',\n 'palpable',\n 'palpitate',\n 'paltry',\n 'pampered',\n 'pamperer',\n 'pampers',\n 'pamphlet',\n 'panama',\n 'pancake',\n 'pancreas',\n 'panda',\n 'pandemic',\n 'pang',\n 'panhandle',\n 'panic',\n 'panning',\n 'panorama',\n 'panoramic',\n 'panther',\n 'pantomime',\n 'pantry',\n 'pants',\n 'pantyhose',\n 'paparazzi',\n 'papaya',\n 'paper',\n 'paprika',\n 'papyrus',\n 'parabola',\n 'parachute',\n 'parade',\n 'paradox',\n 'paragraph',\n 'parakeet',\n 'paralegal',\n 'paralyses',\n 'paralysis',\n 'paralyze',\n 'paramedic',\n 'parameter',\n 'paramount',\n 'parasail',\n 'parasite',\n 'parasitic',\n 'parcel',\n 'parched',\n 'parchment',\n 'pardon',\n 'parish',\n 'parka',\n 'parking',\n 'parkway',\n 'parlor',\n 'parmesan',\n 'parole',\n 'parrot',\n 'parsley',\n 'parsnip',\n 'partake',\n 'parted',\n 'parting',\n 'partition',\n 'partly',\n 'partner',\n 'partridge',\n 'party',\n 'passable',\n 'passably',\n 'passage',\n 'passcode',\n 'passenger',\n 'passerby',\n 'passing',\n 'passion',\n 'passive',\n 'passivism',\n 'passover',\n 'passport',\n 'password',\n 'pasta',\n 'pasted',\n 'pastel',\n 'pastime',\n 'pastor',\n 'pastrami',\n 'pasture',\n 'pasty',\n 'patchwork',\n 'patchy',\n 'paternal',\n 'paternity',\n 'path',\n 'patience',\n 'patient',\n 'patio',\n 'patriarch',\n 'patriot',\n 'patrol',\n 'patronage',\n 'patronize',\n 'pauper',\n 'pavement',\n 'paver',\n 'pavestone',\n 'pavilion',\n 'paving',\n 'pawing',\n 'payable',\n 'payback',\n 'paycheck',\n 'payday',\n 'payee',\n 'payer',\n 'paying',\n 'payment',\n 'payphone',\n 'payroll',\n 'pebble',\n 'pebbly',\n 'pecan',\n 'pectin',\n 'peculiar',\n 'peddling',\n 'pediatric',\n 'pedicure',\n 'pedigree',\n 'pedometer',\n 'pegboard',\n 'pelican',\n 'pellet',\n 'pelt',\n 'pelvis',\n 'penalize',\n 'penalty',\n 'pencil',\n 'pendant',\n 'pending',\n 'penholder',\n 'penknife',\n 'pennant',\n 'penniless',\n 'penny',\n 'penpal',\n 'pension',\n 'pentagon',\n 'pentagram',\n 'pep',\n 'perceive',\n 'percent',\n 'perch',\n 'percolate',\n 'perennial',\n 'perfected',\n 'perfectly',\n 'perfume',\n 'periscope',\n 'perish',\n 'perjurer',\n 'perjury',\n 'perkiness',\n 'perky',\n 'perm',\n 'peroxide',\n 'perpetual',\n 'perplexed',\n 'persecute',\n 'persevere',\n 'persuaded',\n 'persuader',\n 'pesky',\n 'peso',\n 'pessimism',\n 'pessimist',\n 'pester',\n 'pesticide',\n 'petal',\n 'petite',\n 'petition',\n 'petri',\n 'petroleum',\n 'petted',\n 'petticoat',\n 'pettiness',\n 'petty',\n 'petunia',\n 'phantom',\n 'phobia',\n 'phoenix',\n 'phonebook',\n 'phoney',\n 'phonics',\n 'phoniness',\n 'phony',\n 'phosphate',\n 'photo',\n 'phrase',\n 'phrasing',\n 'placard',\n 'placate',\n 'placidly',\n 'plank',\n 'planner',\n 'plant',\n 'plasma',\n 'plaster',\n 'plastic',\n 'plated',\n 'platform',\n 'plating',\n 'platinum',\n 'platonic',\n 'platter',\n 'platypus',\n 'plausible',\n 'plausibly',\n 'playable',\n 'playback',\n 'player',\n 'playful',\n 'playgroup',\n 'playhouse',\n 'playing',\n 'playlist',\n 'playmaker',\n 'playmate',\n 'playoff',\n 'playpen',\n 'playroom',\n 'playset',\n 'plaything',\n 'playtime',\n 'plaza',\n 'pleading',\n 'pleat',\n 'pledge',\n 'plentiful',\n 'plenty',\n 'plethora',\n 'plexiglas',\n 'pliable',\n 'plod',\n 'plop',\n 'plot',\n 'plow',\n 'ploy',\n 'pluck',\n 'plug',\n 'plunder',\n 'plunging',\n 'plural',\n 'plus',\n 'plutonium',\n 'plywood',\n 'poach',\n 'pod',\n 'poem',\n 'poet',\n 'pogo',\n 'pointed',\n 'pointer',\n 'pointing',\n 'pointless',\n 'pointy',\n 'poise',\n 'poison',\n 'poker',\n 'poking',\n 'polar',\n 'police',\n 'policy',\n 'polio',\n 'polish',\n 'politely',\n 'polka',\n 'polo',\n 'polyester',\n 'polygon',\n 'polygraph',\n 'polymer',\n 'poncho',\n 'pond',\n 'pony',\n 'popcorn',\n 'pope',\n 'poplar',\n 'popper',\n 'poppy',\n 'popsicle',\n 'populace',\n 'popular',\n 'populate',\n 'porcupine',\n 'pork',\n 'porous',\n 'porridge',\n 'portable',\n 'portal',\n 'portfolio',\n 'porthole',\n 'portion',\n 'portly',\n 'portside',\n 'poser',\n 'posh',\n 'posing',\n 'possible',\n 'possibly',\n 'possum',\n 'postage',\n 'postal',\n 'postbox',\n 'postcard',\n 'posted',\n 'poster',\n 'posting',\n 'postnasal',\n 'posture',\n 'postwar',\n 'pouch',\n 'pounce',\n 'pouncing',\n 'pound',\n 'pouring',\n 'pout',\n 'powdered',\n 'powdering',\n 'powdery',\n 'power',\n 'powwow',\n 'pox',\n 'praising',\n 'prance',\n 'prancing',\n 'pranker',\n 'prankish',\n 'prankster',\n 'prayer',\n 'praying',\n 'preacher',\n 'preaching',\n 'preachy',\n 'preamble',\n 'precinct',\n 'precise',\n 'precision',\n 'precook',\n 'precut',\n 'predator',\n 'predefine',\n 'predict',\n 'preface',\n 'prefix',\n 'preflight',\n 'preformed',\n 'pregame',\n 'pregnancy',\n 'pregnant',\n 'preheated',\n 'prelaunch',\n 'prelaw',\n 'prelude',\n 'premiere',\n 'premises',\n 'premium',\n 'prenatal',\n 'preoccupy',\n 'preorder',\n 'prepaid',\n 'prepay',\n 'preplan',\n 'preppy',\n 'preschool',\n 'prescribe',\n 'preseason',\n 'preset',\n 'preshow',\n 'president',\n 'presoak',\n 'press',\n 'presume',\n 'presuming',\n 'preteen',\n 'pretended',\n 'pretender',\n 'pretense',\n 'pretext',\n 'pretty',\n 'pretzel',\n 'prevail',\n 'prevalent',\n 'prevent',\n 'preview',\n 'previous',\n 'prewar',\n 'prewashed',\n 'prideful',\n 'pried',\n 'primal',\n 'primarily',\n 'primary',\n 'primate',\n 'primer',\n 'primp',\n 'princess',\n 'print',\n 'prior',\n 'prism',\n 'prison',\n 'prissy',\n 'pristine',\n 'privacy',\n 'private',\n 'privatize',\n 'prize',\n 'proactive',\n 'probable',\n 'probably',\n 'probation',\n 'probe',\n 'probing',\n 'probiotic',\n 'problem',\n 'procedure',\n 'process',\n 'proclaim',\n 'procreate',\n 'procurer',\n 'prodigal',\n 'prodigy',\n 'produce',\n 'product',\n 'profane',\n 'profanity',\n 'professed',\n 'professor',\n 'profile',\n 'profound',\n 'profusely',\n 'progeny',\n 'prognosis',\n 'program',\n 'progress',\n 'projector',\n 'prologue',\n 'prolonged',\n 'promenade',\n 'prominent',\n 'promoter',\n 'promotion',\n 'prompter',\n 'promptly',\n 'prone',\n 'prong',\n 'pronounce',\n 'pronto',\n 'proofing',\n 'proofread',\n 'proofs',\n 'propeller',\n 'properly',\n 'property',\n 'proponent',\n 'proposal',\n 'propose',\n 'props',\n 'prorate',\n 'protector',\n 'protegee',\n 'proton',\n 'prototype',\n 'protozoan',\n 'protract',\n 'protrude',\n 'proud',\n 'provable',\n 'proved',\n 'proven',\n 'provided',\n 'provider',\n 'providing',\n 'province',\n 'proving',\n 'provoke',\n 'provoking',\n 'provolone',\n 'prowess',\n 'prowler',\n 'prowling',\n 'proximity',\n 'proxy',\n 'prozac',\n 'prude',\n 'prudishly',\n 'prune',\n 'pruning',\n 'pry',\n 'psychic',\n 'public',\n 'publisher',\n 'pucker',\n 'pueblo',\n 'pug',\n 'pull',\n 'pulmonary',\n 'pulp',\n 'pulsate',\n 'pulse',\n 'pulverize',\n 'puma',\n 'pumice',\n 'pummel',\n 'punch',\n 'punctual',\n 'punctuate',\n 'punctured',\n 'pungent',\n 'punisher',\n 'punk',\n 'pupil',\n 'puppet',\n 'puppy',\n 'purchase',\n 'pureblood',\n 'purebred',\n 'purely',\n 'pureness',\n 'purgatory',\n 'purge',\n 'purging',\n 'purifier',\n 'purify',\n 'purist',\n 'puritan',\n 'purity',\n 'purple',\n 'purplish',\n 'purposely',\n 'purr',\n 'purse',\n 'pursuable',\n 'pursuant',\n 'pursuit',\n 'purveyor',\n 'pushcart',\n 'pushchair',\n 'pusher',\n 'pushiness',\n 'pushing',\n 'pushover',\n 'pushpin',\n 'pushup',\n 'pushy',\n 'putdown',\n 'putt',\n 'puzzle',\n 'puzzling',\n 'pyramid',\n 'pyromania',\n 'python',\n 'quack',\n 'quadrant',\n 'quail',\n 'quaintly',\n 'quake',\n 'quaking',\n 'qualified',\n 'qualifier',\n 'qualify',\n 'quality',\n 'qualm',\n 'quantum',\n 'quarrel',\n 'quarry',\n 'quartered',\n 'quarterly',\n 'quarters',\n 'quartet',\n 'quench',\n 'query',\n 'quicken',\n 'quickly',\n 'quickness',\n 'quicksand',\n 'quickstep',\n 'quiet',\n 'quill',\n 'quilt',\n 'quintet',\n 'quintuple',\n 'quirk',\n 'quit',\n 'quiver',\n 'quizzical',\n 'quotable',\n 'quotation',\n 'quote',\n 'rabid',\n 'race',\n 'racing',\n 'racism',\n 'rack',\n 'racoon',\n 'radar',\n 'radial',\n 'radiance',\n 'radiantly',\n 'radiated',\n 'radiation',\n 'radiator',\n 'radio',\n 'radish',\n 'raffle',\n 'raft',\n 'rage',\n 'ragged',\n 'raging',\n 'ragweed',\n 'raider',\n 'railcar',\n 'railing',\n 'railroad',\n 'railway',\n 'raisin',\n 'rake',\n 'raking',\n 'rally',\n 'ramble',\n 'rambling',\n 'ramp',\n 'ramrod',\n 'ranch',\n 'rancidity',\n 'random',\n 'ranged',\n 'ranger',\n 'ranging',\n 'ranked',\n 'ranking',\n 'ransack',\n 'ranting',\n 'rants',\n 'rare',\n 'rarity',\n 'rascal',\n 'rash',\n 'rasping',\n 'ravage',\n 'raven',\n 'ravine',\n 'raving',\n 'ravioli',\n 'ravishing',\n 'reabsorb',\n 'reach',\n 'reacquire',\n 'reaction',\n 'reactive',\n 'reactor',\n 'reaffirm',\n 'ream',\n 'reanalyze',\n 'reappear',\n 'reapply',\n 'reappoint',\n 'reapprove',\n 'rearrange',\n 'rearview',\n 'reason',\n 'reassign',\n 'reassure',\n 'reattach',\n 'reawake',\n 'rebalance',\n 'rebate',\n 'rebel',\n 'rebirth',\n 'reboot',\n 'reborn',\n 'rebound',\n 'rebuff',\n 'rebuild',\n 'rebuilt',\n 'reburial',\n 'rebuttal',\n 'recall',\n 'recant',\n 'recapture',\n 'recast',\n 'recede',\n 'recent',\n 'recess',\n 'recharger',\n 'recipient',\n 'recital',\n 'recite',\n 'reckless',\n 'reclaim',\n 'recliner',\n 'reclining',\n 'recluse',\n 'reclusive',\n 'recognize',\n 'recoil',\n 'recollect',\n 'recolor',\n 'reconcile',\n 'reconfirm',\n 'reconvene',\n 'recopy',\n 'record',\n 'recount',\n 'recoup',\n 'recovery',\n 'recreate',\n 'rectal',\n 'rectangle',\n 'rectified',\n 'rectify',\n 'recycled',\n 'recycler',\n 'recycling',\n 'reemerge',\n 'reenact',\n 'reenter',\n 'reentry',\n 'reexamine',\n 'referable',\n 'referee',\n 'reference',\n 'refill',\n 'refinance',\n 'refined',\n 'refinery',\n 'refining',\n 'refinish',\n 'reflected',\n 'reflector',\n 'reflex',\n 'reflux',\n 'refocus',\n 'refold',\n 'reforest',\n 'reformat',\n 'reformed',\n 'reformer',\n 'reformist',\n 'refract',\n 'refrain',\n 'refreeze',\n 'refresh',\n 'refried',\n 'refueling',\n 'refund',\n 'refurbish',\n 'refurnish',\n 'refusal',\n 'refuse',\n 'refusing',\n 'refutable',\n 'refute',\n 'regain',\n 'regalia',\n 'regally',\n 'reggae',\n 'regime',\n 'region',\n 'register',\n 'registrar',\n 'registry',\n 'regress',\n 'regretful',\n 'regroup',\n 'regular',\n 'regulate',\n 'regulator',\n 'rehab',\n 'reheat',\n 'rehire',\n 'rehydrate',\n 'reimburse',\n 'reissue',\n 'reiterate',\n 'rejoice',\n 'rejoicing',\n 'rejoin',\n 'rekindle',\n 'relapse',\n 'relapsing',\n 'relatable',\n 'related',\n 'relation',\n 'relative',\n 'relax',\n 'relay',\n 'relearn',\n 'release',\n 'relenting',\n 'reliable',\n 'reliably',\n 'reliance',\n 'reliant',\n 'relic',\n 'relieve',\n 'relieving',\n 'relight',\n 'relish',\n 'relive',\n 'reload',\n 'relocate',\n 'relock',\n 'reluctant',\n 'rely',\n 'remake',\n 'remark',\n 'remarry',\n 'rematch',\n 'remedial',\n 'remedy',\n 'remember',\n 'reminder',\n 'remindful',\n 'remission',\n 'remix',\n 'remnant',\n 'remodeler',\n 'remold',\n 'remorse',\n 'remote',\n 'removable',\n 'removal',\n 'removed',\n 'remover',\n 'removing',\n 'rename',\n 'renderer',\n 'rendering',\n 'rendition',\n 'renegade',\n 'renewable',\n 'renewably',\n 'renewal',\n 'renewed',\n 'renounce',\n 'renovate',\n 'renovator',\n 'rentable',\n 'rental',\n 'rented',\n 'renter',\n 'reoccupy',\n 'reoccur',\n 'reopen',\n 'reorder',\n 'repackage',\n 'repacking',\n 'repaint',\n 'repair',\n 'repave',\n 'repaying',\n 'repayment',\n 'repeal',\n 'repeated',\n 'repeater',\n 'repent',\n 'rephrase',\n 'replace',\n 'replay',\n 'replica',\n 'reply',\n 'reporter',\n 'repose',\n 'repossess',\n 'repost',\n 'repressed',\n 'reprimand',\n 'reprint',\n 'reprise',\n 'reproach',\n 'reprocess',\n 'reproduce',\n 'reprogram',\n 'reps',\n 'reptile',\n 'reptilian',\n 'repugnant',\n 'repulsion',\n 'repulsive',\n 'repurpose',\n 'reputable',\n 'reputably',\n 'request',\n 'require',\n 'requisite',\n 'reroute',\n 'rerun',\n 'resale',\n 'resample',\n 'rescuer',\n 'reseal',\n 'research',\n 'reselect',\n 'reseller',\n 'resemble',\n 'resend',\n 'resent',\n 'reset',\n 'reshape',\n 'reshoot',\n 'reshuffle',\n 'residence',\n 'residency',\n 'resident',\n 'residual',\n 'residue',\n 'resigned',\n 'resilient',\n 'resistant',\n 'resisting',\n 'resize',\n 'resolute',\n 'resolved',\n 'resonant',\n 'resonate',\n 'resort',\n 'resource',\n 'respect',\n 'resubmit',\n 'result',\n 'resume',\n 'resupply',\n 'resurface',\n 'resurrect',\n 'retail',\n 'retainer',\n 'retaining',\n 'retake',\n 'retaliate',\n 'retention',\n 'rethink',\n 'retinal',\n 'retired',\n 'retiree',\n 'retiring',\n 'retold',\n 'retool',\n 'retorted',\n 'retouch',\n 'retrace',\n 'retract',\n 'retrain',\n 'retread',\n 'retreat',\n 'retrial',\n 'retrieval',\n 'retriever',\n 'retry',\n 'return',\n 'retying',\n 'retype',\n 'reunion',\n 'reunite',\n 'reusable',\n 'reuse',\n 'reveal',\n 'reveler',\n 'revenge',\n 'revenue',\n 'reverb',\n 'revered',\n 'reverence',\n 'reverend',\n 'reversal',\n 'reverse',\n 'reversing',\n 'reversion',\n 'revert',\n 'revisable',\n 'revise',\n 'revision',\n 'revisit',\n 'revivable',\n 'revival',\n 'reviver',\n 'reviving',\n 'revocable',\n 'revoke',\n 'revolt',\n 'revolver',\n 'revolving',\n 'reward',\n 'rewash',\n 'rewind',\n 'rewire',\n 'reword',\n 'rework',\n 'rewrap',\n 'rewrite',\n 'rhyme',\n 'ribbon',\n 'ribcage',\n 'rice',\n 'riches',\n 'richly',\n 'richness',\n 'rickety',\n 'ricotta',\n 'riddance',\n 'ridden',\n 'ride',\n 'riding',\n 'rifling',\n 'rift',\n 'rigging',\n 'rigid',\n 'rigor',\n 'rimless',\n 'rimmed',\n 'rind',\n 'rink',\n 'rinse',\n 'rinsing',\n 'riot',\n 'ripcord',\n 'ripeness',\n 'ripening',\n 'ripping',\n 'ripple',\n 'rippling',\n 'riptide',\n 'rise',\n 'rising',\n 'risk',\n 'risotto',\n 'ritalin',\n 'ritzy',\n 'rival',\n 'riverbank',\n 'riverbed',\n 'riverboat',\n 'riverside',\n 'riveter',\n 'riveting',\n 'roamer',\n 'roaming',\n 'roast',\n 'robbing',\n 'robe',\n 'robin',\n 'robotics',\n 'robust',\n 'rockband',\n 'rocker',\n 'rocket',\n 'rockfish',\n 'rockiness',\n 'rocking',\n 'rocklike',\n 'rockslide',\n 'rockstar',\n 'rocky',\n 'rogue',\n 'roman',\n 'romp',\n 'rope',\n 'roping',\n 'roster',\n 'rosy',\n 'rotten',\n 'rotting',\n 'rotunda',\n 'roulette',\n 'rounding',\n 'roundish',\n 'roundness',\n 'roundup',\n 'roundworm',\n 'routine',\n 'routing',\n 'rover',\n 'roving',\n 'royal',\n 'rubbed',\n 'rubber',\n 'rubbing',\n 'rubble',\n 'rubdown',\n 'ruby',\n 'ruckus',\n 'rudder',\n 'rug',\n 'ruined',\n 'rule',\n 'rumble',\n 'rumbling',\n 'rummage',\n 'rumor',\n 'runaround',\n 'rundown',\n 'runner',\n 'running',\n 'runny',\n 'runt',\n 'runway',\n 'rupture',\n 'rural',\n 'ruse',\n 'rush',\n 'rust',\n 'rut',\n 'sabbath',\n 'sabotage',\n 'sacrament',\n 'sacred',\n 'sacrifice',\n 'sadden',\n 'saddlebag',\n 'saddled',\n 'saddling',\n 'sadly',\n 'sadness',\n 'safari',\n 'safeguard',\n 'safehouse',\n 'safely',\n 'safeness',\n 'saffron',\n 'saga',\n 'sage',\n 'sagging',\n 'saggy',\n 'said',\n 'saint',\n 'sake',\n 'salad',\n 'salami',\n 'salaried',\n 'salary',\n 'saline',\n 'salon',\n 'saloon',\n 'salsa',\n 'salt',\n 'salutary',\n 'salute',\n 'salvage',\n 'salvaging',\n 'salvation',\n 'same',\n 'sample',\n 'sampling',\n 'sanction',\n 'sanctity',\n 'sanctuary',\n 'sandal',\n 'sandbag',\n 'sandbank',\n 'sandbar',\n 'sandblast',\n 'sandbox',\n 'sanded',\n 'sandfish',\n 'sanding',\n 'sandlot',\n 'sandpaper',\n 'sandpit',\n 'sandstone',\n 'sandstorm',\n 'sandworm',\n 'sandy',\n 'sanitary',\n 'sanitizer',\n 'sank',\n 'santa',\n 'sapling',\n 'sappiness',\n 'sappy',\n 'sarcasm',\n 'sarcastic',\n 'sardine',\n 'sash',\n 'sasquatch',\n 'sassy',\n 'satchel',\n 'satiable',\n 'satin',\n 'satirical',\n 'satisfied',\n 'satisfy',\n 'saturate',\n 'saturday',\n 'sauciness',\n 'saucy',\n 'sauna',\n 'savage',\n 'savanna',\n 'saved',\n 'savings',\n 'savior',\n 'savor',\n 'saxophone',\n 'say',\n 'scabbed',\n 'scabby',\n 'scalded',\n 'scalding',\n 'scale',\n 'scaling',\n 'scallion',\n 'scallop',\n 'scalping',\n 'scam',\n 'scandal',\n 'scanner',\n 'scanning',\n 'scant',\n 'scapegoat',\n 'scarce',\n 'scarcity',\n 'scarecrow',\n 'scared',\n 'scarf',\n 'scarily',\n 'scariness',\n 'scarring',\n 'scary',\n 'scavenger',\n 'scenic',\n 'schedule',\n 'schematic',\n 'scheme',\n 'scheming',\n 'schilling',\n 'schnapps',\n 'scholar',\n 'science',\n 'scientist',\n 'scion',\n 'scoff',\n 'scolding',\n 'scone',\n 'scoop',\n 'scooter',\n 'scope',\n 'scorch',\n 'scorebook',\n 'scorecard',\n 'scored',\n 'scoreless',\n 'scorer',\n 'scoring',\n 'scorn',\n 'scorpion',\n 'scotch',\n 'scoundrel',\n 'scoured',\n 'scouring',\n 'scouting',\n 'scouts',\n 'scowling',\n 'scrabble',\n 'scraggly',\n 'scrambled',\n 'scrambler',\n 'scrap',\n 'scratch',\n 'scrawny',\n 'screen',\n 'scribble',\n 'scribe',\n 'scribing',\n 'scrimmage',\n 'script',\n 'scroll',\n 'scrooge',\n 'scrounger',\n 'scrubbed',\n 'scrubber',\n 'scruffy',\n 'scrunch',\n 'scrutiny',\n 'scuba',\n 'scuff',\n 'sculptor',\n 'sculpture',\n 'scurvy',\n 'scuttle',\n 'secluded',\n 'secluding',\n 'seclusion',\n 'second',\n 'secrecy',\n 'secret',\n 'sectional',\n 'sector',\n 'secular',\n 'securely',\n 'security',\n 'sedan',\n 'sedate',\n 'sedation',\n 'sedative',\n 'sediment',\n 'seduce',\n 'seducing',\n 'segment',\n 'seismic',\n 'seizing',\n 'seldom',\n 'selected',\n 'selection',\n 'selective',\n 'selector',\n 'self',\n 'seltzer',\n 'semantic',\n 'semester',\n 'semicolon',\n 'semifinal',\n 'seminar',\n 'semisoft',\n 'semisweet',\n 'senate',\n 'senator',\n 'send',\n 'senior',\n 'senorita',\n 'sensation',\n 'sensitive',\n 'sensitize',\n 'sensually',\n 'sensuous',\n 'sepia',\n 'september',\n 'septic',\n 'septum',\n 'sequel',\n 'sequence',\n 'sequester',\n 'series',\n 'sermon',\n 'serotonin',\n 'serpent',\n 'serrated',\n 'serve',\n 'service',\n 'serving',\n 'sesame',\n 'sessions',\n 'setback',\n 'setting',\n 'settle',\n 'settling',\n 'setup',\n 'sevenfold',\n 'seventeen',\n 'seventh',\n 'seventy',\n 'severity',\n 'shabby',\n 'shack',\n 'shaded',\n 'shadily',\n 'shadiness',\n 'shading',\n 'shadow',\n 'shady',\n 'shaft',\n 'shakable',\n 'shakily',\n 'shakiness',\n 'shaking',\n 'shaky',\n 'shale',\n 'shallot',\n 'shallow',\n 'shame',\n 'shampoo',\n 'shamrock',\n 'shank',\n 'shanty',\n 'shape',\n 'shaping',\n 'share',\n 'sharpener',\n 'sharper',\n 'sharpie',\n 'sharply',\n 'sharpness',\n 'shawl',\n 'sheath',\n 'shed',\n 'sheep',\n 'sheet',\n 'shelf',\n 'shell',\n 'shelter',\n 'shelve',\n 'shelving',\n 'sherry',\n 'shield',\n 'shifter',\n 'shifting',\n 'shiftless',\n 'shifty',\n 'shimmer',\n 'shimmy',\n 'shindig',\n 'shine',\n 'shingle',\n 'shininess',\n 'shining',\n 'shiny',\n 'ship',\n 'shirt',\n 'shivering',\n 'shock',\n 'shone',\n 'shoplift',\n 'shopper',\n 'shopping',\n 'shoptalk',\n 'shore',\n 'shortage',\n 'shortcake',\n 'shortcut',\n 'shorten',\n 'shorter',\n 'shorthand',\n 'shortlist',\n 'shortly',\n 'shortness',\n 'shorts',\n 'shortwave',\n 'shorty',\n 'shout',\n 'shove',\n 'showbiz',\n 'showcase',\n 'showdown',\n 'shower',\n 'showgirl',\n 'showing',\n 'showman',\n 'shown',\n 'showoff',\n 'showpiece',\n 'showplace',\n 'showroom',\n 'showy',\n 'shrank',\n 'shrapnel',\n 'shredder',\n 'shredding',\n 'shrewdly',\n 'shriek',\n 'shrill',\n 'shrimp',\n 'shrine',\n 'shrink',\n 'shrivel',\n 'shrouded',\n 'shrubbery',\n 'shrubs',\n 'shrug',\n 'shrunk',\n 'shucking',\n 'shudder',\n 'shuffle',\n 'shuffling',\n 'shun',\n 'shush',\n 'shut',\n 'shy',\n 'siamese',\n 'siberian',\n 'sibling',\n 'siding',\n 'sierra',\n 'siesta',\n 'sift',\n 'sighing',\n 'silenced',\n 'silencer',\n 'silent',\n 'silica',\n 'silicon',\n 'silk',\n 'silliness',\n 'silly',\n 'silo',\n 'silt',\n 'silver',\n 'similarly',\n 'simile',\n 'simmering',\n 'simple',\n 'simplify',\n 'simply',\n 'sincere',\n 'sincerity',\n 'singer',\n 'singing',\n 'single',\n 'singular',\n 'sinister',\n 'sinless',\n 'sinner',\n 'sinuous',\n 'sip',\n 'siren',\n 'sister',\n 'sitcom',\n 'sitter',\n 'sitting',\n 'situated',\n 'situation',\n 'sixfold',\n 'sixteen',\n 'sixth',\n 'sixties',\n 'sixtieth',\n 'sixtyfold',\n 'sizable',\n 'sizably',\n 'size',\n 'sizing',\n 'sizzle',\n 'sizzling',\n 'skater',\n 'skating',\n 'skedaddle',\n 'skeletal',\n 'skeleton',\n 'skeptic',\n 'sketch',\n 'skewed',\n 'skewer',\n 'skid',\n 'skied',\n 'skier',\n 'skies',\n 'skiing',\n 'skilled',\n 'skillet',\n 'skillful',\n 'skimmed',\n 'skimmer',\n 'skimming',\n 'skimpily',\n 'skincare',\n 'skinhead',\n 'skinless',\n 'skinning',\n 'skinny',\n 'skintight',\n 'skipper',\n 'skipping',\n 'skirmish',\n 'skirt',\n 'skittle',\n 'skydiver',\n 'skylight',\n 'skyline',\n 'skype',\n 'skyrocket',\n 'skyward',\n 'slab',\n 'slacked',\n 'slacker',\n 'slacking',\n 'slackness',\n 'slacks',\n 'slain',\n 'slam',\n 'slander',\n 'slang',\n 'slapping',\n 'slapstick',\n 'slashed',\n 'slashing',\n 'slate',\n 'slather',\n 'slaw',\n 'sled',\n 'sleek',\n 'sleep',\n 'sleet',\n 'sleeve',\n 'slept',\n 'sliceable',\n 'sliced',\n 'slicer',\n 'slicing',\n 'slick',\n 'slider',\n 'slideshow',\n 'sliding',\n 'slighted',\n 'slighting',\n 'slightly',\n 'slimness',\n 'slimy',\n 'slinging',\n 'slingshot',\n 'slinky',\n 'slip',\n 'slit',\n 'sliver',\n 'slobbery',\n 'slogan',\n 'sloped',\n 'sloping',\n 'sloppily',\n 'sloppy',\n 'slot',\n 'slouching',\n 'slouchy',\n 'sludge',\n 'slug',\n 'slum',\n 'slurp',\n 'slush',\n 'sly',\n 'small',\n 'smartly',\n 'smartness',\n 'smasher',\n 'smashing',\n 'smashup',\n 'smell',\n 'smelting',\n 'smile',\n 'smilingly',\n 'smirk',\n 'smite',\n 'smith',\n 'smitten',\n 'smock',\n 'smog',\n 'smoked',\n 'smokeless',\n 'smokiness',\n 'smoking',\n 'smoky',\n 'smolder',\n 'smooth',\n 'smother',\n 'smudge',\n 'smudgy',\n 'smuggler',\n 'smuggling',\n 'smugly',\n 'smugness',\n 'snack',\n 'snagged',\n 'snaking',\n 'snap',\n 'snare',\n 'snarl',\n 'snazzy',\n 'sneak',\n 'sneer',\n 'sneeze',\n 'sneezing',\n 'snide',\n 'sniff',\n 'snippet',\n 'snipping',\n 'snitch',\n 'snooper',\n 'snooze',\n 'snore',\n 'snoring',\n 'snorkel',\n 'snort',\n 'snout',\n 'snowbird',\n 'snowboard',\n 'snowbound',\n 'snowcap',\n 'snowdrift',\n 'snowdrop',\n 'snowfall',\n 'snowfield',\n 'snowflake',\n 'snowiness',\n 'snowless',\n 'snowman',\n 'snowplow',\n 'snowshoe',\n 'snowstorm',\n 'snowsuit',\n 'snowy',\n 'snub',\n 'snuff',\n 'snuggle',\n 'snugly',\n 'snugness',\n 'speak',\n 'spearfish',\n 'spearhead',\n 'spearman',\n 'spearmint',\n 'species',\n 'specimen',\n 'specked',\n 'speckled',\n 'specks',\n 'spectacle',\n 'spectator',\n 'spectrum',\n 'speculate',\n 'speech',\n 'speed',\n 'spellbind',\n 'speller',\n 'spelling',\n 'spendable',\n 'spender',\n 'spending',\n 'spent',\n 'spew',\n 'sphere',\n 'spherical',\n 'sphinx',\n 'spider',\n 'spied',\n 'spiffy',\n 'spill',\n 'spilt',\n 'spinach',\n 'spinal',\n 'spindle',\n 'spinner',\n 'spinning',\n 'spinout',\n 'spinster',\n 'spiny',\n 'spiral',\n 'spirited',\n 'spiritism',\n 'spirits',\n 'spiritual',\n 'splashed',\n 'splashing',\n 'splashy',\n 'splatter',\n 'spleen',\n 'splendid',\n 'splendor',\n 'splice',\n 'splicing',\n 'splinter',\n 'splotchy',\n 'splurge',\n 'spoilage',\n 'spoiled',\n 'spoiler',\n 'spoiling',\n 'spoils',\n 'spoken',\n 'spokesman',\n 'sponge',\n 'spongy',\n 'sponsor',\n 'spoof',\n 'spookily',\n 'spooky',\n 'spool',\n 'spoon',\n 'spore',\n 'sporting',\n 'sports',\n 'sporty',\n 'spotless',\n 'spotlight',\n 'spotted',\n 'spotter',\n 'spotting',\n 'spotty',\n 'spousal',\n 'spouse',\n 'spout',\n 'sprain',\n 'sprang',\n 'sprawl',\n 'spray',\n 'spree',\n 'sprig',\n 'spring',\n 'sprinkled',\n 'sprinkler',\n 'sprint',\n 'sprite',\n 'sprout',\n 'spruce',\n 'sprung',\n 'spry',\n 'spud',\n 'spur',\n 'sputter',\n 'spyglass',\n 'squabble',\n 'squad',\n 'squall',\n 'squander',\n 'squash',\n 'squatted',\n 'squatter',\n 'squatting',\n 'squeak',\n 'squealer',\n 'squealing',\n 'squeamish',\n 'squeegee',\n 'squeeze',\n 'squeezing',\n 'squid',\n 'squiggle',\n 'squiggly',\n 'squint',\n 'squire',\n 'squirt',\n 'squishier',\n 'squishy',\n 'stability',\n 'stabilize',\n 'stable',\n 'stack',\n 'stadium',\n 'staff',\n 'stage',\n 'staging',\n 'stagnant',\n 'stagnate',\n 'stainable',\n 'stained',\n 'staining',\n 'stainless',\n 'stalemate',\n 'staleness',\n 'stalling',\n 'stallion',\n 'stamina',\n 'stammer',\n 'stamp',\n 'stand',\n 'stank',\n 'staple',\n 'stapling',\n 'starboard',\n 'starch',\n 'stardom',\n 'stardust',\n 'starfish',\n 'stargazer',\n 'staring',\n 'stark',\n 'starless',\n 'starlet',\n 'starlight',\n 'starlit',\n 'starring',\n 'starry',\n 'starship',\n 'starter',\n 'starting',\n 'startle',\n 'startling',\n 'startup',\n 'starved',\n 'starving',\n 'stash',\n 'state',\n 'static',\n 'statistic',\n 'statue',\n 'stature',\n 'status',\n 'statute',\n 'statutory',\n 'staunch',\n 'stays',\n 'steadfast',\n 'steadier',\n 'steadily',\n 'steadying',\n 'steam',\n 'steed',\n 'steep',\n 'steerable',\n 'steering',\n 'steersman',\n 'stegosaur',\n 'stellar',\n 'stem',\n 'stench',\n 'stencil',\n 'step',\n 'stereo',\n 'sterile',\n 'sterility',\n 'sterilize',\n 'sterling',\n 'sternness',\n 'sternum',\n 'stew',\n 'stick',\n 'stiffen',\n 'stiffly',\n 'stiffness',\n 'stifle',\n 'stifling',\n 'stillness',\n 'stilt',\n 'stimulant',\n 'stimulate',\n 'stimuli',\n 'stimulus',\n 'stinger',\n 'stingily',\n 'stinging',\n 'stingray',\n 'stingy',\n 'stinking',\n 'stinky',\n 'stipend',\n 'stipulate',\n 'stir',\n 'stitch',\n 'stock',\n 'stoic',\n 'stoke',\n 'stole',\n 'stomp',\n 'stonewall',\n 'stoneware',\n 'stonework',\n 'stoning',\n 'stony',\n 'stood',\n 'stooge',\n 'stool',\n 'stoop',\n 'stoplight',\n 'stoppable',\n 'stoppage',\n 'stopped',\n 'stopper',\n 'stopping',\n 'stopwatch',\n 'storable',\n 'storage',\n 'storeroom',\n 'storewide',\n 'storm',\n 'stout',\n 'stove',\n 'stowaway',\n 'stowing',\n 'straddle',\n 'straggler',\n 'strained',\n 'strainer',\n 'straining',\n 'strangely',\n 'stranger',\n 'strangle',\n 'strategic',\n 'strategy',\n 'stratus',\n 'straw',\n 'stray',\n 'streak',\n 'stream',\n 'street',\n 'strength',\n 'strenuous',\n 'strep',\n 'stress',\n 'stretch',\n 'strewn',\n 'stricken',\n 'strict',\n 'stride',\n 'strife',\n 'strike',\n 'striking',\n 'strive',\n 'striving',\n 'strobe',\n 'strode',\n 'stroller',\n 'strongbox',\n 'strongly',\n 'strongman',\n 'struck',\n 'structure',\n 'strudel',\n 'struggle',\n 'strum',\n 'strung',\n 'strut',\n 'stubbed',\n 'stubble',\n 'stubbly',\n 'stubborn',\n 'stucco',\n 'stuck',\n 'student',\n 'studied',\n 'studio',\n 'study',\n 'stuffed',\n 'stuffing',\n 'stuffy',\n 'stumble',\n 'stumbling',\n 'stump',\n 'stung',\n 'stunned',\n 'stunner',\n 'stunning',\n 'stunt',\n 'stupor',\n 'sturdily',\n 'sturdy',\n 'styling',\n 'stylishly',\n 'stylist',\n 'stylized',\n 'stylus',\n 'suave',\n 'subarctic',\n 'subatomic',\n 'subdivide',\n 'subdued',\n 'subduing',\n 'subfloor',\n 'subgroup',\n 'subheader',\n 'subject',\n 'sublease',\n 'sublet',\n 'sublevel',\n 'sublime',\n 'submarine',\n 'submerge',\n 'submersed',\n 'submitter',\n 'subpanel',\n 'subpar',\n 'subplot',\n 'subprime',\n 'subscribe',\n 'subscript',\n 'subsector',\n 'subside',\n 'subsiding',\n 'subsidize',\n 'subsidy',\n 'subsoil',\n 'subsonic',\n 'substance',\n 'subsystem',\n 'subtext',\n 'subtitle',\n 'subtly',\n 'subtotal',\n 'subtract',\n 'subtype',\n 'suburb',\n 'subway',\n 'subwoofer',\n 'subzero',\n 'succulent',\n 'such',\n 'suction',\n 'sudden',\n 'sudoku',\n 'suds',\n 'sufferer',\n 'suffering',\n 'suffice',\n 'suffix',\n 'suffocate',\n 'suffrage',\n 'sugar',\n 'suggest',\n 'suing',\n 'suitable',\n 'suitably',\n 'suitcase',\n 'suitor',\n 'sulfate',\n 'sulfide',\n 'sulfite',\n 'sulfur',\n 'sulk',\n 'sullen',\n 'sulphate',\n 'sulphuric',\n 'sultry',\n 'superbowl',\n 'superglue',\n 'superhero',\n 'superior',\n 'superjet',\n 'superman',\n 'supermom',\n 'supernova',\n 'supervise',\n 'supper',\n 'supplier',\n 'supply',\n 'support',\n 'supremacy',\n 'supreme',\n 'surcharge',\n 'surely',\n 'sureness',\n 'surface',\n 'surfacing',\n 'surfboard',\n 'surfer',\n 'surgery',\n 'surgical',\n 'surging',\n 'surname',\n 'surpass',\n 'surplus',\n 'surprise',\n 'surreal',\n 'surrender',\n 'surrogate',\n 'surround',\n 'survey',\n 'survival',\n 'survive',\n 'surviving',\n 'survivor',\n 'sushi',\n 'suspect',\n 'suspend',\n 'suspense',\n 'sustained',\n 'sustainer',\n 'swab',\n 'swaddling',\n 'swagger',\n 'swampland',\n 'swan',\n 'swapping',\n 'swarm',\n 'sway',\n 'swear',\n 'sweat',\n 'sweep',\n 'swell',\n 'swept',\n 'swerve',\n 'swifter',\n 'swiftly',\n 'swiftness',\n 'swimmable',\n 'swimmer',\n 'swimming',\n 'swimsuit',\n 'swimwear',\n 'swinger',\n 'swinging',\n 'swipe',\n 'swirl',\n 'switch',\n 'swivel',\n 'swizzle',\n 'swooned',\n 'swoop',\n 'swoosh',\n 'swore',\n 'sworn',\n 'swung',\n 'sycamore',\n 'sympathy',\n 'symphonic',\n 'symphony',\n 'symptom',\n 'synapse',\n 'syndrome',\n 'synergy',\n 'synopses',\n 'synopsis',\n 'synthesis',\n 'synthetic',\n 'syrup',\n 'system',\n 't-shirt',\n 'tabasco',\n 'tabby',\n 'tableful',\n 'tables',\n 'tablet',\n 'tableware',\n 'tabloid',\n 'tackiness',\n 'tacking',\n 'tackle',\n 'tackling',\n 'tacky',\n 'taco',\n 'tactful',\n 'tactical',\n 'tactics',\n 'tactile',\n 'tactless',\n 'tadpole',\n 'taekwondo',\n 'tag',\n 'tainted',\n 'take',\n 'taking',\n 'talcum',\n 'talisman',\n 'tall',\n 'talon',\n 'tamale',\n 'tameness',\n 'tamer',\n 'tamper',\n 'tank',\n 'tanned',\n 'tannery',\n 'tanning',\n 'tantrum',\n 'tapeless',\n 'tapered',\n 'tapering',\n 'tapestry',\n 'tapioca',\n 'tapping',\n 'taps',\n 'tarantula',\n 'target',\n 'tarmac',\n 'tarnish',\n 'tarot',\n 'tartar',\n 'tartly',\n 'tartness',\n 'task',\n 'tassel',\n 'taste',\n 'tastiness',\n 'tasting',\n 'tasty',\n 'tattered',\n 'tattle',\n 'tattling',\n 'tattoo',\n 'taunt',\n 'tavern',\n 'thank',\n 'that',\n 'thaw',\n 'theater',\n 'theatrics',\n 'thee',\n 'theft',\n 'theme',\n 'theology',\n 'theorize',\n 'thermal',\n 'thermos',\n 'thesaurus',\n 'these',\n 'thesis',\n 'thespian',\n 'thicken',\n 'thicket',\n 'thickness',\n 'thieving',\n 'thievish',\n 'thigh',\n 'thimble',\n 'thing',\n 'think',\n 'thinly',\n 'thinner',\n 'thinness',\n 'thinning',\n 'thirstily',\n 'thirsting',\n 'thirsty',\n 'thirteen',\n 'thirty',\n 'thong',\n 'thorn',\n 'those',\n 'thousand',\n 'thrash',\n 'thread',\n 'threaten',\n 'threefold',\n 'thrift',\n 'thrill',\n 'thrive',\n 'thriving',\n 'throat',\n 'throbbing',\n 'throng',\n 'throttle',\n 'throwaway',\n 'throwback',\n 'thrower',\n 'throwing',\n 'thud',\n 'thumb',\n 'thumping',\n 'thursday',\n 'thus',\n 'thwarting',\n 'thyself',\n 'tiara',\n 'tibia',\n 'tidal',\n 'tidbit',\n 'tidiness',\n 'tidings',\n 'tidy',\n 'tiger',\n 'tighten',\n 'tightly',\n 'tightness',\n 'tightrope',\n 'tightwad',\n 'tigress',\n 'tile',\n 'tiling',\n 'till',\n 'tilt',\n 'timid',\n 'timing',\n 'timothy',\n 'tinderbox',\n 'tinfoil',\n 'tingle',\n 'tingling',\n 'tingly',\n 'tinker',\n 'tinkling',\n 'tinsel',\n 'tinsmith',\n 'tint',\n 'tinwork',\n 'tiny',\n 'tipoff',\n 'tipped',\n 'tipper',\n 'tipping',\n 'tiptoeing',\n 'tiptop',\n 'tiring',\n 'tissue',\n 'trace',\n 'tracing',\n 'track',\n 'traction',\n 'tractor',\n 'trade',\n 'trading',\n 'tradition',\n 'traffic',\n 'tragedy',\n 'trailing',\n 'trailside',\n 'train',\n 'traitor',\n 'trance',\n 'tranquil',\n 'transfer',\n 'transform',\n 'translate',\n 'transpire',\n 'transport',\n 'transpose',\n 'trapdoor',\n 'trapeze',\n 'trapezoid',\n 'trapped',\n 'trapper',\n 'trapping',\n 'traps',\n 'trash',\n 'travel',\n 'traverse',\n 'travesty',\n 'tray',\n 'treachery',\n 'treading',\n 'treadmill',\n 'treason',\n 'treat',\n 'treble',\n 'tree',\n 'trekker',\n 'tremble',\n 'trembling',\n 'tremor',\n 'trench',\n 'trend',\n 'trespass',\n 'triage',\n 'trial',\n 'triangle',\n 'tribesman',\n 'tribunal',\n 'tribune',\n 'tributary',\n 'tribute',\n 'triceps',\n 'trickery',\n 'trickily',\n 'tricking',\n 'trickle',\n 'trickster',\n 'tricky',\n 'tricolor',\n 'tricycle',\n 'trident',\n 'tried',\n 'trifle',\n 'trifocals',\n 'trillion',\n 'trilogy',\n 'trimester',\n 'trimmer',\n 'trimming',\n 'trimness',\n 'trinity',\n 'trio',\n 'tripod',\n 'tripping',\n 'triumph',\n 'trivial',\n 'trodden',\n 'trolling',\n 'trombone',\n 'trophy',\n 'tropical',\n 'tropics',\n 'trouble',\n 'troubling',\n 'trough',\n 'trousers',\n 'trout',\n 'trowel',\n 'truce',\n 'truck',\n 'truffle',\n 'trump',\n 'trunks',\n 'trustable',\n 'trustee',\n 'trustful',\n 'trusting',\n 'trustless',\n 'truth',\n 'try',\n 'tubby',\n 'tubeless',\n 'tubular',\n 'tucking',\n 'tuesday',\n 'tug',\n 'tuition',\n 'tulip',\n 'tumble',\n 'tumbling',\n 'tummy',\n 'turban',\n 'turbine',\n 'turbofan',\n 'turbojet',\n 'turbulent',\n 'turf',\n 'turkey',\n 'turmoil',\n 'turret',\n 'turtle',\n 'tusk',\n 'tutor',\n 'tutu',\n 'tux',\n 'tweak',\n 'tweed',\n 'tweet',\n 'tweezers',\n 'twelve',\n 'twentieth',\n 'twenty',\n 'twerp',\n 'twice',\n 'twiddle',\n 'twiddling',\n 'twig',\n 'twilight',\n 'twine',\n 'twins',\n 'twirl',\n 'twistable',\n 'twisted',\n 'twister',\n 'twisting',\n 'twisty',\n 'twitch',\n 'twitter',\n 'tycoon',\n 'tying',\n 'tyke',\n 'udder',\n 'ultimate',\n 'ultimatum',\n 'ultra',\n 'umbilical',\n 'umbrella',\n 'umpire',\n 'unabashed',\n 'unable',\n 'unadorned',\n 'unadvised',\n 'unafraid',\n 'unaired',\n 'unaligned',\n 'unaltered',\n 'unarmored',\n 'unashamed',\n 'unaudited',\n 'unawake',\n 'unaware',\n 'unbaked',\n 'unbalance',\n 'unbeaten',\n 'unbend',\n 'unbent',\n 'unbiased',\n 'unbitten',\n 'unblended',\n 'unblessed',\n 'unblock',\n 'unbolted',\n 'unbounded',\n 'unboxed',\n 'unbraided',\n 'unbridle',\n 'unbroken',\n 'unbuckled',\n 'unbundle',\n 'unburned',\n 'unbutton',\n 'uncanny',\n 'uncapped',\n 'uncaring',\n 'uncertain',\n 'unchain',\n 'unchanged',\n 'uncharted',\n 'uncheck',\n 'uncivil',\n 'unclad',\n 'unclaimed',\n 'unclamped',\n 'unclasp',\n 'uncle',\n 'unclip',\n 'uncloak',\n 'unclog',\n 'unclothed',\n 'uncoated',\n 'uncoiled',\n 'uncolored',\n 'uncombed',\n 'uncommon',\n 'uncooked',\n 'uncork',\n 'uncorrupt',\n 'uncounted',\n 'uncouple',\n 'uncouth',\n 'uncover',\n 'uncross',\n 'uncrown',\n 'uncrushed',\n 'uncured',\n 'uncurious',\n 'uncurled',\n 'uncut',\n 'undamaged',\n 'undated',\n 'undaunted',\n 'undead',\n 'undecided',\n 'undefined',\n 'underage',\n 'underarm',\n 'undercoat',\n 'undercook',\n 'undercut',\n 'underdog',\n 'underdone',\n 'underfed',\n 'underfeed',\n 'underfoot',\n 'undergo',\n 'undergrad',\n 'underhand',\n 'underline',\n 'underling',\n 'undermine',\n 'undermost',\n 'underpaid',\n 'underpass',\n 'underpay',\n 'underrate',\n 'undertake',\n 'undertone',\n 'undertook',\n 'undertow',\n 'underuse',\n 'underwear',\n 'underwent',\n 'underwire',\n 'undesired',\n 'undiluted',\n 'undivided',\n 'undocked',\n 'undoing',\n 'undone',\n 'undrafted',\n 'undress',\n 'undrilled',\n 'undusted',\n 'undying',\n 'unearned',\n 'unearth',\n 'unease',\n 'uneasily',\n 'uneasy',\n 'uneatable',\n 'uneaten',\n 'unedited',\n 'unelected',\n 'unending',\n 'unengaged',\n 'unenvied',\n 'unequal',\n 'unethical',\n 'uneven',\n 'unexpired',\n 'unexposed',\n 'unfailing',\n 'unfair',\n 'unfasten',\n 'unfazed',\n 'unfeeling',\n 'unfiled',\n 'unfilled',\n 'unfitted',\n 'unfitting',\n 'unfixable',\n 'unfixed',\n 'unflawed',\n 'unfocused',\n 'unfold',\n 'unfounded',\n 'unframed',\n 'unfreeze',\n 'unfrosted',\n 'unfrozen',\n 'unfunded',\n 'unglazed',\n 'ungloved',\n 'unglue',\n 'ungodly',\n 'ungraded',\n 'ungreased',\n 'unguarded',\n 'unguided',\n 'unhappily',\n 'unhappy',\n 'unharmed',\n 'unhealthy',\n 'unheard',\n 'unhearing',\n 'unheated',\n 'unhelpful',\n 'unhidden',\n 'unhinge',\n 'unhitched',\n 'unholy',\n 'unhook',\n 'unicorn',\n 'unicycle',\n 'unified',\n 'unifier',\n 'uniformed',\n 'uniformly',\n 'unify',\n 'unimpeded',\n 'uninjured',\n 'uninstall',\n 'uninsured',\n 'uninvited',\n 'union',\n 'uniquely',\n 'unisexual',\n 'unison',\n 'unissued',\n 'unit',\n 'universal',\n 'universe',\n 'unjustly',\n 'unkempt',\n 'unkind',\n 'unknotted',\n 'unknowing',\n 'unknown',\n 'unlaced',\n 'unlatch',\n 'unlawful',\n 'unleaded',\n 'unlearned',\n 'unleash',\n 'unless',\n 'unleveled',\n 'unlighted',\n 'unlikable',\n 'unlimited',\n 'unlined',\n 'unlinked',\n 'unlisted',\n 'unlit',\n 'unlivable',\n 'unloaded',\n 'unloader',\n 'unlocked',\n 'unlocking',\n 'unlovable',\n 'unloved',\n 'unlovely',\n 'unloving',\n 'unluckily',\n 'unlucky',\n 'unmade',\n 'unmanaged',\n 'unmanned',\n 'unmapped',\n 'unmarked',\n 'unmasked',\n 'unmasking',\n 'unmatched',\n 'unmindful',\n 'unmixable',\n 'unmixed',\n 'unmolded',\n 'unmoral',\n 'unmovable',\n 'unmoved',\n 'unmoving',\n 'unnamable',\n 'unnamed',\n 'unnatural',\n 'unneeded',\n 'unnerve',\n 'unnerving',\n 'unnoticed',\n 'unopened',\n 'unopposed',\n 'unpack',\n 'unpadded',\n 'unpaid',\n 'unpainted',\n 'unpaired',\n 'unpaved',\n 'unpeeled',\n 'unpicked',\n 'unpiloted',\n 'unpinned',\n 'unplanned',\n 'unplanted',\n 'unpleased',\n 'unpledged',\n 'unplowed',\n 'unplug',\n 'unpopular',\n 'unproven',\n 'unquote',\n 'unranked',\n 'unrated',\n 'unraveled',\n 'unreached',\n 'unread',\n 'unreal',\n 'unreeling',\n 'unrefined',\n 'unrelated',\n 'unrented',\n 'unrest',\n 'unretired',\n 'unrevised',\n 'unrigged',\n 'unripe',\n 'unrivaled',\n 'unroasted',\n 'unrobed',\n 'unroll',\n 'unruffled',\n 'unruly',\n 'unrushed',\n 'unsaddle',\n 'unsafe',\n 'unsaid',\n 'unsalted',\n 'unsaved',\n 'unsavory',\n 'unscathed',\n 'unscented',\n 'unscrew',\n 'unsealed',\n 'unseated',\n 'unsecured',\n 'unseeing',\n 'unseemly',\n 'unseen',\n 'unselect',\n 'unselfish',\n 'unsent',\n 'unsettled',\n 'unshackle',\n 'unshaken',\n 'unshaved',\n 'unshaven',\n 'unsheathe',\n 'unshipped',\n 'unsightly',\n 'unsigned',\n 'unskilled',\n 'unsliced',\n 'unsmooth',\n 'unsnap',\n 'unsocial',\n 'unsoiled',\n 'unsold',\n 'unsolved',\n 'unsorted',\n 'unspoiled',\n 'unspoken',\n 'unstable',\n 'unstaffed',\n 'unstamped',\n 'unsteady',\n 'unsterile',\n 'unstirred',\n 'unstitch',\n 'unstopped',\n 'unstuck',\n 'unstuffed',\n 'unstylish',\n 'unsubtle',\n 'unsubtly',\n 'unsuited',\n 'unsure',\n 'unsworn',\n 'untagged',\n 'untainted',\n 'untaken',\n 'untamed',\n 'untangled',\n 'untapped',\n 'untaxed',\n 'unthawed',\n 'unthread',\n 'untidy',\n 'untie',\n 'until',\n 'untimed',\n 'untimely',\n 'untitled',\n 'untoasted',\n 'untold',\n 'untouched',\n 'untracked',\n 'untrained',\n 'untreated',\n 'untried',\n 'untrimmed',\n 'untrue',\n 'untruth',\n 'unturned',\n 'untwist',\n 'untying',\n 'unusable',\n 'unused',\n 'unusual',\n 'unvalued',\n 'unvaried',\n 'unvarying',\n 'unveiled',\n 'unveiling',\n 'unvented',\n 'unviable',\n 'unvisited',\n 'unvocal',\n 'unwanted',\n 'unwarlike',\n 'unwary',\n 'unwashed',\n 'unwatched',\n 'unweave',\n 'unwed',\n 'unwelcome',\n 'unwell',\n 'unwieldy',\n 'unwilling',\n 'unwind',\n 'unwired',\n 'unwitting',\n 'unwomanly',\n 'unworldly',\n 'unworn',\n 'unworried',\n 'unworthy',\n 'unwound',\n 'unwoven',\n 'unwrapped',\n 'unwritten',\n 'unzip',\n 'upbeat',\n 'upchuck',\n 'upcoming',\n 'upcountry',\n 'update',\n 'upfront',\n 'upgrade',\n 'upheaval',\n 'upheld',\n 'uphill',\n 'uphold',\n 'uplifted',\n 'uplifting',\n 'upload',\n 'upon',\n 'upper',\n 'upright',\n 'uprising',\n 'upriver',\n 'uproar',\n 'uproot',\n 'upscale',\n 'upside',\n 'upstage',\n 'upstairs',\n 'upstart',\n 'upstate',\n 'upstream',\n 'upstroke',\n 'upswing',\n 'uptake',\n 'uptight',\n 'uptown',\n 'upturned',\n 'upward',\n 'upwind',\n 'uranium',\n 'urban',\n 'urchin',\n 'urethane',\n 'urgency',\n 'urgent',\n 'urging',\n 'urologist',\n 'urology',\n 'usable',\n 'usage',\n 'useable',\n 'used',\n 'uselessly',\n 'user',\n 'usher',\n 'usual',\n 'utensil',\n 'utility',\n 'utilize',\n 'utmost',\n 'utopia',\n 'utter',\n 'vacancy',\n 'vacant',\n 'vacate',\n 'vacation',\n 'vagabond',\n 'vagrancy',\n 'vagrantly',\n 'vaguely',\n 'vagueness',\n 'valiant',\n 'valid',\n 'valium',\n 'valley',\n 'valuables',\n 'value',\n 'vanilla',\n 'vanish',\n 'vanity',\n 'vanquish',\n 'vantage',\n 'vaporizer',\n 'variable',\n 'variably',\n 'varied',\n 'variety',\n 'various',\n 'varmint',\n 'varnish',\n 'varsity',\n 'varying',\n 'vascular',\n 'vaseline',\n 'vastly',\n 'vastness',\n 'veal',\n 'vegan',\n 'veggie',\n 'vehicular',\n 'velcro',\n 'velocity',\n 'velvet',\n 'vendetta',\n 'vending',\n 'vendor',\n 'veneering',\n 'vengeful',\n 'venomous',\n 'ventricle',\n 'venture',\n 'venue',\n 'venus',\n 'verbalize',\n 'verbally',\n 'verbose',\n 'verdict',\n 'verify',\n 'verse',\n 'version',\n 'versus',\n 'vertebrae',\n 'vertical',\n 'vertigo',\n 'very',\n 'vessel',\n 'vest',\n 'veteran',\n 'veto',\n 'vexingly',\n 'viability',\n 'viable',\n 'vibes',\n 'vice',\n 'vicinity',\n 'victory',\n 'video',\n 'viewable',\n 'viewer',\n 'viewing',\n 'viewless',\n 'viewpoint',\n 'vigorous',\n 'village',\n 'villain',\n 'vindicate',\n 'vineyard',\n 'vintage',\n 'violate',\n 'violation',\n 'violator',\n 'violet',\n 'violin',\n 'viper',\n 'viral',\n 'virtual',\n 'virtuous',\n 'virus',\n 'visa',\n 'viscosity',\n 'viscous',\n 'viselike',\n 'visible',\n 'visibly',\n 'vision',\n 'visiting',\n 'visitor',\n 'visor',\n 'vista',\n 'vitality',\n 'vitalize',\n 'vitally',\n 'vitamins',\n 'vivacious',\n 'vividly',\n 'vividness',\n 'vixen',\n 'vocalist',\n 'vocalize',\n 'vocally',\n 'vocation',\n 'voice',\n 'voicing',\n 'void',\n 'volatile',\n 'volley',\n 'voltage',\n 'volumes',\n 'voter',\n 'voting',\n 'voucher',\n 'vowed',\n 'vowel',\n 'voyage',\n 'wackiness',\n 'wad',\n 'wafer',\n 'waffle',\n 'waged',\n 'wager',\n 'wages',\n 'waggle',\n 'wagon',\n 'wake',\n 'waking',\n 'walk',\n 'walmart',\n 'walnut',\n 'walrus',\n 'waltz',\n 'wand',\n 'wannabe',\n 'wanted',\n 'wanting',\n 'wasabi',\n 'washable',\n 'washbasin',\n 'washboard',\n 'washbowl',\n 'washcloth',\n 'washday',\n 'washed',\n 'washer',\n 'washhouse',\n 'washing',\n 'washout',\n 'washroom',\n 'washstand',\n 'washtub',\n 'wasp',\n 'wasting',\n 'watch',\n 'water',\n 'waviness',\n 'waving',\n 'wavy',\n 'whacking',\n 'whacky',\n 'wham',\n 'wharf',\n 'wheat',\n 'whenever',\n 'whiff',\n 'whimsical',\n 'whinny',\n 'whiny',\n 'whisking',\n 'whoever',\n 'whole',\n 'whomever',\n 'whoopee',\n 'whooping',\n 'whoops',\n 'why',\n 'wick',\n 'widely',\n 'widen',\n 'widget',\n 'widow',\n 'width',\n 'wieldable',\n 'wielder',\n 'wife',\n 'wifi',\n 'wikipedia',\n 'wildcard',\n 'wildcat',\n 'wilder',\n 'wildfire',\n 'wildfowl',\n 'wildland',\n 'wildlife',\n 'wildly',\n 'wildness',\n 'willed',\n 'willfully',\n 'willing',\n 'willow',\n 'willpower',\n 'wilt',\n 'wimp',\n 'wince',\n 'wincing',\n 'wind',\n 'wing',\n 'winking',\n 'winner',\n 'winnings',\n 'winter',\n 'wipe',\n 'wired',\n 'wireless',\n 'wiring',\n 'wiry',\n 'wisdom',\n 'wise',\n 'wish',\n 'wisplike',\n 'wispy',\n 'wistful',\n 'wizard',\n 'wobble',\n 'wobbling',\n 'wobbly',\n 'wok',\n 'wolf',\n 'wolverine',\n 'womanhood',\n 'womankind',\n 'womanless',\n 'womanlike',\n 'womanly',\n 'womb',\n 'woof',\n 'wooing',\n 'wool',\n 'woozy',\n 'word',\n 'work',\n 'worried',\n 'worrier',\n 'worrisome',\n 'worry',\n 'worsening',\n 'worshiper',\n 'worst',\n 'wound',\n 'woven',\n 'wow',\n 'wrangle',\n 'wrath',\n 'wreath',\n 'wreckage',\n 'wrecker',\n 'wrecking',\n 'wrench',\n 'wriggle',\n 'wriggly',\n 'wrinkle',\n 'wrinkly',\n 'wrist',\n 'writing',\n 'written',\n 'wrongdoer',\n 'wronged',\n 'wrongful',\n 'wrongly',\n 'wrongness',\n 'wrought',\n 'xbox',\n 'xerox',\n 'yahoo',\n 'yam',\n 'yanking',\n 'yapping',\n 'yard',\n 'yarn',\n 'yeah',\n 'yearbook',\n 'yearling',\n 'yearly',\n 'yearning',\n 'yeast',\n 'yelling',\n 'yelp',\n 'yen',\n 'yesterday',\n 'yiddish',\n 'yield',\n 'yin',\n 'yippee',\n 'yo-yo',\n 'yodel',\n 'yoga',\n 'yogurt',\n 'yonder',\n 'yoyo',\n 'yummy',\n 'zap',\n 'zealous',\n 'zebra',\n 'zen',\n 'zeppelin',\n 'zero',\n 'zestfully',\n 'zesty',\n 'zigzagged',\n 'zipfile',\n 'zipping',\n 'zippy',\n 'zips',\n 'zit',\n 'zodiac',\n 'zombie',\n 'zone',\n 'zoning',\n 'zookeeper',\n 'zoologist',\n 'zoology',\n 'zoom',\n];\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.newSecureWords = void 0;\nconst getSecureRandom_1 = require(\"../primitives/getSecureRandom\");\nconst wordlist_1 = require(\"./wordlist\");\nasync function newSecureWords(size = 6) {\n let words = [];\n for (let i = 0; i < size; i++) {\n words.push(wordlist_1.wordlist[await (0, getSecureRandom_1.getSecureRandomNumber)(0, wordlist_1.wordlist.length)]);\n }\n return words;\n}\nexports.newSecureWords = newSecureWords;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.newSecurePassphrase = void 0;\nconst __1 = require(\"..\");\nasync function newSecurePassphrase(size = 6) {\n return (await (0, __1.newSecureWords)(size)).join('-');\n}\nexports.newSecurePassphrase = newSecurePassphrase;\n","export default {}","(function(nacl) {\n'use strict';\n\n// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n//\n// Implementation derived from TweetNaCl version 20140427.\n// See for details: http://tweetnacl.cr.yp.to/\n\nvar gf = function(init) {\n var i, r = new Float64Array(16);\n if (init) for (i = 0; i < init.length; i++) r[i] = init[i];\n return r;\n};\n\n// Pluggable, initialized in high-level API below.\nvar randombytes = function(/* x, n */) { throw new Error('no PRNG'); };\n\nvar _0 = new Uint8Array(16);\nvar _9 = new Uint8Array(32); _9[0] = 9;\n\nvar gf0 = gf(),\n gf1 = gf([1]),\n _121665 = gf([0xdb41, 1]),\n D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),\n D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),\n X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),\n Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),\n I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\nfunction ts64(x, i, h, l) {\n x[i] = (h >> 24) & 0xff;\n x[i+1] = (h >> 16) & 0xff;\n x[i+2] = (h >> 8) & 0xff;\n x[i+3] = h & 0xff;\n x[i+4] = (l >> 24) & 0xff;\n x[i+5] = (l >> 16) & 0xff;\n x[i+6] = (l >> 8) & 0xff;\n x[i+7] = l & 0xff;\n}\n\nfunction vn(x, xi, y, yi, n) {\n var i,d = 0;\n for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction crypto_verify_16(x, xi, y, yi) {\n return vn(x,xi,y,yi,16);\n}\n\nfunction crypto_verify_32(x, xi, y, yi) {\n return vn(x,xi,y,yi,32);\n}\n\nfunction core_salsa20(o, p, k, c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n x0 = x0 + j0 | 0;\n x1 = x1 + j1 | 0;\n x2 = x2 + j2 | 0;\n x3 = x3 + j3 | 0;\n x4 = x4 + j4 | 0;\n x5 = x5 + j5 | 0;\n x6 = x6 + j6 | 0;\n x7 = x7 + j7 | 0;\n x8 = x8 + j8 | 0;\n x9 = x9 + j9 | 0;\n x10 = x10 + j10 | 0;\n x11 = x11 + j11 | 0;\n x12 = x12 + j12 | 0;\n x13 = x13 + j13 | 0;\n x14 = x14 + j14 | 0;\n x15 = x15 + j15 | 0;\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x1 >>> 0 & 0xff;\n o[ 5] = x1 >>> 8 & 0xff;\n o[ 6] = x1 >>> 16 & 0xff;\n o[ 7] = x1 >>> 24 & 0xff;\n\n o[ 8] = x2 >>> 0 & 0xff;\n o[ 9] = x2 >>> 8 & 0xff;\n o[10] = x2 >>> 16 & 0xff;\n o[11] = x2 >>> 24 & 0xff;\n\n o[12] = x3 >>> 0 & 0xff;\n o[13] = x3 >>> 8 & 0xff;\n o[14] = x3 >>> 16 & 0xff;\n o[15] = x3 >>> 24 & 0xff;\n\n o[16] = x4 >>> 0 & 0xff;\n o[17] = x4 >>> 8 & 0xff;\n o[18] = x4 >>> 16 & 0xff;\n o[19] = x4 >>> 24 & 0xff;\n\n o[20] = x5 >>> 0 & 0xff;\n o[21] = x5 >>> 8 & 0xff;\n o[22] = x5 >>> 16 & 0xff;\n o[23] = x5 >>> 24 & 0xff;\n\n o[24] = x6 >>> 0 & 0xff;\n o[25] = x6 >>> 8 & 0xff;\n o[26] = x6 >>> 16 & 0xff;\n o[27] = x6 >>> 24 & 0xff;\n\n o[28] = x7 >>> 0 & 0xff;\n o[29] = x7 >>> 8 & 0xff;\n o[30] = x7 >>> 16 & 0xff;\n o[31] = x7 >>> 24 & 0xff;\n\n o[32] = x8 >>> 0 & 0xff;\n o[33] = x8 >>> 8 & 0xff;\n o[34] = x8 >>> 16 & 0xff;\n o[35] = x8 >>> 24 & 0xff;\n\n o[36] = x9 >>> 0 & 0xff;\n o[37] = x9 >>> 8 & 0xff;\n o[38] = x9 >>> 16 & 0xff;\n o[39] = x9 >>> 24 & 0xff;\n\n o[40] = x10 >>> 0 & 0xff;\n o[41] = x10 >>> 8 & 0xff;\n o[42] = x10 >>> 16 & 0xff;\n o[43] = x10 >>> 24 & 0xff;\n\n o[44] = x11 >>> 0 & 0xff;\n o[45] = x11 >>> 8 & 0xff;\n o[46] = x11 >>> 16 & 0xff;\n o[47] = x11 >>> 24 & 0xff;\n\n o[48] = x12 >>> 0 & 0xff;\n o[49] = x12 >>> 8 & 0xff;\n o[50] = x12 >>> 16 & 0xff;\n o[51] = x12 >>> 24 & 0xff;\n\n o[52] = x13 >>> 0 & 0xff;\n o[53] = x13 >>> 8 & 0xff;\n o[54] = x13 >>> 16 & 0xff;\n o[55] = x13 >>> 24 & 0xff;\n\n o[56] = x14 >>> 0 & 0xff;\n o[57] = x14 >>> 8 & 0xff;\n o[58] = x14 >>> 16 & 0xff;\n o[59] = x14 >>> 24 & 0xff;\n\n o[60] = x15 >>> 0 & 0xff;\n o[61] = x15 >>> 8 & 0xff;\n o[62] = x15 >>> 16 & 0xff;\n o[63] = x15 >>> 24 & 0xff;\n}\n\nfunction core_hsalsa20(o,p,k,c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x5 >>> 0 & 0xff;\n o[ 5] = x5 >>> 8 & 0xff;\n o[ 6] = x5 >>> 16 & 0xff;\n o[ 7] = x5 >>> 24 & 0xff;\n\n o[ 8] = x10 >>> 0 & 0xff;\n o[ 9] = x10 >>> 8 & 0xff;\n o[10] = x10 >>> 16 & 0xff;\n o[11] = x10 >>> 24 & 0xff;\n\n o[12] = x15 >>> 0 & 0xff;\n o[13] = x15 >>> 8 & 0xff;\n o[14] = x15 >>> 16 & 0xff;\n o[15] = x15 >>> 24 & 0xff;\n\n o[16] = x6 >>> 0 & 0xff;\n o[17] = x6 >>> 8 & 0xff;\n o[18] = x6 >>> 16 & 0xff;\n o[19] = x6 >>> 24 & 0xff;\n\n o[20] = x7 >>> 0 & 0xff;\n o[21] = x7 >>> 8 & 0xff;\n o[22] = x7 >>> 16 & 0xff;\n o[23] = x7 >>> 24 & 0xff;\n\n o[24] = x8 >>> 0 & 0xff;\n o[25] = x8 >>> 8 & 0xff;\n o[26] = x8 >>> 16 & 0xff;\n o[27] = x8 >>> 24 & 0xff;\n\n o[28] = x9 >>> 0 & 0xff;\n o[29] = x9 >>> 8 & 0xff;\n o[30] = x9 >>> 16 & 0xff;\n o[31] = x9 >>> 24 & 0xff;\n}\n\nfunction crypto_core_salsa20(out,inp,k,c) {\n core_salsa20(out,inp,k,c);\n}\n\nfunction crypto_core_hsalsa20(out,inp,k,c) {\n core_hsalsa20(out,inp,k,c);\n}\n\nvar sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]);\n // \"expand 32-byte k\"\n\nfunction crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n mpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n }\n return 0;\n}\n\nfunction crypto_stream_salsa20(c,cpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = x[i];\n }\n return 0;\n}\n\nfunction crypto_stream(c,cpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20(c,cpos,d,sn,s);\n}\n\nfunction crypto_stream_xor(c,cpos,m,mpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,sn,s);\n}\n\n/*\n* Port of Andrew Moon's Poly1305-donna-16. Public domain.\n* https://github.com/floodyberry/poly1305-donna\n*/\n\nvar poly1305 = function(key) {\n this.buffer = new Uint8Array(16);\n this.r = new Uint16Array(10);\n this.h = new Uint16Array(10);\n this.pad = new Uint16Array(8);\n this.leftover = 0;\n this.fin = 0;\n\n var t0, t1, t2, t3, t4, t5, t6, t7;\n\n t0 = key[ 0] & 0xff | (key[ 1] & 0xff) << 8; this.r[0] = ( t0 ) & 0x1fff;\n t1 = key[ 2] & 0xff | (key[ 3] & 0xff) << 8; this.r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = key[ 4] & 0xff | (key[ 5] & 0xff) << 8; this.r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;\n t3 = key[ 6] & 0xff | (key[ 7] & 0xff) << 8; this.r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = key[ 8] & 0xff | (key[ 9] & 0xff) << 8; this.r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;\n this.r[5] = ((t4 >>> 1)) & 0x1ffe;\n t5 = key[10] & 0xff | (key[11] & 0xff) << 8; this.r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = key[12] & 0xff | (key[13] & 0xff) << 8; this.r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;\n t7 = key[14] & 0xff | (key[15] & 0xff) << 8; this.r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n this.r[9] = ((t7 >>> 5)) & 0x007f;\n\n this.pad[0] = key[16] & 0xff | (key[17] & 0xff) << 8;\n this.pad[1] = key[18] & 0xff | (key[19] & 0xff) << 8;\n this.pad[2] = key[20] & 0xff | (key[21] & 0xff) << 8;\n this.pad[3] = key[22] & 0xff | (key[23] & 0xff) << 8;\n this.pad[4] = key[24] & 0xff | (key[25] & 0xff) << 8;\n this.pad[5] = key[26] & 0xff | (key[27] & 0xff) << 8;\n this.pad[6] = key[28] & 0xff | (key[29] & 0xff) << 8;\n this.pad[7] = key[30] & 0xff | (key[31] & 0xff) << 8;\n};\n\npoly1305.prototype.blocks = function(m, mpos, bytes) {\n var hibit = this.fin ? 0 : (1 << 11);\n var t0, t1, t2, t3, t4, t5, t6, t7, c;\n var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;\n\n var h0 = this.h[0],\n h1 = this.h[1],\n h2 = this.h[2],\n h3 = this.h[3],\n h4 = this.h[4],\n h5 = this.h[5],\n h6 = this.h[6],\n h7 = this.h[7],\n h8 = this.h[8],\n h9 = this.h[9];\n\n var r0 = this.r[0],\n r1 = this.r[1],\n r2 = this.r[2],\n r3 = this.r[3],\n r4 = this.r[4],\n r5 = this.r[5],\n r6 = this.r[6],\n r7 = this.r[7],\n r8 = this.r[8],\n r9 = this.r[9];\n\n while (bytes >= 16) {\n t0 = m[mpos+ 0] & 0xff | (m[mpos+ 1] & 0xff) << 8; h0 += ( t0 ) & 0x1fff;\n t1 = m[mpos+ 2] & 0xff | (m[mpos+ 3] & 0xff) << 8; h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = m[mpos+ 4] & 0xff | (m[mpos+ 5] & 0xff) << 8; h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;\n t3 = m[mpos+ 6] & 0xff | (m[mpos+ 7] & 0xff) << 8; h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = m[mpos+ 8] & 0xff | (m[mpos+ 9] & 0xff) << 8; h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;\n h5 += ((t4 >>> 1)) & 0x1fff;\n t5 = m[mpos+10] & 0xff | (m[mpos+11] & 0xff) << 8; h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = m[mpos+12] & 0xff | (m[mpos+13] & 0xff) << 8; h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;\n t7 = m[mpos+14] & 0xff | (m[mpos+15] & 0xff) << 8; h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n h9 += ((t7 >>> 5)) | hibit;\n\n c = 0;\n\n d0 = c;\n d0 += h0 * r0;\n d0 += h1 * (5 * r9);\n d0 += h2 * (5 * r8);\n d0 += h3 * (5 * r7);\n d0 += h4 * (5 * r6);\n c = (d0 >>> 13); d0 &= 0x1fff;\n d0 += h5 * (5 * r5);\n d0 += h6 * (5 * r4);\n d0 += h7 * (5 * r3);\n d0 += h8 * (5 * r2);\n d0 += h9 * (5 * r1);\n c += (d0 >>> 13); d0 &= 0x1fff;\n\n d1 = c;\n d1 += h0 * r1;\n d1 += h1 * r0;\n d1 += h2 * (5 * r9);\n d1 += h3 * (5 * r8);\n d1 += h4 * (5 * r7);\n c = (d1 >>> 13); d1 &= 0x1fff;\n d1 += h5 * (5 * r6);\n d1 += h6 * (5 * r5);\n d1 += h7 * (5 * r4);\n d1 += h8 * (5 * r3);\n d1 += h9 * (5 * r2);\n c += (d1 >>> 13); d1 &= 0x1fff;\n\n d2 = c;\n d2 += h0 * r2;\n d2 += h1 * r1;\n d2 += h2 * r0;\n d2 += h3 * (5 * r9);\n d2 += h4 * (5 * r8);\n c = (d2 >>> 13); d2 &= 0x1fff;\n d2 += h5 * (5 * r7);\n d2 += h6 * (5 * r6);\n d2 += h7 * (5 * r5);\n d2 += h8 * (5 * r4);\n d2 += h9 * (5 * r3);\n c += (d2 >>> 13); d2 &= 0x1fff;\n\n d3 = c;\n d3 += h0 * r3;\n d3 += h1 * r2;\n d3 += h2 * r1;\n d3 += h3 * r0;\n d3 += h4 * (5 * r9);\n c = (d3 >>> 13); d3 &= 0x1fff;\n d3 += h5 * (5 * r8);\n d3 += h6 * (5 * r7);\n d3 += h7 * (5 * r6);\n d3 += h8 * (5 * r5);\n d3 += h9 * (5 * r4);\n c += (d3 >>> 13); d3 &= 0x1fff;\n\n d4 = c;\n d4 += h0 * r4;\n d4 += h1 * r3;\n d4 += h2 * r2;\n d4 += h3 * r1;\n d4 += h4 * r0;\n c = (d4 >>> 13); d4 &= 0x1fff;\n d4 += h5 * (5 * r9);\n d4 += h6 * (5 * r8);\n d4 += h7 * (5 * r7);\n d4 += h8 * (5 * r6);\n d4 += h9 * (5 * r5);\n c += (d4 >>> 13); d4 &= 0x1fff;\n\n d5 = c;\n d5 += h0 * r5;\n d5 += h1 * r4;\n d5 += h2 * r3;\n d5 += h3 * r2;\n d5 += h4 * r1;\n c = (d5 >>> 13); d5 &= 0x1fff;\n d5 += h5 * r0;\n d5 += h6 * (5 * r9);\n d5 += h7 * (5 * r8);\n d5 += h8 * (5 * r7);\n d5 += h9 * (5 * r6);\n c += (d5 >>> 13); d5 &= 0x1fff;\n\n d6 = c;\n d6 += h0 * r6;\n d6 += h1 * r5;\n d6 += h2 * r4;\n d6 += h3 * r3;\n d6 += h4 * r2;\n c = (d6 >>> 13); d6 &= 0x1fff;\n d6 += h5 * r1;\n d6 += h6 * r0;\n d6 += h7 * (5 * r9);\n d6 += h8 * (5 * r8);\n d6 += h9 * (5 * r7);\n c += (d6 >>> 13); d6 &= 0x1fff;\n\n d7 = c;\n d7 += h0 * r7;\n d7 += h1 * r6;\n d7 += h2 * r5;\n d7 += h3 * r4;\n d7 += h4 * r3;\n c = (d7 >>> 13); d7 &= 0x1fff;\n d7 += h5 * r2;\n d7 += h6 * r1;\n d7 += h7 * r0;\n d7 += h8 * (5 * r9);\n d7 += h9 * (5 * r8);\n c += (d7 >>> 13); d7 &= 0x1fff;\n\n d8 = c;\n d8 += h0 * r8;\n d8 += h1 * r7;\n d8 += h2 * r6;\n d8 += h3 * r5;\n d8 += h4 * r4;\n c = (d8 >>> 13); d8 &= 0x1fff;\n d8 += h5 * r3;\n d8 += h6 * r2;\n d8 += h7 * r1;\n d8 += h8 * r0;\n d8 += h9 * (5 * r9);\n c += (d8 >>> 13); d8 &= 0x1fff;\n\n d9 = c;\n d9 += h0 * r9;\n d9 += h1 * r8;\n d9 += h2 * r7;\n d9 += h3 * r6;\n d9 += h4 * r5;\n c = (d9 >>> 13); d9 &= 0x1fff;\n d9 += h5 * r4;\n d9 += h6 * r3;\n d9 += h7 * r2;\n d9 += h8 * r1;\n d9 += h9 * r0;\n c += (d9 >>> 13); d9 &= 0x1fff;\n\n c = (((c << 2) + c)) | 0;\n c = (c + d0) | 0;\n d0 = c & 0x1fff;\n c = (c >>> 13);\n d1 += c;\n\n h0 = d0;\n h1 = d1;\n h2 = d2;\n h3 = d3;\n h4 = d4;\n h5 = d5;\n h6 = d6;\n h7 = d7;\n h8 = d8;\n h9 = d9;\n\n mpos += 16;\n bytes -= 16;\n }\n this.h[0] = h0;\n this.h[1] = h1;\n this.h[2] = h2;\n this.h[3] = h3;\n this.h[4] = h4;\n this.h[5] = h5;\n this.h[6] = h6;\n this.h[7] = h7;\n this.h[8] = h8;\n this.h[9] = h9;\n};\n\npoly1305.prototype.finish = function(mac, macpos) {\n var g = new Uint16Array(10);\n var c, mask, f, i;\n\n if (this.leftover) {\n i = this.leftover;\n this.buffer[i++] = 1;\n for (; i < 16; i++) this.buffer[i] = 0;\n this.fin = 1;\n this.blocks(this.buffer, 0, 16);\n }\n\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n for (i = 2; i < 10; i++) {\n this.h[i] += c;\n c = this.h[i] >>> 13;\n this.h[i] &= 0x1fff;\n }\n this.h[0] += (c * 5);\n c = this.h[0] >>> 13;\n this.h[0] &= 0x1fff;\n this.h[1] += c;\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n this.h[2] += c;\n\n g[0] = this.h[0] + 5;\n c = g[0] >>> 13;\n g[0] &= 0x1fff;\n for (i = 1; i < 10; i++) {\n g[i] = this.h[i] + c;\n c = g[i] >>> 13;\n g[i] &= 0x1fff;\n }\n g[9] -= (1 << 13);\n\n mask = (c ^ 1) - 1;\n for (i = 0; i < 10; i++) g[i] &= mask;\n mask = ~mask;\n for (i = 0; i < 10; i++) this.h[i] = (this.h[i] & mask) | g[i];\n\n this.h[0] = ((this.h[0] ) | (this.h[1] << 13) ) & 0xffff;\n this.h[1] = ((this.h[1] >>> 3) | (this.h[2] << 10) ) & 0xffff;\n this.h[2] = ((this.h[2] >>> 6) | (this.h[3] << 7) ) & 0xffff;\n this.h[3] = ((this.h[3] >>> 9) | (this.h[4] << 4) ) & 0xffff;\n this.h[4] = ((this.h[4] >>> 12) | (this.h[5] << 1) | (this.h[6] << 14)) & 0xffff;\n this.h[5] = ((this.h[6] >>> 2) | (this.h[7] << 11) ) & 0xffff;\n this.h[6] = ((this.h[7] >>> 5) | (this.h[8] << 8) ) & 0xffff;\n this.h[7] = ((this.h[8] >>> 8) | (this.h[9] << 5) ) & 0xffff;\n\n f = this.h[0] + this.pad[0];\n this.h[0] = f & 0xffff;\n for (i = 1; i < 8; i++) {\n f = (((this.h[i] + this.pad[i]) | 0) + (f >>> 16)) | 0;\n this.h[i] = f & 0xffff;\n }\n\n mac[macpos+ 0] = (this.h[0] >>> 0) & 0xff;\n mac[macpos+ 1] = (this.h[0] >>> 8) & 0xff;\n mac[macpos+ 2] = (this.h[1] >>> 0) & 0xff;\n mac[macpos+ 3] = (this.h[1] >>> 8) & 0xff;\n mac[macpos+ 4] = (this.h[2] >>> 0) & 0xff;\n mac[macpos+ 5] = (this.h[2] >>> 8) & 0xff;\n mac[macpos+ 6] = (this.h[3] >>> 0) & 0xff;\n mac[macpos+ 7] = (this.h[3] >>> 8) & 0xff;\n mac[macpos+ 8] = (this.h[4] >>> 0) & 0xff;\n mac[macpos+ 9] = (this.h[4] >>> 8) & 0xff;\n mac[macpos+10] = (this.h[5] >>> 0) & 0xff;\n mac[macpos+11] = (this.h[5] >>> 8) & 0xff;\n mac[macpos+12] = (this.h[6] >>> 0) & 0xff;\n mac[macpos+13] = (this.h[6] >>> 8) & 0xff;\n mac[macpos+14] = (this.h[7] >>> 0) & 0xff;\n mac[macpos+15] = (this.h[7] >>> 8) & 0xff;\n};\n\npoly1305.prototype.update = function(m, mpos, bytes) {\n var i, want;\n\n if (this.leftover) {\n want = (16 - this.leftover);\n if (want > bytes)\n want = bytes;\n for (i = 0; i < want; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n bytes -= want;\n mpos += want;\n this.leftover += want;\n if (this.leftover < 16)\n return;\n this.blocks(this.buffer, 0, 16);\n this.leftover = 0;\n }\n\n if (bytes >= 16) {\n want = bytes - (bytes % 16);\n this.blocks(m, mpos, want);\n mpos += want;\n bytes -= want;\n }\n\n if (bytes) {\n for (i = 0; i < bytes; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n this.leftover += bytes;\n }\n};\n\nfunction crypto_onetimeauth(out, outpos, m, mpos, n, k) {\n var s = new poly1305(k);\n s.update(m, mpos, n);\n s.finish(out, outpos);\n return 0;\n}\n\nfunction crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) {\n var x = new Uint8Array(16);\n crypto_onetimeauth(x,0,m,mpos,n,k);\n return crypto_verify_16(h,hpos,x,0);\n}\n\nfunction crypto_secretbox(c,m,d,n,k) {\n var i;\n if (d < 32) return -1;\n crypto_stream_xor(c,0,m,0,d,n,k);\n crypto_onetimeauth(c, 16, c, 32, d - 32, c);\n for (i = 0; i < 16; i++) c[i] = 0;\n return 0;\n}\n\nfunction crypto_secretbox_open(m,c,d,n,k) {\n var i;\n var x = new Uint8Array(32);\n if (d < 32) return -1;\n crypto_stream(x,0,32,n,k);\n if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) !== 0) return -1;\n crypto_stream_xor(m,0,c,0,d,n,k);\n for (i = 0; i < 32; i++) m[i] = 0;\n return 0;\n}\n\nfunction set25519(r, a) {\n var i;\n for (i = 0; i < 16; i++) r[i] = a[i]|0;\n}\n\nfunction car25519(o) {\n var i, v, c = 1;\n for (i = 0; i < 16; i++) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c-1 + 37 * (c-1);\n}\n\nfunction sel25519(p, q, b) {\n var t, c = ~(b-1);\n for (var i = 0; i < 16; i++) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction pack25519(o, n) {\n var i, j, b;\n var m = gf(), t = gf();\n for (i = 0; i < 16; i++) t[i] = n[i];\n car25519(t);\n car25519(t);\n car25519(t);\n for (j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);\n m[i-1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);\n b = (m[15]>>16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1-b);\n }\n for (i = 0; i < 16; i++) {\n o[2*i] = t[i] & 0xff;\n o[2*i+1] = t[i]>>8;\n }\n}\n\nfunction neq25519(a, b) {\n var c = new Uint8Array(32), d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction par25519(a) {\n var d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction unpack25519(o, n) {\n var i;\n for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);\n o[15] &= 0x7fff;\n}\n\nfunction A(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];\n}\n\nfunction Z(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];\n}\n\nfunction M(o, a, b) {\n var v, c,\n t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,\n t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n // second car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n o[ 0] = t0;\n o[ 1] = t1;\n o[ 2] = t2;\n o[ 3] = t3;\n o[ 4] = t4;\n o[ 5] = t5;\n o[ 6] = t6;\n o[ 7] = t7;\n o[ 8] = t8;\n o[ 9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n\nfunction S(o, a) {\n M(o, a, a);\n}\n\nfunction inv25519(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 253; a >= 0; a--) {\n S(c, c);\n if(a !== 2 && a !== 4) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction pow2523(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 250; a >= 0; a--) {\n S(c, c);\n if(a !== 1) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction crypto_scalarmult(q, n, p) {\n var z = new Uint8Array(32);\n var x = new Float64Array(80), r, i;\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf();\n for (i = 0; i < 31; i++) z[i] = n[i];\n z[31]=(n[31]&127)|64;\n z[0]&=248;\n unpack25519(x,p);\n for (i = 0; i < 16; i++) {\n b[i]=x[i];\n d[i]=a[i]=c[i]=0;\n }\n a[0]=d[0]=1;\n for (i=254; i>=0; --i) {\n r=(z[i>>>3]>>>(i&7))&1;\n sel25519(a,b,r);\n sel25519(c,d,r);\n A(e,a,c);\n Z(a,a,c);\n A(c,b,d);\n Z(b,b,d);\n S(d,e);\n S(f,a);\n M(a,c,a);\n M(c,b,e);\n A(e,a,c);\n Z(a,a,c);\n S(b,a);\n Z(c,d,f);\n M(a,c,_121665);\n A(a,a,d);\n M(c,c,a);\n M(a,d,f);\n M(d,b,x);\n S(b,e);\n sel25519(a,b,r);\n sel25519(c,d,r);\n }\n for (i = 0; i < 16; i++) {\n x[i+16]=a[i];\n x[i+32]=c[i];\n x[i+48]=b[i];\n x[i+64]=d[i];\n }\n var x32 = x.subarray(32);\n var x16 = x.subarray(16);\n inv25519(x32,x32);\n M(x16,x16,x32);\n pack25519(q,x16);\n return 0;\n}\n\nfunction crypto_scalarmult_base(q, n) {\n return crypto_scalarmult(q, n, _9);\n}\n\nfunction crypto_box_keypair(y, x) {\n randombytes(x, 32);\n return crypto_scalarmult_base(y, x);\n}\n\nfunction crypto_box_beforenm(k, y, x) {\n var s = new Uint8Array(32);\n crypto_scalarmult(s, x, y);\n return crypto_core_hsalsa20(k, _0, s, sigma);\n}\n\nvar crypto_box_afternm = crypto_secretbox;\nvar crypto_box_open_afternm = crypto_secretbox_open;\n\nfunction crypto_box(c, m, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_afternm(c, m, d, n, k);\n}\n\nfunction crypto_box_open(m, c, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_open_afternm(m, c, d, n, k);\n}\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction crypto_hashblocks_hl(hh, hl, m, n) {\n var wh = new Int32Array(16), wl = new Int32Array(16),\n bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7,\n bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7,\n th, tl, i, j, h, l, a, b, c, d;\n\n var ah0 = hh[0],\n ah1 = hh[1],\n ah2 = hh[2],\n ah3 = hh[3],\n ah4 = hh[4],\n ah5 = hh[5],\n ah6 = hh[6],\n ah7 = hh[7],\n\n al0 = hl[0],\n al1 = hl[1],\n al2 = hl[2],\n al3 = hl[3],\n al4 = hl[4],\n al5 = hl[5],\n al6 = hl[6],\n al7 = hl[7];\n\n var pos = 0;\n while (n >= 128) {\n for (i = 0; i < 16; i++) {\n j = 8 * i + pos;\n wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3];\n wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7];\n }\n for (i = 0; i < 80; i++) {\n bh0 = ah0;\n bh1 = ah1;\n bh2 = ah2;\n bh3 = ah3;\n bh4 = ah4;\n bh5 = ah5;\n bh6 = ah6;\n bh7 = ah7;\n\n bl0 = al0;\n bl1 = al1;\n bl2 = al2;\n bl3 = al3;\n bl4 = al4;\n bl5 = al5;\n bl6 = al6;\n bl7 = al7;\n\n // add\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma1\n h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32))));\n l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // K\n h = K[i*2];\n l = K[i*2+1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // w\n h = wh[i%16];\n l = wl[i%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n th = c & 0xffff | d << 16;\n tl = a & 0xffff | b << 16;\n\n // add\n h = th;\n l = tl;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma0\n h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32))));\n l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n\n // add\n h = bh3;\n l = bl3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = th;\n l = tl;\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n\n if (i%16 === 15) {\n for (j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = wh[(j+9)%16];\n l = wl[(j+9)%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma0\n th = wh[(j+1)%16];\n tl = wl[(j+1)%16];\n h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma1\n th = wh[(j+14)%16];\n tl = wl[(j+14)%16];\n h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6);\n l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n\n // add\n h = ah0;\n l = al0;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[0];\n l = hl[0];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n h = ah1;\n l = al1;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[1];\n l = hl[1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n h = ah2;\n l = al2;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[2];\n l = hl[2];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n h = ah3;\n l = al3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[3];\n l = hl[3];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n h = ah4;\n l = al4;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[4];\n l = hl[4];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n h = ah5;\n l = al5;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[5];\n l = hl[5];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n h = ah6;\n l = al6;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[6];\n l = hl[6];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[7];\n l = hl[7];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n pos += 128;\n n -= 128;\n }\n\n return n;\n}\n\nfunction crypto_hash(out, m, n) {\n var hh = new Int32Array(8),\n hl = new Int32Array(8),\n x = new Uint8Array(256),\n i, b = n;\n\n hh[0] = 0x6a09e667;\n hh[1] = 0xbb67ae85;\n hh[2] = 0x3c6ef372;\n hh[3] = 0xa54ff53a;\n hh[4] = 0x510e527f;\n hh[5] = 0x9b05688c;\n hh[6] = 0x1f83d9ab;\n hh[7] = 0x5be0cd19;\n\n hl[0] = 0xf3bcc908;\n hl[1] = 0x84caa73b;\n hl[2] = 0xfe94f82b;\n hl[3] = 0x5f1d36f1;\n hl[4] = 0xade682d1;\n hl[5] = 0x2b3e6c1f;\n hl[6] = 0xfb41bd6b;\n hl[7] = 0x137e2179;\n\n crypto_hashblocks_hl(hh, hl, m, n);\n n %= 128;\n\n for (i = 0; i < n; i++) x[i] = m[b-n+i];\n x[n] = 128;\n\n n = 256-128*(n<112?1:0);\n x[n-9] = 0;\n ts64(x, n-8, (b / 0x20000000) | 0, b << 3);\n crypto_hashblocks_hl(hh, hl, x, n);\n\n for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]);\n\n return 0;\n}\n\nfunction add(p, q) {\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf(),\n g = gf(), h = gf(), t = gf();\n\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\n\nfunction cswap(p, q, b) {\n var i;\n for (i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r, p) {\n var tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\nfunction scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (i = 255; i >= 0; --i) {\n b = (s[(i/8)|0] >> (i&7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p, s) {\n var q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nfunction crypto_sign_keypair(pk, sk, seeded) {\n var d = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()];\n var i;\n\n if (!seeded) randombytes(sk, 32);\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n for (i = 0; i < 32; i++) sk[i+32] = pk[i];\n return 0;\n}\n\nvar L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\n\nfunction modL(r, x) {\n var carry, i, j, k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = Math.floor((x[j] + 128) / 256);\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n for (i = 0; i < 32; i++) {\n x[i+1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\n\nfunction reduce(r) {\n var x = new Float64Array(64), i;\n for (i = 0; i < 64; i++) x[i] = r[i];\n for (i = 0; i < 64; i++) r[i] = 0;\n modL(r, x);\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(sm, m, n, sk) {\n var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n var smlen = n + 64;\n for (i = 0; i < n; i++) sm[64 + i] = m[i];\n for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n crypto_hash(r, sm.subarray(32), n+32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for (i = 32; i < 64; i++) sm[i] = sk[i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n\n for (i = 0; i < 64; i++) x[i] = 0;\n for (i = 0; i < 32; i++) x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i+j] += h[i] * d[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return smlen;\n}\n\nfunction unpackneg(r, p) {\n var t = gf(), chk = gf(), num = gf(),\n den = gf(), den2 = gf(), den4 = gf(),\n den6 = gf();\n\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) M(r[0], r[0], I);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) return -1;\n\n if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);\n\n M(r[3], r[0], r[1]);\n return 0;\n}\n\nfunction crypto_sign_open(m, sm, n, pk) {\n var i;\n var t = new Uint8Array(32), h = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()],\n q = [gf(), gf(), gf(), gf()];\n\n if (n < 64) return -1;\n\n if (unpackneg(q, pk)) return -1;\n\n for (i = 0; i < n; i++) m[i] = sm[i];\n for (i = 0; i < 32; i++) m[i+32] = pk[i];\n crypto_hash(h, m, n);\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n\n n -= 64;\n if (crypto_verify_32(sm, 0, t, 0)) {\n for (i = 0; i < n; i++) m[i] = 0;\n return -1;\n }\n\n for (i = 0; i < n; i++) m[i] = sm[i + 64];\n return n;\n}\n\nvar crypto_secretbox_KEYBYTES = 32,\n crypto_secretbox_NONCEBYTES = 24,\n crypto_secretbox_ZEROBYTES = 32,\n crypto_secretbox_BOXZEROBYTES = 16,\n crypto_scalarmult_BYTES = 32,\n crypto_scalarmult_SCALARBYTES = 32,\n crypto_box_PUBLICKEYBYTES = 32,\n crypto_box_SECRETKEYBYTES = 32,\n crypto_box_BEFORENMBYTES = 32,\n crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES,\n crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES,\n crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES,\n crypto_sign_BYTES = 64,\n crypto_sign_PUBLICKEYBYTES = 32,\n crypto_sign_SECRETKEYBYTES = 64,\n crypto_sign_SEEDBYTES = 32,\n crypto_hash_BYTES = 64;\n\nnacl.lowlevel = {\n crypto_core_hsalsa20: crypto_core_hsalsa20,\n crypto_stream_xor: crypto_stream_xor,\n crypto_stream: crypto_stream,\n crypto_stream_salsa20_xor: crypto_stream_salsa20_xor,\n crypto_stream_salsa20: crypto_stream_salsa20,\n crypto_onetimeauth: crypto_onetimeauth,\n crypto_onetimeauth_verify: crypto_onetimeauth_verify,\n crypto_verify_16: crypto_verify_16,\n crypto_verify_32: crypto_verify_32,\n crypto_secretbox: crypto_secretbox,\n crypto_secretbox_open: crypto_secretbox_open,\n crypto_scalarmult: crypto_scalarmult,\n crypto_scalarmult_base: crypto_scalarmult_base,\n crypto_box_beforenm: crypto_box_beforenm,\n crypto_box_afternm: crypto_box_afternm,\n crypto_box: crypto_box,\n crypto_box_open: crypto_box_open,\n crypto_box_keypair: crypto_box_keypair,\n crypto_hash: crypto_hash,\n crypto_sign: crypto_sign,\n crypto_sign_keypair: crypto_sign_keypair,\n crypto_sign_open: crypto_sign_open,\n\n crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES,\n crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES,\n crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES,\n crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES,\n crypto_scalarmult_BYTES: crypto_scalarmult_BYTES,\n crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES,\n crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES,\n crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES,\n crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES,\n crypto_box_NONCEBYTES: crypto_box_NONCEBYTES,\n crypto_box_ZEROBYTES: crypto_box_ZEROBYTES,\n crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES,\n crypto_sign_BYTES: crypto_sign_BYTES,\n crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES,\n crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES,\n crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES,\n crypto_hash_BYTES: crypto_hash_BYTES,\n\n gf: gf,\n D: D,\n L: L,\n pack25519: pack25519,\n unpack25519: unpack25519,\n M: M,\n A: A,\n S: S,\n Z: Z,\n pow2523: pow2523,\n add: add,\n set25519: set25519,\n modL: modL,\n scalarmult: scalarmult,\n scalarbase: scalarbase,\n};\n\n/* High-level API */\n\nfunction checkLengths(k, n) {\n if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size');\n if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size');\n}\n\nfunction checkBoxLengths(pk, sk) {\n if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size');\n if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size');\n}\n\nfunction checkArrayTypes() {\n for (var i = 0; i < arguments.length; i++) {\n if (!(arguments[i] instanceof Uint8Array))\n throw new TypeError('unexpected type, use Uint8Array');\n }\n}\n\nfunction cleanup(arr) {\n for (var i = 0; i < arr.length; i++) arr[i] = 0;\n}\n\nnacl.randomBytes = function(n) {\n var b = new Uint8Array(n);\n randombytes(b, n);\n return b;\n};\n\nnacl.secretbox = function(msg, nonce, key) {\n checkArrayTypes(msg, nonce, key);\n checkLengths(key, nonce);\n var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);\n var c = new Uint8Array(m.length);\n for (var i = 0; i < msg.length; i++) m[i+crypto_secretbox_ZEROBYTES] = msg[i];\n crypto_secretbox(c, m, m.length, nonce, key);\n return c.subarray(crypto_secretbox_BOXZEROBYTES);\n};\n\nnacl.secretbox.open = function(box, nonce, key) {\n checkArrayTypes(box, nonce, key);\n checkLengths(key, nonce);\n var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);\n var m = new Uint8Array(c.length);\n for (var i = 0; i < box.length; i++) c[i+crypto_secretbox_BOXZEROBYTES] = box[i];\n if (c.length < 32) return null;\n if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return null;\n return m.subarray(crypto_secretbox_ZEROBYTES);\n};\n\nnacl.secretbox.keyLength = crypto_secretbox_KEYBYTES;\nnacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES;\nnacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES;\n\nnacl.scalarMult = function(n, p) {\n checkArrayTypes(n, p);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult(q, n, p);\n return q;\n};\n\nnacl.scalarMult.base = function(n) {\n checkArrayTypes(n);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult_base(q, n);\n return q;\n};\n\nnacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES;\nnacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES;\n\nnacl.box = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox(msg, nonce, k);\n};\n\nnacl.box.before = function(publicKey, secretKey) {\n checkArrayTypes(publicKey, secretKey);\n checkBoxLengths(publicKey, secretKey);\n var k = new Uint8Array(crypto_box_BEFORENMBYTES);\n crypto_box_beforenm(k, publicKey, secretKey);\n return k;\n};\n\nnacl.box.after = nacl.secretbox;\n\nnacl.box.open = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox.open(msg, nonce, k);\n};\n\nnacl.box.open.after = nacl.secretbox.open;\n\nnacl.box.keyPair = function() {\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);\n crypto_box_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.box.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_box_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n crypto_scalarmult_base(pk, secretKey);\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES;\nnacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES;\nnacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES;\nnacl.box.nonceLength = crypto_box_NONCEBYTES;\nnacl.box.overheadLength = nacl.secretbox.overheadLength;\n\nnacl.sign = function(msg, secretKey) {\n checkArrayTypes(msg, secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);\n crypto_sign(signedMsg, msg, msg.length, secretKey);\n return signedMsg;\n};\n\nnacl.sign.open = function(signedMsg, publicKey) {\n checkArrayTypes(signedMsg, publicKey);\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var tmp = new Uint8Array(signedMsg.length);\n var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);\n if (mlen < 0) return null;\n var m = new Uint8Array(mlen);\n for (var i = 0; i < m.length; i++) m[i] = tmp[i];\n return m;\n};\n\nnacl.sign.detached = function(msg, secretKey) {\n var signedMsg = nacl.sign(msg, secretKey);\n var sig = new Uint8Array(crypto_sign_BYTES);\n for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n return sig;\n};\n\nnacl.sign.detached.verify = function(msg, sig, publicKey) {\n checkArrayTypes(msg, sig, publicKey);\n if (sig.length !== crypto_sign_BYTES)\n throw new Error('bad signature size');\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n var m = new Uint8Array(crypto_sign_BYTES + msg.length);\n var i;\n for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];\n return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n};\n\nnacl.sign.keyPair = function() {\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n crypto_sign_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign.keyPair.fromSeed = function(seed) {\n checkArrayTypes(seed);\n if (seed.length !== crypto_sign_SEEDBYTES)\n throw new Error('bad seed size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n for (var i = 0; i < 32; i++) sk[i] = seed[i];\n crypto_sign_keypair(pk, sk, true);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES;\nnacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES;\nnacl.sign.seedLength = crypto_sign_SEEDBYTES;\nnacl.sign.signatureLength = crypto_sign_BYTES;\n\nnacl.hash = function(msg) {\n checkArrayTypes(msg);\n var h = new Uint8Array(crypto_hash_BYTES);\n crypto_hash(h, msg, msg.length);\n return h;\n};\n\nnacl.hash.hashLength = crypto_hash_BYTES;\n\nnacl.verify = function(x, y) {\n checkArrayTypes(x, y);\n // Zero length arguments are considered not equal.\n if (x.length === 0 || y.length === 0) return false;\n if (x.length !== y.length) return false;\n return (vn(x, 0, y, 0, x.length) === 0) ? true : false;\n};\n\nnacl.setPRNG = function(fn) {\n randombytes = fn;\n};\n\n(function() {\n // Initialize PRNG if environment provides CSPRNG.\n // If not, methods calling randombytes will throw.\n var crypto = typeof self !== 'undefined' ? (self.crypto || self.msCrypto) : null;\n if (crypto && crypto.getRandomValues) {\n // Browsers.\n var QUOTA = 65536;\n nacl.setPRNG(function(x, n) {\n var i, v = new Uint8Array(n);\n for (i = 0; i < n; i += QUOTA) {\n crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n }\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n } else if (typeof require !== 'undefined') {\n // Node.js.\n crypto = require('crypto');\n if (crypto && crypto.randomBytes) {\n nacl.setPRNG(function(x, n) {\n var i, v = crypto.randomBytes(n);\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n }\n }\n})();\n\n})(typeof module !== 'undefined' && module.exports ? module.exports : (self.nacl = self.nacl || {}));\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bitsToBytes = exports.bytesToBits = exports.lpad = void 0;\nfunction lpad(str, padString, length) {\n while (str.length < length) {\n str = padString + str;\n }\n return str;\n}\nexports.lpad = lpad;\nfunction bytesToBits(bytes) {\n let res = '';\n for (let i = 0; i < bytes.length; i++) {\n let x = bytes.at(i);\n res += lpad(x.toString(2), '0', 8);\n }\n return res;\n}\nexports.bytesToBits = bytesToBits;\nfunction bitsToBytes(src) {\n if (src.length % 8 !== 0) {\n throw Error('Uneven bits');\n }\n let res = [];\n while (src.length > 0) {\n res.push(parseInt(src.slice(0, 8), 2));\n src = src.slice(8);\n }\n return Buffer.from(res);\n}\nexports.bitsToBytes = bitsToBytes;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wordlist = void 0;\nconst EN = ['abandon', 'ability', 'able', 'about', 'above', 'absent', 'absorb', 'abstract', 'absurd', 'abuse', 'access', 'accident', 'account', 'accuse', 'achieve', 'acid', 'acoustic', 'acquire', 'across', 'act', 'action', 'actor', 'actress', 'actual', 'adapt', 'add', 'addict', 'address', 'adjust', 'admit', 'adult', 'advance', 'advice', 'aerobic', 'affair', 'afford', 'afraid', 'again', 'age', 'agent', 'agree', 'ahead', 'aim', 'air', 'airport', 'aisle', 'alarm', 'album', 'alcohol', 'alert', 'alien', 'all', 'alley', 'allow', 'almost', 'alone', 'alpha', 'already', 'also', 'alter', 'always', 'amateur', 'amazing', 'among', 'amount', 'amused', 'analyst', 'anchor', 'ancient', 'anger', 'angle', 'angry', 'animal', 'ankle', 'announce', 'annual', 'another', 'answer', 'antenna', 'antique', 'anxiety', 'any', 'apart', 'apology', 'appear', 'apple', 'approve', 'april', 'arch', 'arctic', 'area', 'arena', 'argue', 'arm', 'armed', 'armor', 'army', 'around', 'arrange', 'arrest', 'arrive', 'arrow', 'art', 'artefact', 'artist', 'artwork', 'ask', 'aspect', 'assault', 'asset', 'assist', 'assume', 'asthma', 'athlete', 'atom', 'attack', 'attend', 'attitude', 'attract', 'auction', 'audit', 'august', 'aunt', 'author', 'auto', 'autumn', 'average', 'avocado', 'avoid', 'awake', 'aware', 'away', 'awesome', 'awful', 'awkward', 'axis',\n 'baby', 'bachelor', 'bacon', 'badge', 'bag', 'balance', 'balcony', 'ball', 'bamboo', 'banana', 'banner', 'bar', 'barely', 'bargain', 'barrel', 'base', 'basic', 'basket', 'battle', 'beach', 'bean', 'beauty', 'because', 'become', 'beef', 'before', 'begin', 'behave', 'behind', 'believe', 'below', 'belt', 'bench', 'benefit', 'best', 'betray', 'better', 'between', 'beyond', 'bicycle', 'bid', 'bike', 'bind', 'biology', 'bird', 'birth', 'bitter', 'black', 'blade', 'blame', 'blanket', 'blast', 'bleak', 'bless', 'blind', 'blood', 'blossom', 'blouse', 'blue', 'blur', 'blush', 'board', 'boat', 'body', 'boil', 'bomb', 'bone', 'bonus', 'book', 'boost', 'border', 'boring', 'borrow', 'boss', 'bottom', 'bounce', 'box', 'boy', 'bracket', 'brain', 'brand', 'brass', 'brave', 'bread', 'breeze', 'brick', 'bridge', 'brief', 'bright', 'bring', 'brisk', 'broccoli', 'broken', 'bronze', 'broom', 'brother', 'brown', 'brush', 'bubble', 'buddy', 'budget', 'buffalo', 'build', 'bulb', 'bulk', 'bullet', 'bundle', 'bunker', 'burden', 'burger', 'burst', 'bus', 'business', 'busy', 'butter', 'buyer', 'buzz',\n 'cabbage', 'cabin', 'cable', 'cactus', 'cage', 'cake', 'call', 'calm', 'camera', 'camp', 'can', 'canal', 'cancel', 'candy', 'cannon', 'canoe', 'canvas', 'canyon', 'capable', 'capital', 'captain', 'car', 'carbon', 'card', 'cargo', 'carpet', 'carry', 'cart', 'case', 'cash', 'casino', 'castle', 'casual', 'cat', 'catalog', 'catch', 'category', 'cattle', 'caught', 'cause', 'caution', 'cave', 'ceiling', 'celery', 'cement', 'census', 'century', 'cereal', 'certain', 'chair', 'chalk', 'champion', 'change', 'chaos', 'chapter', 'charge', 'chase', 'chat', 'cheap', 'check', 'cheese', 'chef', 'cherry', 'chest', 'chicken', 'chief', 'child', 'chimney', 'choice', 'choose', 'chronic', 'chuckle', 'chunk', 'churn', 'cigar', 'cinnamon', 'circle', 'citizen', 'city', 'civil', 'claim', 'clap', 'clarify', 'claw', 'clay', 'clean', 'clerk', 'clever', 'click', 'client', 'cliff', 'climb', 'clinic', 'clip', 'clock', 'clog', 'close', 'cloth', 'cloud', 'clown', 'club', 'clump', 'cluster', 'clutch', 'coach', 'coast', 'coconut', 'code', 'coffee', 'coil', 'coin', 'collect', 'color', 'column', 'combine', 'come', 'comfort', 'comic', 'common', 'company', 'concert', 'conduct', 'confirm', 'congress', 'connect', 'consider', 'control', 'convince', 'cook', 'cool', 'copper', 'copy', 'coral', 'core', 'corn', 'correct', 'cost', 'cotton', 'couch', 'country', 'couple', 'course', 'cousin', 'cover', 'coyote', 'crack', 'cradle', 'craft', 'cram', 'crane', 'crash', 'crater', 'crawl', 'crazy', 'cream', 'credit', 'creek', 'crew', 'cricket', 'crime', 'crisp', 'critic', 'crop', 'cross', 'crouch', 'crowd', 'crucial', 'cruel', 'cruise', 'crumble', 'crunch', 'crush', 'cry', 'crystal', 'cube', 'culture', 'cup', 'cupboard', 'curious', 'current', 'curtain', 'curve', 'cushion', 'custom', 'cute', 'cycle',\n 'dad', 'damage', 'damp', 'dance', 'danger', 'daring', 'dash', 'daughter', 'dawn', 'day', 'deal', 'debate', 'debris', 'decade', 'december', 'decide', 'decline', 'decorate', 'decrease', 'deer', 'defense', 'define', 'defy', 'degree', 'delay', 'deliver', 'demand', 'demise', 'denial', 'dentist', 'deny', 'depart', 'depend', 'deposit', 'depth', 'deputy', 'derive', 'describe', 'desert', 'design', 'desk', 'despair', 'destroy', 'detail', 'detect', 'develop', 'device', 'devote', 'diagram', 'dial', 'diamond', 'diary', 'dice', 'diesel', 'diet', 'differ', 'digital', 'dignity', 'dilemma', 'dinner', 'dinosaur', 'direct', 'dirt', 'disagree', 'discover', 'disease', 'dish', 'dismiss', 'disorder', 'display', 'distance', 'divert', 'divide', 'divorce', 'dizzy', 'doctor', 'document', 'dog', 'doll', 'dolphin', 'domain', 'donate', 'donkey', 'donor', 'door', 'dose', 'double', 'dove', 'draft', 'dragon', 'drama', 'drastic', 'draw', 'dream', 'dress', 'drift', 'drill', 'drink', 'drip', 'drive', 'drop', 'drum', 'dry', 'duck', 'dumb', 'dune', 'during', 'dust', 'dutch', 'duty', 'dwarf', 'dynamic',\n 'eager', 'eagle', 'early', 'earn', 'earth', 'easily', 'east', 'easy', 'echo', 'ecology', 'economy', 'edge', 'edit', 'educate', 'effort', 'egg', 'eight', 'either', 'elbow', 'elder', 'electric', 'elegant', 'element', 'elephant', 'elevator', 'elite', 'else', 'embark', 'embody', 'embrace', 'emerge', 'emotion', 'employ', 'empower', 'empty', 'enable', 'enact', 'end', 'endless', 'endorse', 'enemy', 'energy', 'enforce', 'engage', 'engine', 'enhance', 'enjoy', 'enlist', 'enough', 'enrich', 'enroll', 'ensure', 'enter', 'entire', 'entry', 'envelope', 'episode', 'equal', 'equip', 'era', 'erase', 'erode', 'erosion', 'error', 'erupt', 'escape', 'essay', 'essence', 'estate', 'eternal', 'ethics', 'evidence', 'evil', 'evoke', 'evolve', 'exact', 'example', 'excess', 'exchange', 'excite', 'exclude', 'excuse', 'execute', 'exercise', 'exhaust', 'exhibit', 'exile', 'exist', 'exit', 'exotic', 'expand', 'expect', 'expire', 'explain', 'expose', 'express', 'extend', 'extra', 'eye', 'eyebrow',\n 'fabric', 'face', 'faculty', 'fade', 'faint', 'faith', 'fall', 'false', 'fame', 'family', 'famous', 'fan', 'fancy', 'fantasy', 'farm', 'fashion', 'fat', 'fatal', 'father', 'fatigue', 'fault', 'favorite', 'feature', 'february', 'federal', 'fee', 'feed', 'feel', 'female', 'fence', 'festival', 'fetch', 'fever', 'few', 'fiber', 'fiction', 'field', 'figure', 'file', 'film', 'filter', 'final', 'find', 'fine', 'finger', 'finish', 'fire', 'firm', 'first', 'fiscal', 'fish', 'fit', 'fitness', 'fix', 'flag', 'flame', 'flash', 'flat', 'flavor', 'flee', 'flight', 'flip', 'float', 'flock', 'floor', 'flower', 'fluid', 'flush', 'fly', 'foam', 'focus', 'fog', 'foil', 'fold', 'follow', 'food', 'foot', 'force', 'forest', 'forget', 'fork', 'fortune', 'forum', 'forward', 'fossil', 'foster', 'found', 'fox', 'fragile', 'frame', 'frequent', 'fresh', 'friend', 'fringe', 'frog', 'front', 'frost', 'frown', 'frozen', 'fruit', 'fuel', 'fun', 'funny', 'furnace', 'fury', 'future',\n 'gadget', 'gain', 'galaxy', 'gallery', 'game', 'gap', 'garage', 'garbage', 'garden', 'garlic', 'garment', 'gas', 'gasp', 'gate', 'gather', 'gauge', 'gaze', 'general', 'genius', 'genre', 'gentle', 'genuine', 'gesture', 'ghost', 'giant', 'gift', 'giggle', 'ginger', 'giraffe', 'girl', 'give', 'glad', 'glance', 'glare', 'glass', 'glide', 'glimpse', 'globe', 'gloom', 'glory', 'glove', 'glow', 'glue', 'goat', 'goddess', 'gold', 'good', 'goose', 'gorilla', 'gospel', 'gossip', 'govern', 'gown', 'grab', 'grace', 'grain', 'grant', 'grape', 'grass', 'gravity', 'great', 'green', 'grid', 'grief', 'grit', 'grocery', 'group', 'grow', 'grunt', 'guard', 'guess', 'guide', 'guilt', 'guitar', 'gun', 'gym',\n 'habit', 'hair', 'half', 'hammer', 'hamster', 'hand', 'happy', 'harbor', 'hard', 'harsh', 'harvest', 'hat', 'have', 'hawk', 'hazard', 'head', 'health', 'heart', 'heavy', 'hedgehog', 'height', 'hello', 'helmet', 'help', 'hen', 'hero', 'hidden', 'high', 'hill', 'hint', 'hip', 'hire', 'history', 'hobby', 'hockey', 'hold', 'hole', 'holiday', 'hollow', 'home', 'honey', 'hood', 'hope', 'horn', 'horror', 'horse', 'hospital', 'host', 'hotel', 'hour', 'hover', 'hub', 'huge', 'human', 'humble', 'humor', 'hundred', 'hungry', 'hunt', 'hurdle', 'hurry', 'hurt', 'husband', 'hybrid',\n 'ice', 'icon', 'idea', 'identify', 'idle', 'ignore', 'ill', 'illegal', 'illness', 'image', 'imitate', 'immense', 'immune', 'impact', 'impose', 'improve', 'impulse', 'inch', 'include', 'income', 'increase', 'index', 'indicate', 'indoor', 'industry', 'infant', 'inflict', 'inform', 'inhale', 'inherit', 'initial', 'inject', 'injury', 'inmate', 'inner', 'innocent', 'input', 'inquiry', 'insane', 'insect', 'inside', 'inspire', 'install', 'intact', 'interest', 'into', 'invest', 'invite', 'involve', 'iron', 'island', 'isolate', 'issue', 'item', 'ivory',\n 'jacket', 'jaguar', 'jar', 'jazz', 'jealous', 'jeans', 'jelly', 'jewel', 'job', 'join', 'joke', 'journey', 'joy', 'judge', 'juice', 'jump', 'jungle', 'junior', 'junk', 'just',\n 'kangaroo', 'keen', 'keep', 'ketchup', 'key', 'kick', 'kid', 'kidney', 'kind', 'kingdom', 'kiss', 'kit', 'kitchen', 'kite', 'kitten', 'kiwi', 'knee', 'knife', 'knock', 'know',\n 'lab', 'label', 'labor', 'ladder', 'lady', 'lake', 'lamp', 'language', 'laptop', 'large', 'later', 'latin', 'laugh', 'laundry', 'lava', 'law', 'lawn', 'lawsuit', 'layer', 'lazy', 'leader', 'leaf', 'learn', 'leave', 'lecture', 'left', 'leg', 'legal', 'legend', 'leisure', 'lemon', 'lend', 'length', 'lens', 'leopard', 'lesson', 'letter', 'level', 'liar', 'liberty', 'library', 'license', 'life', 'lift', 'light', 'like', 'limb', 'limit', 'link', 'lion', 'liquid', 'list', 'little', 'live', 'lizard', 'load', 'loan', 'lobster', 'local', 'lock', 'logic', 'lonely', 'long', 'loop', 'lottery', 'loud', 'lounge', 'love', 'loyal', 'lucky', 'luggage', 'lumber', 'lunar', 'lunch', 'luxury', 'lyrics',\n 'machine', 'mad', 'magic', 'magnet', 'maid', 'mail', 'main', 'major', 'make', 'mammal', 'man', 'manage', 'mandate', 'mango', 'mansion', 'manual', 'maple', 'marble', 'march', 'margin', 'marine', 'market', 'marriage', 'mask', 'mass', 'master', 'match', 'material', 'math', 'matrix', 'matter', 'maximum', 'maze', 'meadow', 'mean', 'measure', 'meat', 'mechanic', 'medal', 'media', 'melody', 'melt', 'member', 'memory', 'mention', 'menu', 'mercy', 'merge', 'merit', 'merry', 'mesh', 'message', 'metal', 'method', 'middle', 'midnight', 'milk', 'million', 'mimic', 'mind', 'minimum', 'minor', 'minute', 'miracle', 'mirror', 'misery', 'miss', 'mistake', 'mix', 'mixed', 'mixture', 'mobile', 'model', 'modify', 'mom', 'moment', 'monitor', 'monkey', 'monster', 'month', 'moon', 'moral', 'more', 'morning', 'mosquito', 'mother', 'motion', 'motor', 'mountain', 'mouse', 'move', 'movie', 'much', 'muffin', 'mule', 'multiply', 'muscle', 'museum', 'mushroom', 'music', 'must', 'mutual', 'myself', 'mystery', 'myth',\n 'naive', 'name', 'napkin', 'narrow', 'nasty', 'nation', 'nature', 'near', 'neck', 'need', 'negative', 'neglect', 'neither', 'nephew', 'nerve', 'nest', 'net', 'network', 'neutral', 'never', 'news', 'next', 'nice', 'night', 'noble', 'noise', 'nominee', 'noodle', 'normal', 'north', 'nose', 'notable', 'note', 'nothing', 'notice', 'novel', 'now', 'nuclear', 'number', 'nurse', 'nut',\n 'oak', 'obey', 'object', 'oblige', 'obscure', 'observe', 'obtain', 'obvious', 'occur', 'ocean', 'october', 'odor', 'off', 'offer', 'office', 'often', 'oil', 'okay', 'old', 'olive', 'olympic', 'omit', 'once', 'one', 'onion', 'online', 'only', 'open', 'opera', 'opinion', 'oppose', 'option', 'orange', 'orbit', 'orchard', 'order', 'ordinary', 'organ', 'orient', 'original', 'orphan', 'ostrich', 'other', 'outdoor', 'outer', 'output', 'outside', 'oval', 'oven', 'over', 'own', 'owner', 'oxygen', 'oyster', 'ozone',\n 'pact', 'paddle', 'page', 'pair', 'palace', 'palm', 'panda', 'panel', 'panic', 'panther', 'paper', 'parade', 'parent', 'park', 'parrot', 'party', 'pass', 'patch', 'path', 'patient', 'patrol', 'pattern', 'pause', 'pave', 'payment', 'peace', 'peanut', 'pear', 'peasant', 'pelican', 'pen', 'penalty', 'pencil', 'people', 'pepper', 'perfect', 'permit', 'person', 'pet', 'phone', 'photo', 'phrase', 'physical', 'piano', 'picnic', 'picture', 'piece', 'pig', 'pigeon', 'pill', 'pilot', 'pink', 'pioneer', 'pipe', 'pistol', 'pitch', 'pizza', 'place', 'planet', 'plastic', 'plate', 'play', 'please', 'pledge', 'pluck', 'plug', 'plunge', 'poem', 'poet', 'point', 'polar', 'pole', 'police', 'pond', 'pony', 'pool', 'popular', 'portion', 'position', 'possible', 'post', 'potato', 'pottery', 'poverty', 'powder', 'power', 'practice', 'praise', 'predict', 'prefer', 'prepare', 'present', 'pretty', 'prevent', 'price', 'pride', 'primary', 'print', 'priority', 'prison', 'private', 'prize', 'problem', 'process', 'produce', 'profit', 'program', 'project', 'promote', 'proof', 'property', 'prosper', 'protect', 'proud', 'provide', 'public', 'pudding', 'pull', 'pulp', 'pulse', 'pumpkin', 'punch', 'pupil', 'puppy', 'purchase', 'purity', 'purpose', 'purse', 'push', 'put', 'puzzle', 'pyramid',\n 'quality', 'quantum', 'quarter', 'question', 'quick', 'quit', 'quiz', 'quote',\n 'rabbit', 'raccoon', 'race', 'rack', 'radar', 'radio', 'rail', 'rain', 'raise', 'rally', 'ramp', 'ranch', 'random', 'range', 'rapid', 'rare', 'rate', 'rather', 'raven', 'raw', 'razor', 'ready', 'real', 'reason', 'rebel', 'rebuild', 'recall', 'receive', 'recipe', 'record', 'recycle', 'reduce', 'reflect', 'reform', 'refuse', 'region', 'regret', 'regular', 'reject', 'relax', 'release', 'relief', 'rely', 'remain', 'remember', 'remind', 'remove', 'render', 'renew', 'rent', 'reopen', 'repair', 'repeat', 'replace', 'report', 'require', 'rescue', 'resemble', 'resist', 'resource', 'response', 'result', 'retire', 'retreat', 'return', 'reunion', 'reveal', 'review', 'reward', 'rhythm', 'rib', 'ribbon', 'rice', 'rich', 'ride', 'ridge', 'rifle', 'right', 'rigid', 'ring', 'riot', 'ripple', 'risk', 'ritual', 'rival', 'river', 'road', 'roast', 'robot', 'robust', 'rocket', 'romance', 'roof', 'rookie', 'room', 'rose', 'rotate', 'rough', 'round', 'route', 'royal', 'rubber', 'rude', 'rug', 'rule', 'run', 'runway', 'rural',\n 'sad', 'saddle', 'sadness', 'safe', 'sail', 'salad', 'salmon', 'salon', 'salt', 'salute', 'same', 'sample', 'sand', 'satisfy', 'satoshi', 'sauce', 'sausage', 'save', 'say', 'scale', 'scan', 'scare', 'scatter', 'scene', 'scheme', 'school', 'science', 'scissors', 'scorpion', 'scout', 'scrap', 'screen', 'script', 'scrub', 'sea', 'search', 'season', 'seat', 'second', 'secret', 'section', 'security', 'seed', 'seek', 'segment', 'select', 'sell', 'seminar', 'senior', 'sense', 'sentence', 'series', 'service', 'session', 'settle', 'setup', 'seven', 'shadow', 'shaft', 'shallow', 'share', 'shed', 'shell', 'sheriff', 'shield', 'shift', 'shine', 'ship', 'shiver', 'shock', 'shoe', 'shoot', 'shop', 'short', 'shoulder', 'shove', 'shrimp', 'shrug', 'shuffle', 'shy', 'sibling', 'sick', 'side', 'siege', 'sight', 'sign', 'silent', 'silk', 'silly', 'silver', 'similar', 'simple', 'since', 'sing', 'siren', 'sister', 'situate', 'six', 'size', 'skate', 'sketch', 'ski', 'skill', 'skin', 'skirt', 'skull', 'slab', 'slam', 'sleep', 'slender', 'slice', 'slide', 'slight', 'slim', 'slogan', 'slot', 'slow', 'slush', 'small', 'smart', 'smile', 'smoke', 'smooth', 'snack', 'snake', 'snap', 'sniff', 'snow', 'soap', 'soccer', 'social', 'sock', 'soda', 'soft', 'solar', 'soldier', 'solid', 'solution', 'solve', 'someone', 'song', 'soon', 'sorry', 'sort', 'soul', 'sound', 'soup', 'source', 'south', 'space', 'spare', 'spatial', 'spawn', 'speak', 'special', 'speed', 'spell', 'spend', 'sphere', 'spice', 'spider', 'spike', 'spin', 'spirit', 'split', 'spoil', 'sponsor', 'spoon', 'sport', 'spot', 'spray', 'spread', 'spring', 'spy', 'square', 'squeeze', 'squirrel', 'stable', 'stadium', 'staff', 'stage', 'stairs', 'stamp', 'stand', 'start', 'state', 'stay', 'steak', 'steel', 'stem', 'step', 'stereo', 'stick', 'still', 'sting', 'stock', 'stomach', 'stone', 'stool', 'story', 'stove', 'strategy', 'street', 'strike', 'strong', 'struggle', 'student', 'stuff', 'stumble', 'style', 'subject', 'submit', 'subway', 'success', 'such', 'sudden', 'suffer', 'sugar', 'suggest', 'suit', 'summer', 'sun', 'sunny', 'sunset', 'super', 'supply', 'supreme', 'sure', 'surface', 'surge', 'surprise', 'surround', 'survey', 'suspect', 'sustain', 'swallow', 'swamp', 'swap', 'swarm', 'swear', 'sweet', 'swift', 'swim', 'swing', 'switch', 'sword', 'symbol', 'symptom', 'syrup', 'system',\n 'table', 'tackle', 'tag', 'tail', 'talent', 'talk', 'tank', 'tape', 'target', 'task', 'taste', 'tattoo', 'taxi', 'teach', 'team', 'tell', 'ten', 'tenant', 'tennis', 'tent', 'term', 'test', 'text', 'thank', 'that', 'theme', 'then', 'theory', 'there', 'they', 'thing', 'this', 'thought', 'three', 'thrive', 'throw', 'thumb', 'thunder', 'ticket', 'tide', 'tiger', 'tilt', 'timber', 'time', 'tiny', 'tip', 'tired', 'tissue', 'title', 'toast', 'tobacco', 'today', 'toddler', 'toe', 'together', 'toilet', 'token', 'tomato', 'tomorrow', 'tone', 'tongue', 'tonight', 'tool', 'tooth', 'top', 'topic', 'topple', 'torch', 'tornado', 'tortoise', 'toss', 'total', 'tourist', 'toward', 'tower', 'town', 'toy', 'track', 'trade', 'traffic', 'tragic', 'train', 'transfer', 'trap', 'trash', 'travel', 'tray', 'treat', 'tree', 'trend', 'trial', 'tribe', 'trick', 'trigger', 'trim', 'trip', 'trophy', 'trouble', 'truck', 'true', 'truly', 'trumpet', 'trust', 'truth', 'try', 'tube', 'tuition', 'tumble', 'tuna', 'tunnel', 'turkey', 'turn', 'turtle', 'twelve', 'twenty', 'twice', 'twin', 'twist', 'two', 'type', 'typical',\n 'ugly', 'umbrella', 'unable', 'unaware', 'uncle', 'uncover', 'under', 'undo', 'unfair', 'unfold', 'unhappy', 'uniform', 'unique', 'unit', 'universe', 'unknown', 'unlock', 'until', 'unusual', 'unveil', 'update', 'upgrade', 'uphold', 'upon', 'upper', 'upset', 'urban', 'urge', 'usage', 'use', 'used', 'useful', 'useless', 'usual', 'utility',\n 'vacant', 'vacuum', 'vague', 'valid', 'valley', 'valve', 'van', 'vanish', 'vapor', 'various', 'vast', 'vault', 'vehicle', 'velvet', 'vendor', 'venture', 'venue', 'verb', 'verify', 'version', 'very', 'vessel', 'veteran', 'viable', 'vibrant', 'vicious', 'victory', 'video', 'view', 'village', 'vintage', 'violin', 'virtual', 'virus', 'visa', 'visit', 'visual', 'vital', 'vivid', 'vocal', 'voice', 'void', 'volcano', 'volume', 'vote', 'voyage',\n 'wage', 'wagon', 'wait', 'walk', 'wall', 'walnut', 'want', 'warfare', 'warm', 'warrior', 'wash', 'wasp', 'waste', 'water', 'wave', 'way', 'wealth', 'weapon', 'wear', 'weasel', 'weather', 'web', 'wedding', 'weekend', 'weird', 'welcome', 'west', 'wet', 'whale', 'what', 'wheat', 'wheel', 'when', 'where', 'whip', 'whisper', 'wide', 'width', 'wife', 'wild', 'will', 'win', 'window', 'wine', 'wing', 'wink', 'winner', 'winter', 'wire', 'wisdom', 'wise', 'wish', 'witness', 'wolf', 'woman', 'wonder', 'wood', 'wool', 'word', 'work', 'world', 'worry', 'worth', 'wrap', 'wreck', 'wrestle', 'wrist', 'write', 'wrong',\n 'yard', 'year', 'yellow', 'you', 'young', 'youth',\n 'zebra', 'zero', 'zone', 'zoo'];\nexports.wordlist = EN;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mnemonicFromRandomSeed = exports.mnemonicIndexesToBytes = exports.bytesToMnemonics = exports.bytesToMnemonicIndexes = exports.mnemonicNew = exports.mnemonicValidate = exports.mnemonicToHDSeed = exports.mnemonicToWalletKey = exports.mnemonicToPrivateKey = exports.mnemonicToSeed = exports.mnemonicToEntropy = void 0;\nconst tweetnacl_1 = __importDefault(require(\"tweetnacl\"));\nconst getSecureRandom_1 = require(\"../primitives/getSecureRandom\");\nconst hmac_sha512_1 = require(\"../primitives/hmac_sha512\");\nconst pbkdf2_sha512_1 = require(\"../primitives/pbkdf2_sha512\");\nconst binary_1 = require(\"../utils/binary\");\nconst wordlist_1 = require(\"./wordlist\");\nconst PBKDF_ITERATIONS = 100000;\nasync function isPasswordNeeded(mnemonicArray) {\n const passlessEntropy = await mnemonicToEntropy(mnemonicArray);\n return (await isPasswordSeed(passlessEntropy)) && !(await isBasicSeed(passlessEntropy));\n}\nfunction normalizeMnemonic(src) {\n return src.map((v) => v.toLowerCase().trim());\n}\nasync function isBasicSeed(entropy) {\n // https://github.com/ton-blockchain/ton/blob/24dc184a2ea67f9c47042b4104bbb4d82289fac1/tonlib/tonlib/keys/Mnemonic.cpp#L68\n // bool Mnemonic::is_basic_seed() {\n // td::SecureString hash(64);\n // td::pbkdf2_sha512(as_slice(to_entropy()), \"TON seed version\", td::max(1, PBKDF_ITERATIONS / 256),\n // hash.as_mutable_slice());\n // return hash.as_slice()[0] == 0;\n // }\n const seed = await (0, pbkdf2_sha512_1.pbkdf2_sha512)(entropy, 'TON seed version', Math.max(1, Math.floor(PBKDF_ITERATIONS / 256)), 64);\n return seed[0] == 0;\n}\nasync function isPasswordSeed(entropy) {\n // https://github.com/ton-blockchain/ton/blob/24dc184a2ea67f9c47042b4104bbb4d82289fac1/tonlib/tonlib/keys/Mnemonic.cpp#L75\n // bool Mnemonic::is_password_seed() {\n // td::SecureString hash(64);\n // td::pbkdf2_sha512(as_slice(to_entropy()), \"TON fast seed version\", 1, hash.as_mutable_slice());\n // return hash.as_slice()[0] == 1;\n // }\n const seed = await (0, pbkdf2_sha512_1.pbkdf2_sha512)(entropy, 'TON fast seed version', 1, 64);\n return seed[0] == 1;\n}\nasync function mnemonicToEntropy(mnemonicArray, password) {\n // https://github.com/ton-blockchain/ton/blob/24dc184a2ea67f9c47042b4104bbb4d82289fac1/tonlib/tonlib/keys/Mnemonic.cpp#L52\n // td::SecureString Mnemonic::to_entropy() const {\n // td::SecureString res(64);\n // td::hmac_sha512(join(words_), password_, res.as_mutable_slice());\n // return res;\n // }\n return await (0, hmac_sha512_1.hmac_sha512)(mnemonicArray.join(' '), password && password.length > 0 ? password : '');\n}\nexports.mnemonicToEntropy = mnemonicToEntropy;\nasync function mnemonicToSeed(mnemonicArray, seed, password) {\n // https://github.com/ton-blockchain/ton/blob/24dc184a2ea67f9c47042b4104bbb4d82289fac1/tonlib/tonlib/keys/Mnemonic.cpp#L58\n // td::SecureString Mnemonic::to_seed() const {\n // td::SecureString hash(64);\n // td::pbkdf2_sha512(as_slice(to_entropy()), \"TON default seed\", PBKDF_ITERATIONS, hash.as_mutable_slice());\n // return hash;\n // }\n const entropy = await mnemonicToEntropy(mnemonicArray, password);\n return await (0, pbkdf2_sha512_1.pbkdf2_sha512)(entropy, seed, PBKDF_ITERATIONS, 64);\n}\nexports.mnemonicToSeed = mnemonicToSeed;\n/**\n * Extract private key from mnemonic\n * @param mnemonicArray mnemonic array\n * @param password mnemonic password\n * @returns Key Pair\n */\nasync function mnemonicToPrivateKey(mnemonicArray, password) {\n // https://github.com/ton-blockchain/ton/blob/24dc184a2ea67f9c47042b4104bbb4d82289fac1/tonlib/tonlib/keys/Mnemonic.cpp#L64\n // td::Ed25519::PrivateKey Mnemonic::to_private_key() const {\n // return td::Ed25519::PrivateKey(td::SecureString(as_slice(to_seed()).substr(0, td::Ed25519::PrivateKey::LENGTH)));\n // }\n mnemonicArray = normalizeMnemonic(mnemonicArray);\n const seed = (await mnemonicToSeed(mnemonicArray, 'TON default seed', password));\n let keyPair = tweetnacl_1.default.sign.keyPair.fromSeed(seed.slice(0, 32));\n return {\n publicKey: Buffer.from(keyPair.publicKey),\n secretKey: Buffer.from(keyPair.secretKey)\n };\n}\nexports.mnemonicToPrivateKey = mnemonicToPrivateKey;\n/**\n * Convert mnemonic to wallet key pair\n * @param mnemonicArray mnemonic array\n * @param password mnemonic password\n * @returns Key Pair\n */\nasync function mnemonicToWalletKey(mnemonicArray, password) {\n let seedPk = await mnemonicToPrivateKey(mnemonicArray, password);\n let seedSecret = seedPk.secretKey.slice(0, 32);\n const keyPair = tweetnacl_1.default.sign.keyPair.fromSeed(seedSecret);\n return {\n publicKey: Buffer.from(keyPair.publicKey),\n secretKey: Buffer.from(keyPair.secretKey)\n };\n}\nexports.mnemonicToWalletKey = mnemonicToWalletKey;\n/**\n * Convert mnemonics to HD seed\n * @param mnemonicArray mnemonic array\n * @param password mnemonic password\n * @returns 64 byte seed\n */\nasync function mnemonicToHDSeed(mnemonicArray, password) {\n mnemonicArray = normalizeMnemonic(mnemonicArray);\n return (await mnemonicToSeed(mnemonicArray, 'TON HD Keys seed', password));\n}\nexports.mnemonicToHDSeed = mnemonicToHDSeed;\n/**\n * Validate Mnemonic\n * @param mnemonicArray mnemonic array\n * @param password mnemonic password\n * @returns true for valid mnemonic\n */\nasync function mnemonicValidate(mnemonicArray, password) {\n // Normalize\n mnemonicArray = normalizeMnemonic(mnemonicArray);\n // Validate mnemonic words\n for (let word of mnemonicArray) {\n if (wordlist_1.wordlist.indexOf(word) < 0) {\n return false;\n }\n }\n // Check password\n if (password && password.length > 0) {\n if (!await isPasswordNeeded(mnemonicArray)) {\n return false;\n }\n }\n // Validate seed\n return await isBasicSeed(await mnemonicToEntropy(mnemonicArray, password));\n}\nexports.mnemonicValidate = mnemonicValidate;\n/**\n * Generate new Mnemonic\n * @param wordsCount number of words to generate\n * @param password mnemonic password\n * @returns\n */\nasync function mnemonicNew(wordsCount = 24, password) {\n // https://github.com/ton-blockchain/ton/blob/24dc184a2ea67f9c47042b4104bbb4d82289fac1/tonlib/tonlib/keys/Mnemonic.cpp#L159\n let mnemonicArray = [];\n while (true) {\n // Regenerate new mnemonics\n mnemonicArray = [];\n for (let i = 0; i < wordsCount; i++) {\n let ind = await (0, getSecureRandom_1.getSecureRandomNumber)(0, wordlist_1.wordlist.length);\n mnemonicArray.push(wordlist_1.wordlist[ind]);\n }\n // Chek password conformance\n if (password && password.length > 0) {\n if (!await isPasswordNeeded(mnemonicArray)) {\n continue;\n }\n }\n // Check if basic seed correct\n if (!(await isBasicSeed(await mnemonicToEntropy(mnemonicArray, password)))) {\n continue;\n }\n break;\n }\n return mnemonicArray;\n}\nexports.mnemonicNew = mnemonicNew;\n/**\n * Converts bytes to mnemonics array (could be invalid for TON)\n * @param src source buffer\n * @param wordsCount number of words\n */\nfunction bytesToMnemonicIndexes(src, wordsCount) {\n let bits = (0, binary_1.bytesToBits)(src);\n let indexes = [];\n for (let i = 0; i < wordsCount; i++) {\n let sl = bits.slice(i * 11, i * 11 + 11);\n indexes.push(parseInt(sl, 2));\n }\n return indexes;\n}\nexports.bytesToMnemonicIndexes = bytesToMnemonicIndexes;\nfunction bytesToMnemonics(src, wordsCount) {\n let mnemonics = bytesToMnemonicIndexes(src, wordsCount);\n let res = [];\n for (let m of mnemonics) {\n res.push(wordlist_1.wordlist[m]);\n }\n return res;\n}\nexports.bytesToMnemonics = bytesToMnemonics;\n/**\n * Converts mnemonics indexes to buffer with zero padding in the end\n * @param src source indexes\n * @returns Buffer\n */\nfunction mnemonicIndexesToBytes(src) {\n let res = '';\n for (let s of src) {\n if (!Number.isSafeInteger(s)) {\n throw Error('Invalid input');\n }\n if (s < 0 || s >= 2028) {\n throw Error('Invalid input');\n }\n res += (0, binary_1.lpad)(s.toString(2), '0', 11);\n }\n while (res.length % 8 !== 0) {\n res = res + '0';\n }\n return (0, binary_1.bitsToBytes)(res);\n}\nexports.mnemonicIndexesToBytes = mnemonicIndexesToBytes;\n/**\n * Generates deterministically mnemonics\n * @param seed\n * @param wordsCount\n * @param password\n */\nasync function mnemonicFromRandomSeed(seed, wordsCount = 24, password) {\n const bytesLength = Math.ceil(wordsCount * 11 / 8);\n let currentSeed = seed;\n while (true) {\n // Create entropy\n let entropy = await (0, pbkdf2_sha512_1.pbkdf2_sha512)(currentSeed, 'TON mnemonic seed', Math.max(1, Math.floor(PBKDF_ITERATIONS / 256)), bytesLength);\n // Create mnemonics\n let mnemonics = bytesToMnemonics(entropy, wordsCount);\n // Check if mnemonics are valid\n if (await mnemonicValidate(mnemonics, password)) {\n return mnemonics;\n }\n currentSeed = entropy;\n }\n}\nexports.mnemonicFromRandomSeed = mnemonicFromRandomSeed;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.openBox = exports.sealBox = exports.signVerify = exports.sign = exports.keyPairFromSeed = exports.keyPairFromSecretKey = void 0;\nconst tweetnacl_1 = __importDefault(require(\"tweetnacl\"));\nfunction keyPairFromSecretKey(secretKey) {\n let res = tweetnacl_1.default.sign.keyPair.fromSecretKey(new Uint8Array(secretKey));\n return {\n publicKey: Buffer.from(res.publicKey),\n secretKey: Buffer.from(res.secretKey),\n };\n}\nexports.keyPairFromSecretKey = keyPairFromSecretKey;\nfunction keyPairFromSeed(secretKey) {\n let res = tweetnacl_1.default.sign.keyPair.fromSeed(new Uint8Array(secretKey));\n return {\n publicKey: Buffer.from(res.publicKey),\n secretKey: Buffer.from(res.secretKey),\n };\n}\nexports.keyPairFromSeed = keyPairFromSeed;\nfunction sign(data, secretKey) {\n return Buffer.from(tweetnacl_1.default.sign.detached(new Uint8Array(data), new Uint8Array(secretKey)));\n}\nexports.sign = sign;\nfunction signVerify(data, signature, publicKey) {\n return tweetnacl_1.default.sign.detached.verify(new Uint8Array(data), new Uint8Array(signature), new Uint8Array(publicKey));\n}\nexports.signVerify = signVerify;\nfunction sealBox(data, nonce, key) {\n return Buffer.from(tweetnacl_1.default.secretbox(data, nonce, key));\n}\nexports.sealBox = sealBox;\nfunction openBox(data, nonce, key) {\n let res = tweetnacl_1.default.secretbox.open(data, nonce, key);\n if (!res) {\n return null;\n }\n return Buffer.from(res);\n}\nexports.openBox = openBox;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deriveEd25519Path = exports.deriveED25519HardenedKey = exports.getED25519MasterKeyFromSeed = void 0;\nconst hmac_sha512_1 = require(\"../primitives/hmac_sha512\");\nconst ED25519_CURVE = 'ed25519 seed';\nconst HARDENED_OFFSET = 0x80000000;\nasync function getED25519MasterKeyFromSeed(seed) {\n const I = await (0, hmac_sha512_1.hmac_sha512)(ED25519_CURVE, seed);\n const IL = I.slice(0, 32);\n const IR = I.slice(32);\n return {\n key: IL,\n chainCode: IR,\n };\n}\nexports.getED25519MasterKeyFromSeed = getED25519MasterKeyFromSeed;\n;\nasync function deriveED25519HardenedKey(parent, index) {\n if (index >= HARDENED_OFFSET) {\n throw Error('Key index must be less than offset');\n }\n // Key Derive Path: 0x00 + parent.key + index;\n const indexBuffer = Buffer.alloc(4);\n indexBuffer.writeUInt32BE(index + HARDENED_OFFSET, 0);\n const data = Buffer.concat([Buffer.alloc(1, 0), parent.key, indexBuffer]);\n // Derive key\n const I = await (0, hmac_sha512_1.hmac_sha512)(parent.chainCode, data);\n const IL = I.slice(0, 32);\n const IR = I.slice(32);\n return {\n key: IL,\n chainCode: IR,\n };\n}\nexports.deriveED25519HardenedKey = deriveED25519HardenedKey;\n;\nasync function deriveEd25519Path(seed, path) {\n let state = await getED25519MasterKeyFromSeed(seed);\n let remaining = [...path];\n while (remaining.length > 0) {\n let index = remaining[0];\n remaining = remaining.slice(1);\n state = await deriveED25519HardenedKey(state, index);\n }\n return state.key;\n}\nexports.deriveEd25519Path = deriveEd25519Path;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deriveSymmetricPath = exports.deriveSymmetricHardenedKey = exports.getSymmetricMasterKeyFromSeed = void 0;\nconst hmac_sha512_1 = require(\"../primitives/hmac_sha512\");\nconst SYMMETRIC_SEED = 'Symmetric key seed';\nasync function getSymmetricMasterKeyFromSeed(seed) {\n const I = await (0, hmac_sha512_1.hmac_sha512)(SYMMETRIC_SEED, seed);\n const IL = I.slice(32);\n const IR = I.slice(0, 32);\n return {\n key: IL,\n chainCode: IR,\n };\n}\nexports.getSymmetricMasterKeyFromSeed = getSymmetricMasterKeyFromSeed;\n;\nasync function deriveSymmetricHardenedKey(parent, offset) {\n // Prepare data\n const data = Buffer.concat([Buffer.alloc(1, 0), Buffer.from(offset)]);\n // Derive key\n const I = await (0, hmac_sha512_1.hmac_sha512)(parent.chainCode, data);\n const IL = I.slice(32);\n const IR = I.slice(0, 32);\n return {\n key: IL,\n chainCode: IR,\n };\n}\nexports.deriveSymmetricHardenedKey = deriveSymmetricHardenedKey;\nasync function deriveSymmetricPath(seed, path) {\n let state = await getSymmetricMasterKeyFromSeed(seed);\n let remaining = [...path];\n while (remaining.length > 0) {\n let index = remaining[0];\n remaining = remaining.slice(1);\n state = await deriveSymmetricHardenedKey(state, index);\n }\n return state.key;\n}\nexports.deriveSymmetricPath = deriveSymmetricPath;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deriveMnemonicsPath = exports.deriveMnemonicHardenedKey = exports.getMnemonicsMasterKeyFromSeed = void 0;\nconst mnemonic_1 = require(\"../mnemonic/mnemonic\");\nconst hmac_sha512_1 = require(\"../primitives/hmac_sha512\");\nconst HARDENED_OFFSET = 0x80000000;\nconst MNEMONICS_SEED = 'TON Mnemonics HD seed';\nasync function getMnemonicsMasterKeyFromSeed(seed) {\n const I = await (0, hmac_sha512_1.hmac_sha512)(MNEMONICS_SEED, seed);\n const IL = I.slice(0, 32);\n const IR = I.slice(32);\n return {\n key: IL,\n chainCode: IR,\n };\n}\nexports.getMnemonicsMasterKeyFromSeed = getMnemonicsMasterKeyFromSeed;\n;\nasync function deriveMnemonicHardenedKey(parent, index) {\n if (index >= HARDENED_OFFSET) {\n throw Error('Key index must be less than offset');\n }\n // Key Derive Path: 0x00 + parent.key + index;\n const indexBuffer = Buffer.alloc(4);\n indexBuffer.writeUInt32BE(index + HARDENED_OFFSET, 0);\n const data = Buffer.concat([Buffer.alloc(1, 0), parent.key, indexBuffer]);\n // Derive key\n const I = await (0, hmac_sha512_1.hmac_sha512)(parent.chainCode, data);\n const IL = I.slice(0, 32);\n const IR = I.slice(32);\n return {\n key: IL,\n chainCode: IR,\n };\n}\nexports.deriveMnemonicHardenedKey = deriveMnemonicHardenedKey;\nasync function deriveMnemonicsPath(seed, path, wordsCount = 24, password) {\n let state = await getMnemonicsMasterKeyFromSeed(seed);\n let remaining = [...path];\n while (remaining.length > 0) {\n let index = remaining[0];\n remaining = remaining.slice(1);\n state = await deriveMnemonicHardenedKey(state, index);\n }\n return await (0, mnemonic_1.mnemonicFromRandomSeed)(state.key, wordsCount, password);\n}\nexports.deriveMnemonicsPath = deriveMnemonicsPath;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getMnemonicsMasterKeyFromSeed = exports.deriveMnemonicHardenedKey = exports.deriveMnemonicsPath = exports.deriveSymmetricPath = exports.deriveSymmetricHardenedKey = exports.getSymmetricMasterKeyFromSeed = exports.deriveEd25519Path = exports.deriveED25519HardenedKey = exports.getED25519MasterKeyFromSeed = exports.signVerify = exports.sign = exports.keyPairFromSecretKey = exports.keyPairFromSeed = exports.openBox = exports.sealBox = exports.mnemonicWordList = exports.mnemonicToHDSeed = exports.mnemonicToSeed = exports.mnemonicToWalletKey = exports.mnemonicToPrivateKey = exports.mnemonicValidate = exports.mnemonicNew = exports.newSecurePassphrase = exports.newSecureWords = exports.getSecureRandomNumber = exports.getSecureRandomWords = exports.getSecureRandomBytes = exports.hmac_sha512 = exports.pbkdf2_sha512 = exports.sha512_sync = exports.sha512 = exports.sha256_sync = exports.sha256 = void 0;\nvar sha256_1 = require(\"./primitives/sha256\");\nObject.defineProperty(exports, \"sha256\", { enumerable: true, get: function () { return sha256_1.sha256; } });\nObject.defineProperty(exports, \"sha256_sync\", { enumerable: true, get: function () { return sha256_1.sha256_sync; } });\nvar sha512_1 = require(\"./primitives/sha512\");\nObject.defineProperty(exports, \"sha512\", { enumerable: true, get: function () { return sha512_1.sha512; } });\nObject.defineProperty(exports, \"sha512_sync\", { enumerable: true, get: function () { return sha512_1.sha512_sync; } });\nvar pbkdf2_sha512_1 = require(\"./primitives/pbkdf2_sha512\");\nObject.defineProperty(exports, \"pbkdf2_sha512\", { enumerable: true, get: function () { return pbkdf2_sha512_1.pbkdf2_sha512; } });\nvar hmac_sha512_1 = require(\"./primitives/hmac_sha512\");\nObject.defineProperty(exports, \"hmac_sha512\", { enumerable: true, get: function () { return hmac_sha512_1.hmac_sha512; } });\nvar getSecureRandom_1 = require(\"./primitives/getSecureRandom\");\nObject.defineProperty(exports, \"getSecureRandomBytes\", { enumerable: true, get: function () { return getSecureRandom_1.getSecureRandomBytes; } });\nObject.defineProperty(exports, \"getSecureRandomWords\", { enumerable: true, get: function () { return getSecureRandom_1.getSecureRandomWords; } });\nObject.defineProperty(exports, \"getSecureRandomNumber\", { enumerable: true, get: function () { return getSecureRandom_1.getSecureRandomNumber; } });\nvar newSecureWords_1 = require(\"./passwords/newSecureWords\");\nObject.defineProperty(exports, \"newSecureWords\", { enumerable: true, get: function () { return newSecureWords_1.newSecureWords; } });\nvar newSecurePassphrase_1 = require(\"./passwords/newSecurePassphrase\");\nObject.defineProperty(exports, \"newSecurePassphrase\", { enumerable: true, get: function () { return newSecurePassphrase_1.newSecurePassphrase; } });\nvar mnemonic_1 = require(\"./mnemonic/mnemonic\");\nObject.defineProperty(exports, \"mnemonicNew\", { enumerable: true, get: function () { return mnemonic_1.mnemonicNew; } });\nObject.defineProperty(exports, \"mnemonicValidate\", { enumerable: true, get: function () { return mnemonic_1.mnemonicValidate; } });\nObject.defineProperty(exports, \"mnemonicToPrivateKey\", { enumerable: true, get: function () { return mnemonic_1.mnemonicToPrivateKey; } });\nObject.defineProperty(exports, \"mnemonicToWalletKey\", { enumerable: true, get: function () { return mnemonic_1.mnemonicToWalletKey; } });\nObject.defineProperty(exports, \"mnemonicToSeed\", { enumerable: true, get: function () { return mnemonic_1.mnemonicToSeed; } });\nObject.defineProperty(exports, \"mnemonicToHDSeed\", { enumerable: true, get: function () { return mnemonic_1.mnemonicToHDSeed; } });\nvar wordlist_1 = require(\"./mnemonic/wordlist\");\nObject.defineProperty(exports, \"mnemonicWordList\", { enumerable: true, get: function () { return wordlist_1.wordlist; } });\nvar nacl_1 = require(\"./primitives/nacl\");\nObject.defineProperty(exports, \"sealBox\", { enumerable: true, get: function () { return nacl_1.sealBox; } });\nObject.defineProperty(exports, \"openBox\", { enumerable: true, get: function () { return nacl_1.openBox; } });\nvar nacl_2 = require(\"./primitives/nacl\");\nObject.defineProperty(exports, \"keyPairFromSeed\", { enumerable: true, get: function () { return nacl_2.keyPairFromSeed; } });\nObject.defineProperty(exports, \"keyPairFromSecretKey\", { enumerable: true, get: function () { return nacl_2.keyPairFromSecretKey; } });\nObject.defineProperty(exports, \"sign\", { enumerable: true, get: function () { return nacl_2.sign; } });\nObject.defineProperty(exports, \"signVerify\", { enumerable: true, get: function () { return nacl_2.signVerify; } });\nvar ed25519_1 = require(\"./hd/ed25519\");\nObject.defineProperty(exports, \"getED25519MasterKeyFromSeed\", { enumerable: true, get: function () { return ed25519_1.getED25519MasterKeyFromSeed; } });\nObject.defineProperty(exports, \"deriveED25519HardenedKey\", { enumerable: true, get: function () { return ed25519_1.deriveED25519HardenedKey; } });\nObject.defineProperty(exports, \"deriveEd25519Path\", { enumerable: true, get: function () { return ed25519_1.deriveEd25519Path; } });\nvar symmetric_1 = require(\"./hd/symmetric\");\nObject.defineProperty(exports, \"getSymmetricMasterKeyFromSeed\", { enumerable: true, get: function () { return symmetric_1.getSymmetricMasterKeyFromSeed; } });\nObject.defineProperty(exports, \"deriveSymmetricHardenedKey\", { enumerable: true, get: function () { return symmetric_1.deriveSymmetricHardenedKey; } });\nObject.defineProperty(exports, \"deriveSymmetricPath\", { enumerable: true, get: function () { return symmetric_1.deriveSymmetricPath; } });\nvar mnemonics_1 = require(\"./hd/mnemonics\");\nObject.defineProperty(exports, \"deriveMnemonicsPath\", { enumerable: true, get: function () { return mnemonics_1.deriveMnemonicsPath; } });\nObject.defineProperty(exports, \"deriveMnemonicHardenedKey\", { enumerable: true, get: function () { return mnemonics_1.deriveMnemonicHardenedKey; } });\nObject.defineProperty(exports, \"getMnemonicsMasterKeyFromSeed\", { enumerable: true, get: function () { return mnemonics_1.getMnemonicsMasterKeyFromSeed; } });\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wonderCalculator = void 0;\nconst BitString_1 = require(\"../BitString\");\nconst CellType_1 = require(\"../CellType\");\nconst LevelMask_1 = require(\"./LevelMask\");\nconst exoticPruned_1 = require(\"./exoticPruned\");\nconst exoticMerkleProof_1 = require(\"./exoticMerkleProof\");\nconst descriptor_1 = require(\"./descriptor\");\nconst crypto_1 = require(\"@ton/crypto\");\nconst exoticMerkleUpdate_1 = require(\"./exoticMerkleUpdate\");\nconst exoticLibrary_1 = require(\"./exoticLibrary\");\n//\n// This function replicates unknown logic of resolving cell data\n// https://github.com/ton-blockchain/ton/blob/24dc184a2ea67f9c47042b4104bbb4d82289fac1/crypto/vm/cells/DataCell.cpp#L214\n//\nfunction wonderCalculator(type, bits, refs) {\n //\n // Resolving level mask\n //\n let levelMask;\n let pruned = null;\n if (type === CellType_1.CellType.Ordinary) {\n let mask = 0;\n for (let r of refs) {\n mask = mask | r.mask.value;\n }\n levelMask = new LevelMask_1.LevelMask(mask);\n }\n else if (type === CellType_1.CellType.PrunedBranch) {\n // Parse pruned\n pruned = (0, exoticPruned_1.exoticPruned)(bits, refs);\n // Load level\n levelMask = new LevelMask_1.LevelMask(pruned.mask);\n }\n else if (type === CellType_1.CellType.MerkleProof) {\n // Parse proof\n let loaded = (0, exoticMerkleProof_1.exoticMerkleProof)(bits, refs);\n // Load level\n levelMask = new LevelMask_1.LevelMask(refs[0].mask.value >> 1);\n }\n else if (type === CellType_1.CellType.MerkleUpdate) {\n // Parse update\n let loaded = (0, exoticMerkleUpdate_1.exoticMerkleUpdate)(bits, refs);\n // Load level\n levelMask = new LevelMask_1.LevelMask((refs[0].mask.value | refs[1].mask.value) >> 1);\n }\n else if (type === CellType_1.CellType.Library) {\n // Parse library\n let loaded = (0, exoticLibrary_1.exoticLibrary)(bits, refs);\n // Load level\n levelMask = new LevelMask_1.LevelMask();\n }\n else {\n throw new Error(\"Unsupported exotic type\");\n }\n //\n // Calculate hashes and depths\n // NOTE: https://github.com/ton-blockchain/ton/blob/24dc184a2ea67f9c47042b4104bbb4d82289fac1/crypto/vm/cells/DataCell.cpp#L214\n //\n let depths = [];\n let hashes = [];\n let hashCount = type === CellType_1.CellType.PrunedBranch ? 1 : levelMask.hashCount;\n let totalHashCount = levelMask.hashCount;\n let hashIOffset = totalHashCount - hashCount;\n for (let levelI = 0, hashI = 0; levelI <= levelMask.level; levelI++) {\n if (!levelMask.isSignificant(levelI)) {\n continue;\n }\n if (hashI < hashIOffset) {\n hashI++;\n continue;\n }\n //\n // Bits\n //\n let currentBits;\n if (hashI === hashIOffset) {\n if (!(levelI === 0 || type === CellType_1.CellType.PrunedBranch)) {\n throw Error('Invalid');\n }\n currentBits = bits;\n }\n else {\n if (!(levelI !== 0 && type !== CellType_1.CellType.PrunedBranch)) {\n throw Error('Invalid: ' + levelI + ', ' + type);\n }\n currentBits = new BitString_1.BitString(hashes[hashI - hashIOffset - 1], 0, 256);\n }\n //\n // Depth\n //\n let currentDepth = 0;\n for (let c of refs) {\n let childDepth;\n if (type == CellType_1.CellType.MerkleProof || type == CellType_1.CellType.MerkleUpdate) {\n childDepth = c.depth(levelI + 1);\n }\n else {\n childDepth = c.depth(levelI);\n }\n currentDepth = Math.max(currentDepth, childDepth);\n }\n if (refs.length > 0) {\n currentDepth++;\n }\n //\n // Hash\n //\n let repr = (0, descriptor_1.getRepr)(bits, currentBits, refs, levelI, levelMask.apply(levelI).value, type);\n let hash = (0, crypto_1.sha256_sync)(repr);\n //\n // Persist next\n //\n let destI = hashI - hashIOffset;\n depths[destI] = currentDepth;\n hashes[destI] = hash;\n //\n // Next\n //\n hashI++;\n }\n //\n // Calculate hash and depth for all levels\n //\n let resolvedHashes = [];\n let resolvedDepths = [];\n if (pruned) {\n for (let i = 0; i < 4; i++) {\n const { hashIndex } = levelMask.apply(i);\n const { hashIndex: thisHashIndex } = levelMask;\n if (hashIndex !== thisHashIndex) {\n resolvedHashes.push(pruned.pruned[hashIndex].hash);\n resolvedDepths.push(pruned.pruned[hashIndex].depth);\n }\n else {\n resolvedHashes.push(hashes[0]);\n resolvedDepths.push(depths[0]);\n }\n }\n }\n else {\n for (let i = 0; i < 4; i++) {\n resolvedHashes.push(hashes[levelMask.apply(i).hashIndex]);\n resolvedDepths.push(depths[levelMask.apply(i).hashIndex]);\n }\n }\n //\n // Result\n //\n return {\n mask: levelMask,\n hashes: resolvedHashes,\n depths: resolvedDepths\n };\n}\nexports.wonderCalculator = wonderCalculator;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.topologicalSort = void 0;\nfunction topologicalSort(src) {\n let pending = [src];\n let allCells = new Map();\n let notPermCells = new Set();\n let sorted = [];\n while (pending.length > 0) {\n const cells = [...pending];\n pending = [];\n for (let cell of cells) {\n const hash = cell.hash().toString('hex');\n if (allCells.has(hash)) {\n continue;\n }\n notPermCells.add(hash);\n allCells.set(hash, { cell: cell, refs: cell.refs.map((v) => v.hash().toString('hex')) });\n for (let r of cell.refs) {\n pending.push(r);\n }\n }\n }\n let tempMark = new Set();\n function visit(hash) {\n if (!notPermCells.has(hash)) {\n return;\n }\n if (tempMark.has(hash)) {\n throw Error('Not a DAG');\n }\n tempMark.add(hash);\n let refs = allCells.get(hash).refs;\n for (let ci = refs.length - 1; ci >= 0; ci--) {\n visit(refs[ci]);\n }\n sorted.push(hash);\n tempMark.delete(hash);\n notPermCells.delete(hash);\n }\n while (notPermCells.size > 0) {\n const id = Array.from(notPermCells)[0];\n visit(id);\n }\n let indexes = new Map();\n for (let i = 0; i < sorted.length; i++) {\n indexes.set(sorted[sorted.length - i - 1], i);\n }\n let result = [];\n for (let i = sorted.length - 1; i >= 0; i--) {\n let ent = sorted[i];\n const rrr = allCells.get(ent);\n result.push({ cell: rrr.cell, refs: rrr.refs.map((v) => indexes.get(v)) });\n }\n return result;\n}\nexports.topologicalSort = topologicalSort;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bitsForNumber = void 0;\nfunction bitsForNumber(src, mode) {\n let v = BigInt(src);\n // Handle negative values\n if (mode === 'int') {\n // Corner case for zero or -1 value\n if (v === 0n || v === -1n) {\n return 1;\n }\n let v2 = v > 0 ? v : -v;\n return (v2.toString(2).length + 1 /* Sign bit */);\n }\n else if (mode === 'uint') {\n if (v < 0) {\n throw Error(`value is negative. Got ${src}`);\n }\n return (v.toString(2).length);\n }\n else {\n throw Error(`invalid mode. Got ${mode}`);\n }\n}\nexports.bitsForNumber = bitsForNumber;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.crc32c = void 0;\nconst POLY = 0x82f63b78;\nfunction crc32c(source) {\n let crc = 0 ^ 0xffffffff;\n for (let n = 0; n < source.length; n++) {\n crc ^= source[n];\n crc = crc & 1 ? (crc >>> 1) ^ POLY : crc >>> 1;\n crc = crc & 1 ? (crc >>> 1) ^ POLY : crc >>> 1;\n crc = crc & 1 ? (crc >>> 1) ^ POLY : crc >>> 1;\n crc = crc & 1 ? (crc >>> 1) ^ POLY : crc >>> 1;\n crc = crc & 1 ? (crc >>> 1) ^ POLY : crc >>> 1;\n crc = crc & 1 ? (crc >>> 1) ^ POLY : crc >>> 1;\n crc = crc & 1 ? (crc >>> 1) ^ POLY : crc >>> 1;\n crc = crc & 1 ? (crc >>> 1) ^ POLY : crc >>> 1;\n }\n crc = crc ^ 0xffffffff;\n // Convert endianness\n let res = Buffer.alloc(4);\n res.writeInt32LE(crc);\n return res;\n}\nexports.crc32c = crc32c;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.serializeBoc = exports.deserializeBoc = exports.parseBoc = void 0;\nconst BitReader_1 = require(\"../BitReader\");\nconst BitString_1 = require(\"../BitString\");\nconst Cell_1 = require(\"../Cell\");\nconst topologicalSort_1 = require(\"./utils/topologicalSort\");\nconst bitsForNumber_1 = require(\"../../utils/bitsForNumber\");\nconst BitBuilder_1 = require(\"../BitBuilder\");\nconst descriptor_1 = require(\"./descriptor\");\nconst paddedBits_1 = require(\"../utils/paddedBits\");\nconst crc32c_1 = require(\"../../utils/crc32c\");\nfunction getHashesCount(levelMask) {\n return getHashesCountFromMask(levelMask & 7);\n}\nfunction getHashesCountFromMask(mask) {\n let n = 0;\n for (let i = 0; i < 3; i++) {\n n += (mask & 1);\n mask = mask >> 1;\n }\n return n + 1; // 1 repr + up to 3 higher hashes\n}\nfunction readCell(reader, sizeBytes) {\n // D1\n const d1 = reader.loadUint(8);\n const refsCount = d1 % 8;\n const exotic = !!(d1 & 8);\n // D2\n const d2 = reader.loadUint(8);\n const dataBytesize = Math.ceil(d2 / 2);\n const paddingAdded = !!(d2 % 2);\n const levelMask = d1 >> 5;\n const hasHashes = (d1 & 16) != 0;\n const hash_bytes = 32;\n const hashesSize = hasHashes ? getHashesCount(levelMask) * hash_bytes : 0;\n const depthSize = hasHashes ? getHashesCount(levelMask) * 2 : 0;\n reader.skip(hashesSize * 8);\n reader.skip(depthSize * 8);\n // Bits\n let bits = BitString_1.BitString.EMPTY;\n if (dataBytesize > 0) {\n if (paddingAdded) {\n bits = reader.loadPaddedBits(dataBytesize * 8);\n }\n else {\n bits = reader.loadBits(dataBytesize * 8);\n }\n }\n // Refs\n let refs = [];\n for (let i = 0; i < refsCount; i++) {\n refs.push(reader.loadUint(sizeBytes * 8));\n }\n // Result\n return {\n bits,\n refs,\n exotic\n };\n}\nfunction calcCellSize(cell, sizeBytes) {\n return 2 /* D1+D2 */ + Math.ceil(cell.bits.length / 8) + cell.refs.length * sizeBytes;\n}\nfunction parseBoc(src) {\n let reader = new BitReader_1.BitReader(new BitString_1.BitString(src, 0, src.length * 8));\n let magic = reader.loadUint(32);\n if (magic === 0x68ff65f3) {\n let size = reader.loadUint(8);\n let offBytes = reader.loadUint(8);\n let cells = reader.loadUint(size * 8);\n let roots = reader.loadUint(size * 8); // Must be 1\n let absent = reader.loadUint(size * 8);\n let totalCellSize = reader.loadUint(offBytes * 8);\n let index = reader.loadBuffer(cells * offBytes);\n let cellData = reader.loadBuffer(totalCellSize);\n return {\n size,\n offBytes,\n cells,\n roots,\n absent,\n totalCellSize,\n index,\n cellData,\n root: [0]\n };\n }\n else if (magic === 0xacc3a728) {\n let size = reader.loadUint(8);\n let offBytes = reader.loadUint(8);\n let cells = reader.loadUint(size * 8);\n let roots = reader.loadUint(size * 8); // Must be 1\n let absent = reader.loadUint(size * 8);\n let totalCellSize = reader.loadUint(offBytes * 8);\n let index = reader.loadBuffer(cells * offBytes);\n let cellData = reader.loadBuffer(totalCellSize);\n let crc32 = reader.loadBuffer(4);\n if (!(0, crc32c_1.crc32c)(src.subarray(0, src.length - 4)).equals(crc32)) {\n throw Error('Invalid CRC32C');\n }\n return {\n size,\n offBytes,\n cells,\n roots,\n absent,\n totalCellSize,\n index,\n cellData,\n root: [0]\n };\n }\n else if (magic === 0xb5ee9c72) {\n let hasIdx = reader.loadUint(1);\n let hasCrc32c = reader.loadUint(1);\n let hasCacheBits = reader.loadUint(1);\n let flags = reader.loadUint(2); // Must be 0\n let size = reader.loadUint(3);\n let offBytes = reader.loadUint(8);\n let cells = reader.loadUint(size * 8);\n let roots = reader.loadUint(size * 8);\n let absent = reader.loadUint(size * 8);\n let totalCellSize = reader.loadUint(offBytes * 8);\n let root = [];\n for (let i = 0; i < roots; i++) {\n root.push(reader.loadUint(size * 8));\n }\n let index = null;\n if (hasIdx) {\n index = reader.loadBuffer(cells * offBytes);\n }\n let cellData = reader.loadBuffer(totalCellSize);\n if (hasCrc32c) {\n let crc32 = reader.loadBuffer(4);\n if (!(0, crc32c_1.crc32c)(src.subarray(0, src.length - 4)).equals(crc32)) {\n throw Error('Invalid CRC32C');\n }\n }\n return {\n size,\n offBytes,\n cells,\n roots,\n absent,\n totalCellSize,\n index,\n cellData,\n root\n };\n }\n else {\n throw Error('Invalid magic');\n }\n}\nexports.parseBoc = parseBoc;\nfunction deserializeBoc(src) {\n //\n // Parse BOC\n //\n let boc = parseBoc(src);\n let reader = new BitReader_1.BitReader(new BitString_1.BitString(boc.cellData, 0, boc.cellData.length * 8));\n //\n // Load cells\n //\n let cells = [];\n for (let i = 0; i < boc.cells; i++) {\n let cll = readCell(reader, boc.size);\n cells.push({ ...cll, result: null });\n }\n //\n // Build cells\n //\n for (let i = cells.length - 1; i >= 0; i--) {\n if (cells[i].result) {\n throw Error('Impossible');\n }\n let refs = [];\n for (let r of cells[i].refs) {\n if (!cells[r].result) {\n throw Error('Invalid BOC file');\n }\n refs.push(cells[r].result);\n }\n cells[i].result = new Cell_1.Cell({ bits: cells[i].bits, refs, exotic: cells[i].exotic });\n }\n //\n // Load roots\n //\n let roots = [];\n for (let i = 0; i < boc.root.length; i++) {\n roots.push(cells[boc.root[i]].result);\n }\n //\n // Return\n //\n return roots;\n}\nexports.deserializeBoc = deserializeBoc;\nfunction writeCellToBuilder(cell, refs, sizeBytes, to) {\n let d1 = (0, descriptor_1.getRefsDescriptor)(cell.refs, cell.mask.value, cell.type);\n let d2 = (0, descriptor_1.getBitsDescriptor)(cell.bits);\n to.writeUint(d1, 8);\n to.writeUint(d2, 8);\n to.writeBuffer((0, paddedBits_1.bitsToPaddedBuffer)(cell.bits));\n for (let r of refs) {\n to.writeUint(r, sizeBytes * 8);\n }\n}\nfunction serializeBoc(root, opts) {\n // Sort cells\n let allCells = (0, topologicalSort_1.topologicalSort)(root);\n // Calculcate parameters\n let cellsNum = allCells.length;\n let has_idx = opts.idx;\n let has_crc32c = opts.crc32;\n let has_cache_bits = false;\n let flags = 0;\n let sizeBytes = Math.max(Math.ceil((0, bitsForNumber_1.bitsForNumber)(cellsNum, 'uint') / 8), 1);\n let totalCellSize = 0;\n let index = [];\n for (let c of allCells) {\n let sz = calcCellSize(c.cell, sizeBytes);\n totalCellSize += sz;\n index.push(totalCellSize);\n }\n let offsetBytes = Math.max(Math.ceil((0, bitsForNumber_1.bitsForNumber)(totalCellSize, 'uint') / 8), 1);\n let totalSize = (4 + // magic\n 1 + // flags and s_bytes\n 1 + // offset_bytes\n 3 * sizeBytes + // cells_num, roots, complete\n offsetBytes + // full_size\n 1 * sizeBytes + // root_idx\n (has_idx ? cellsNum * offsetBytes : 0) +\n totalCellSize +\n (has_crc32c ? 4 : 0)) * 8;\n // Serialize\n let builder = new BitBuilder_1.BitBuilder(totalSize);\n builder.writeUint(0xb5ee9c72, 32); // Magic\n builder.writeBit(has_idx); // Has index\n builder.writeBit(has_crc32c); // Has crc32c\n builder.writeBit(has_cache_bits); // Has cache bits\n builder.writeUint(flags, 2); // Flags\n builder.writeUint(sizeBytes, 3); // Size bytes\n builder.writeUint(offsetBytes, 8); // Offset bytes\n builder.writeUint(cellsNum, sizeBytes * 8); // Cells num\n builder.writeUint(1, sizeBytes * 8); // Roots num\n builder.writeUint(0, sizeBytes * 8); // Absent num\n builder.writeUint(totalCellSize, offsetBytes * 8); // Total cell size\n builder.writeUint(0, sizeBytes * 8); // Root id == 0\n if (has_idx) { // Index\n for (let i = 0; i < cellsNum; i++) {\n builder.writeUint(index[i], offsetBytes * 8);\n }\n }\n for (let i = 0; i < cellsNum; i++) { // Cells\n writeCellToBuilder(allCells[i].cell, allCells[i].refs, sizeBytes, builder);\n }\n if (has_crc32c) {\n let crc32 = (0, crc32c_1.crc32c)(builder.buffer()); // builder.buffer() is fast since it doesn't allocate new memory\n builder.writeBuffer(crc32);\n }\n // Sanity Check\n let res = builder.buffer();\n if (res.length !== totalSize / 8) {\n throw Error('Internal error');\n }\n return res;\n}\nexports.serializeBoc = serializeBoc;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Cell = void 0;\nconst symbol_inspect_1 = __importDefault(require(\"symbol.inspect\"));\nconst BitString_1 = require(\"./BitString\");\nconst CellType_1 = require(\"./CellType\");\nconst Slice_1 = require(\"./Slice\");\nconst resolveExotic_1 = require(\"./cell/resolveExotic\");\nconst wonderCalculator_1 = require(\"./cell/wonderCalculator\");\nconst serialization_1 = require(\"./cell/serialization\");\nconst BitReader_1 = require(\"./BitReader\");\nconst Builder_1 = require(\"./Builder\");\n/**\n * Cell as described in TVM spec\n */\nclass Cell {\n /**\n * Deserialize cells from BOC\n * @param src source buffer\n * @returns array of cells\n */\n static fromBoc(src) {\n return (0, serialization_1.deserializeBoc)(src);\n }\n /**\n * Helper function that deserializes a single cell from BOC in base64\n * @param src source string\n */\n static fromBase64(src) {\n let parsed = Cell.fromBoc(Buffer.from(src, 'base64'));\n if (parsed.length !== 1) {\n throw new Error(\"Deserialized more than one cell\");\n }\n return parsed[0];\n }\n /**\n * Helper function that deserializes a single cell from BOC in hex\n * @param src source string\n */\n static fromHex(src) {\n let parsed = Cell.fromBoc(Buffer.from(src, 'hex'));\n if (parsed.length !== 1) {\n throw new Error(\"Deserialized more than one cell\");\n }\n return parsed[0];\n }\n constructor(opts) {\n // Level and depth information\n this._hashes = [];\n this._depths = [];\n /**\n * Beging cell parsing\n * @returns a new slice\n */\n this.beginParse = (allowExotic = false) => {\n if (this.isExotic && !allowExotic) {\n throw new Error(\"Exotic cells cannot be parsed\");\n }\n return new Slice_1.Slice(new BitReader_1.BitReader(this.bits), this.refs);\n };\n /**\n * Get cell hash\n * @param level level\n * @returns cell hash\n */\n this.hash = (level = 3) => {\n return this._hashes[Math.min(this._hashes.length - 1, level)];\n };\n /**\n * Get cell depth\n * @param level level\n * @returns cell depth\n */\n this.depth = (level = 3) => {\n return this._depths[Math.min(this._depths.length - 1, level)];\n };\n /**\n * Get cell level\n * @returns cell level\n */\n this.level = () => {\n return this.mask.level;\n };\n /**\n * Checks cell to be euqal to another cell\n * @param other other cell\n * @returns true if cells are equal\n */\n this.equals = (other) => {\n return this.hash().equals(other.hash());\n };\n this[_a] = () => this.toString();\n // Resolve bits\n let bits = BitString_1.BitString.EMPTY;\n if (opts && opts.bits) {\n bits = opts.bits;\n }\n // Resolve refs\n let refs = [];\n if (opts && opts.refs) {\n refs = [...opts.refs];\n }\n // Resolve type\n let hashes;\n let depths;\n let mask;\n let type = CellType_1.CellType.Ordinary;\n if (opts && opts.exotic) {\n // Resolve exotic cell\n let resolved = (0, resolveExotic_1.resolveExotic)(bits, refs);\n // Perform wonders\n let wonders = (0, wonderCalculator_1.wonderCalculator)(resolved.type, bits, refs);\n // Copy results\n mask = wonders.mask;\n depths = wonders.depths;\n hashes = wonders.hashes;\n type = resolved.type;\n }\n else {\n // Check correctness\n if (refs.length > 4) {\n throw new Error(\"Invalid number of references\");\n }\n if (bits.length > 1023) {\n throw new Error(`Bits overflow: ${bits.length} > 1023`);\n }\n // Perform wonders\n let wonders = (0, wonderCalculator_1.wonderCalculator)(CellType_1.CellType.Ordinary, bits, refs);\n // Copy results\n mask = wonders.mask;\n depths = wonders.depths;\n hashes = wonders.hashes;\n type = CellType_1.CellType.Ordinary;\n }\n // Set fields\n this.type = type;\n this.bits = bits;\n this.refs = refs;\n this.mask = mask;\n this._depths = depths;\n this._hashes = hashes;\n Object.freeze(this);\n Object.freeze(this.refs);\n Object.freeze(this.bits);\n Object.freeze(this.mask);\n Object.freeze(this._depths);\n Object.freeze(this._hashes);\n }\n /**\n * Check if cell is exotic\n */\n get isExotic() {\n return this.type !== CellType_1.CellType.Ordinary;\n }\n /**\n * Serializes cell to BOC\n * @param opts options\n */\n toBoc(opts) {\n let idx = (opts && opts.idx !== null && opts.idx !== undefined) ? opts.idx : false;\n let crc32 = (opts && opts.crc32 !== null && opts.crc32 !== undefined) ? opts.crc32 : true;\n return (0, serialization_1.serializeBoc)(this, { idx, crc32 });\n }\n /**\n * Format cell to string\n * @param indent indentation\n * @returns string representation\n */\n toString(indent) {\n let id = indent || '';\n let t = 'x';\n if (this.isExotic) {\n if (this.type === CellType_1.CellType.MerkleProof) {\n t = 'p';\n }\n else if (this.type === CellType_1.CellType.MerkleUpdate) {\n t = 'u';\n }\n else if (this.type === CellType_1.CellType.PrunedBranch) {\n t = 'p';\n }\n }\n let s = id + (this.isExotic ? t : 'x') + '{' + this.bits.toString() + '}';\n for (let k in this.refs) {\n const i = this.refs[k];\n s += '\\n' + i.toString(id + ' ');\n }\n return s;\n }\n /**\n * Covnert cell to slice\n * @returns slice\n */\n asSlice() {\n return this.beginParse();\n }\n /**\n * Convert cell to a builder that has this cell stored\n * @returns builder\n */\n asBuilder() {\n return (0, Builder_1.beginCell)().storeSlice(this.asSlice());\n }\n}\nexports.Cell = Cell;\n_a = symbol_inspect_1.default;\nCell.EMPTY = new Cell();\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Builder = exports.beginCell = void 0;\nconst BitBuilder_1 = require(\"./BitBuilder\");\nconst Cell_1 = require(\"./Cell\");\nconst strings_1 = require(\"./utils/strings\");\n/**\n * Start building a cell\n * @returns a new builder\n */\nfunction beginCell() {\n return new Builder();\n}\nexports.beginCell = beginCell;\n/**\n * Builder for Cells\n */\nclass Builder {\n constructor() {\n this._bits = new BitBuilder_1.BitBuilder();\n this._refs = [];\n }\n /**\n * Bits written so far\n */\n get bits() {\n return this._bits.length;\n }\n /**\n * References written so far\n */\n get refs() {\n return this._refs.length;\n }\n /**\n * Available bits\n */\n get availableBits() {\n return 1023 - this.bits;\n }\n /**\n * Available references\n */\n get availableRefs() {\n return 4 - this.refs;\n }\n /**\n * Write a single bit\n * @param value bit to write, true or positive number for 1, false or zero or negative for 0\n * @returns this builder\n */\n storeBit(value) {\n this._bits.writeBit(value);\n return this;\n }\n /**\n * Write bits from BitString\n * @param src source bits\n * @returns this builder\n */\n storeBits(src) {\n this._bits.writeBits(src);\n return this;\n }\n /**\n * Store Buffer\n * @param src source buffer\n * @param bytes optional number of bytes to write\n * @returns this builder\n */\n storeBuffer(src, bytes) {\n if (bytes !== undefined && bytes !== null) {\n if (src.length !== bytes) {\n throw Error(`Buffer length ${src.length} is not equal to ${bytes}`);\n }\n }\n this._bits.writeBuffer(src);\n return this;\n }\n /**\n * Store Maybe Buffer\n * @param src source buffer or null\n * @param bytes optional number of bytes to write\n * @returns this builder\n */\n storeMaybeBuffer(src, bytes) {\n if (src !== null) {\n this.storeBit(1);\n this.storeBuffer(src, bytes);\n }\n else {\n this.storeBit(0);\n }\n return this;\n }\n /**\n * Store uint value\n * @param value value as bigint or number\n * @param bits number of bits to write\n * @returns this builder\n */\n storeUint(value, bits) {\n this._bits.writeUint(value, bits);\n return this;\n }\n /**\n * Store maybe uint value\n * @param value value as bigint or number, null or undefined\n * @param bits number of bits to write\n * @returns this builder\n */\n storeMaybeUint(value, bits) {\n if (value !== null && value !== undefined) {\n this.storeBit(1);\n this.storeUint(value, bits);\n }\n else {\n this.storeBit(0);\n }\n return this;\n }\n /**\n * Store int value\n * @param value value as bigint or number\n * @param bits number of bits to write\n * @returns this builder\n */\n storeInt(value, bits) {\n this._bits.writeInt(value, bits);\n return this;\n }\n /**\n * Store maybe int value\n * @param value value as bigint or number, null or undefined\n * @param bits number of bits to write\n * @returns this builder\n */\n storeMaybeInt(value, bits) {\n if (value !== null && value !== undefined) {\n this.storeBit(1);\n this.storeInt(value, bits);\n }\n else {\n this.storeBit(0);\n }\n return this;\n }\n /**\n * Store varuint value\n * @param value value as bigint or number\n * @param bits number of bits to write to header\n * @returns this builder\n */\n storeVarUint(value, bits) {\n this._bits.writeVarUint(value, bits);\n return this;\n }\n /**\n * Store maybe varuint value\n * @param value value as bigint or number, null or undefined\n * @param bits number of bits to write to header\n * @returns this builder\n */\n storeMaybeVarUint(value, bits) {\n if (value !== null && value !== undefined) {\n this.storeBit(1);\n this.storeVarUint(value, bits);\n }\n else {\n this.storeBit(0);\n }\n return this;\n }\n /**\n * Store varint value\n * @param value value as bigint or number\n * @param bits number of bits to write to header\n * @returns this builder\n */\n storeVarInt(value, bits) {\n this._bits.writeVarInt(value, bits);\n return this;\n }\n /**\n * Store maybe varint value\n * @param value value as bigint or number, null or undefined\n * @param bits number of bits to write to header\n * @returns this builder\n */\n storeMaybeVarInt(value, bits) {\n if (value !== null && value !== undefined) {\n this.storeBit(1);\n this.storeVarInt(value, bits);\n }\n else {\n this.storeBit(0);\n }\n return this;\n }\n /**\n * Store coins value\n * @param amount amount of coins\n * @returns this builder\n */\n storeCoins(amount) {\n this._bits.writeCoins(amount);\n return this;\n }\n /**\n * Store maybe coins value\n * @param amount amount of coins, null or undefined\n * @returns this builder\n */\n storeMaybeCoins(amount) {\n if (amount !== null && amount !== undefined) {\n this.storeBit(1);\n this.storeCoins(amount);\n }\n else {\n this.storeBit(0);\n }\n return this;\n }\n /**\n * Store address\n * @param addres address to store\n * @returns this builder\n */\n storeAddress(address) {\n this._bits.writeAddress(address);\n return this;\n }\n /**\n * Store reference\n * @param cell cell or builder to store\n * @returns this builder\n */\n storeRef(cell) {\n // Check refs\n if (this._refs.length >= 4) {\n throw new Error(\"Too many references\");\n }\n // Store reference\n if (cell instanceof Cell_1.Cell) {\n this._refs.push(cell);\n }\n else if (cell instanceof Builder) {\n this._refs.push(cell.endCell());\n }\n else {\n throw new Error(\"Invalid argument\");\n }\n return this;\n }\n /**\n * Store reference if not null\n * @param cell cell or builder to store\n * @returns this builder\n */\n storeMaybeRef(cell) {\n if (cell) {\n this.storeBit(1);\n this.storeRef(cell);\n }\n else {\n this.storeBit(0);\n }\n return this;\n }\n /**\n * Store slice it in this builder\n * @param src source slice\n */\n storeSlice(src) {\n let c = src.clone();\n if (c.remainingBits > 0) {\n this.storeBits(c.loadBits(c.remainingBits));\n }\n while (c.remainingRefs > 0) {\n this.storeRef(c.loadRef());\n }\n return this;\n }\n /**\n * Store slice in this builder if not null\n * @param src source slice\n */\n storeMaybeSlice(src) {\n if (src) {\n this.storeBit(1);\n this.storeSlice(src);\n }\n else {\n this.storeBit(0);\n }\n return this;\n }\n /**\n * Store builder\n * @param src builder to store\n * @returns this builder\n */\n storeBuilder(src) {\n return this.storeSlice(src.endCell().beginParse());\n }\n /**\n * Store builder if not null\n * @param src builder to store\n * @returns this builder\n */\n storeMaybeBuilder(src) {\n if (src) {\n this.storeBit(1);\n this.storeBuilder(src);\n }\n else {\n this.storeBit(0);\n }\n return this;\n }\n /**\n * Store writer or builder\n * @param writer writer or builder to store\n * @returns this builder\n */\n storeWritable(writer) {\n if (typeof writer === 'object') {\n writer.writeTo(this);\n }\n else {\n writer(this);\n }\n return this;\n }\n /**\n * Store writer or builder if not null\n * @param writer writer or builder to store\n * @returns this builder\n */\n storeMaybeWritable(writer) {\n if (writer) {\n this.storeBit(1);\n this.storeWritable(writer);\n }\n else {\n this.storeBit(0);\n }\n return this;\n }\n /**\n * Store object in this builder\n * @param writer Writable or writer functuin\n */\n store(writer) {\n this.storeWritable(writer);\n return this;\n }\n /**\n * Store string tail\n * @param src source string\n * @returns this builder\n */\n storeStringTail(src) {\n (0, strings_1.writeString)(src, this);\n return this;\n }\n /**\n * Store string tail\n * @param src source string\n * @returns this builder\n */\n storeMaybeStringTail(src) {\n if (src !== null && src !== undefined) {\n this.storeBit(1);\n (0, strings_1.writeString)(src, this);\n }\n else {\n this.storeBit(0);\n }\n return this;\n }\n /**\n * Store string tail in ref\n * @param src source string\n * @returns this builder\n */\n storeStringRefTail(src) {\n this.storeRef(beginCell()\n .storeStringTail(src));\n return this;\n }\n /**\n * Store maybe string tail in ref\n * @param src source string\n * @returns this builder\n */\n storeMaybeStringRefTail(src) {\n if (src !== null && src !== undefined) {\n this.storeBit(1);\n this.storeStringRefTail(src);\n }\n else {\n this.storeBit(0);\n }\n return this;\n }\n /**\n * Store dictionary in this builder\n * @param dict dictionary to store\n * @returns this builder\n */\n storeDict(dict, key, value) {\n if (dict) {\n dict.store(this, key, value);\n }\n else {\n this.storeBit(0);\n }\n return this;\n }\n /**\n * Store dictionary in this builder directly\n * @param dict dictionary to store\n * @returns this builder\n */\n storeDictDirect(dict, key, value) {\n dict.storeDirect(this, key, value);\n return this;\n }\n /**\n * Complete cell\n * @param opts options\n * @returns cell\n */\n endCell(opts) {\n return new Cell_1.Cell({\n bits: this._bits.build(),\n refs: this._refs,\n exotic: opts?.exotic\n });\n }\n /**\n * Convert to cell\n * @returns cell\n */\n asCell() {\n return this.endCell();\n }\n /**\n * Convert to slice\n * @returns slice\n */\n asSlice() {\n return this.endCell().beginParse();\n }\n}\nexports.Builder = Builder;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SimpleLibraryValue = exports.storeSimpleLibrary = exports.loadSimpleLibrary = void 0;\nfunction loadSimpleLibrary(slice) {\n return {\n public: slice.loadBit(),\n root: slice.loadRef()\n };\n}\nexports.loadSimpleLibrary = loadSimpleLibrary;\nfunction storeSimpleLibrary(src) {\n return (builder) => {\n builder.storeBit(src.public);\n builder.storeRef(src.root);\n };\n}\nexports.storeSimpleLibrary = storeSimpleLibrary;\nexports.SimpleLibraryValue = {\n serialize(src, builder) {\n storeSimpleLibrary(src)(builder);\n },\n parse(src) {\n return loadSimpleLibrary(src);\n },\n};\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeTickTock = exports.loadTickTock = void 0;\nfunction loadTickTock(slice) {\n return {\n tick: slice.loadBit(),\n tock: slice.loadBit()\n };\n}\nexports.loadTickTock = loadTickTock;\nfunction storeTickTock(src) {\n return (builder) => {\n builder.storeBit(src.tick);\n builder.storeBit(src.tock);\n };\n}\nexports.storeTickTock = storeTickTock;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeStateInit = exports.loadStateInit = void 0;\nconst Dictionary_1 = require(\"../dict/Dictionary\");\nconst SimpleLibrary_1 = require(\"./SimpleLibrary\");\nconst TickTock_1 = require(\"./TickTock\");\n;\nfunction loadStateInit(slice) {\n // Split Depth\n let splitDepth;\n if (slice.loadBit()) {\n splitDepth = slice.loadUint(5);\n }\n // TickTock\n let special;\n if (slice.loadBit()) {\n special = (0, TickTock_1.loadTickTock)(slice);\n }\n // Code and Data\n let code = slice.loadMaybeRef();\n let data = slice.loadMaybeRef();\n // Libs\n let libraries = slice.loadDict(Dictionary_1.Dictionary.Keys.BigUint(256), SimpleLibrary_1.SimpleLibraryValue);\n if (libraries.size === 0) {\n libraries = undefined;\n }\n return {\n splitDepth,\n special,\n code,\n data,\n libraries\n };\n}\nexports.loadStateInit = loadStateInit;\nfunction storeStateInit(src) {\n return (builder) => {\n if (src.splitDepth !== null && src.splitDepth !== undefined) {\n builder.storeBit(true);\n builder.storeUint(src.splitDepth, 5);\n }\n else {\n builder.storeBit(false);\n }\n if (src.special !== null && src.special !== undefined) {\n builder.storeBit(true);\n builder.store((0, TickTock_1.storeTickTock)(src.special));\n }\n else {\n builder.storeBit(false);\n }\n builder.storeMaybeRef(src.code);\n builder.storeMaybeRef(src.data);\n builder.storeDict(src.libraries);\n };\n}\nexports.storeStateInit = storeStateInit;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.contractAddress = void 0;\nconst Builder_1 = require(\"../boc/Builder\");\nconst StateInit_1 = require(\"../types/StateInit\");\nconst Address_1 = require(\"./Address\");\nfunction contractAddress(workchain, init) {\n let hash = (0, Builder_1.beginCell)()\n .store((0, StateInit_1.storeStateInit)(init))\n .endCell()\n .hash();\n return new Address_1.Address(workchain, hash);\n}\nexports.contractAddress = contractAddress;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseTuple = exports.serializeTuple = void 0;\nconst Builder_1 = require(\"../boc/Builder\");\nconst INT64_MIN = BigInt('-9223372036854775808');\nconst INT64_MAX = BigInt('9223372036854775807');\n// vm_stk_null#00 = VmStackValue;\n// vm_stk_tinyint#01 value:int64 = VmStackValue;\n// vm_stk_int#0201_ value:int257 = VmStackValue;\n// vm_stk_nan#02ff = VmStackValue;\n// vm_stk_cell#03 cell:^Cell = VmStackValue;\n//_ cell:^Cell st_bits:(## 10) end_bits:(## 10) { st_bits <= end_bits }\n// st_ref:(#<= 4) end_ref:(#<= 4) { st_ref <= end_ref } = VmCellSlice;\n// vm_stk_slice#04 _:VmCellSlice = VmStackValue;\n// vm_stk_builder#05 cell:^Cell = VmStackValue;\n// vm_stk_cont#06 cont:VmCont = VmStackValue;\n// vm_tupref_nil$_ = VmTupleRef 0;\n// vm_tupref_single$_ entry:^VmStackValue = VmTupleRef 1;\n// vm_tupref_any$_ {n:#} ref:^(VmTuple (n + 2)) = VmTupleRef (n + 2);\n// vm_tuple_nil$_ = VmTuple 0;\n// vm_tuple_tcons$_ {n:#} head:(VmTupleRef n) tail:^VmStackValue = VmTuple (n + 1);\n// vm_stk_tuple#07 len:(## 16) data:(VmTuple len) = VmStackValue;\nfunction serializeTupleItem(src, builder) {\n if (src.type === 'null') {\n builder.storeUint(0x00, 8);\n }\n else if (src.type === 'int') {\n if (src.value <= INT64_MAX && src.value >= INT64_MIN) {\n builder.storeUint(0x01, 8);\n builder.storeInt(src.value, 64);\n }\n else {\n builder.storeUint(0x0100, 15);\n builder.storeInt(src.value, 257);\n }\n }\n else if (src.type === 'nan') {\n builder.storeInt(0x02ff, 16);\n }\n else if (src.type === 'cell') {\n builder.storeUint(0x03, 8);\n builder.storeRef(src.cell);\n }\n else if (src.type === 'slice') {\n builder.storeUint(0x04, 8);\n builder.storeUint(0, 10);\n builder.storeUint(src.cell.bits.length, 10);\n builder.storeUint(0, 3);\n builder.storeUint(src.cell.refs.length, 3);\n builder.storeRef(src.cell);\n }\n else if (src.type === 'builder') {\n builder.storeUint(0x05, 8);\n builder.storeRef(src.cell);\n }\n else if (src.type === 'tuple') {\n let head = null;\n let tail = null;\n for (let i = 0; i < src.items.length; i++) {\n // Swap\n let s = head;\n head = tail;\n tail = s;\n if (i > 1) {\n head = (0, Builder_1.beginCell)()\n .storeRef(tail)\n .storeRef(head)\n .endCell();\n }\n let bc = (0, Builder_1.beginCell)();\n serializeTupleItem(src.items[i], bc);\n tail = bc.endCell();\n }\n builder.storeUint(0x07, 8);\n builder.storeUint(src.items.length, 16);\n if (head) {\n builder.storeRef(head);\n }\n if (tail) {\n builder.storeRef(tail);\n }\n }\n else {\n throw Error('Invalid value');\n }\n}\nfunction parseStackItem(cs) {\n let kind = cs.loadUint(8);\n if (kind === 0) {\n return { type: 'null' };\n }\n else if (kind === 1) {\n return { type: 'int', value: cs.loadIntBig(64) };\n }\n else if (kind === 2) {\n if (cs.loadUint(7) === 0) {\n return { type: 'int', value: cs.loadIntBig(257) };\n }\n else {\n cs.loadBit(); // must eq 1\n return { type: 'nan' };\n }\n }\n else if (kind === 3) {\n return { type: 'cell', cell: cs.loadRef() };\n }\n else if (kind === 4) {\n let startBits = cs.loadUint(10);\n let endBits = cs.loadUint(10);\n let startRefs = cs.loadUint(3);\n let endRefs = cs.loadUint(3);\n // Copy to new cell\n let rs = cs.loadRef().beginParse();\n rs.skip(startBits);\n let dt = rs.loadBits(endBits - startBits);\n let builder = (0, Builder_1.beginCell)()\n .storeBits(dt);\n // Copy refs if exist\n if (startRefs < endRefs) {\n for (let i = 0; i < startRefs; i++) {\n rs.loadRef();\n }\n for (let i = 0; i < endRefs - startRefs; i++) {\n builder.storeRef(rs.loadRef());\n }\n }\n return { type: 'slice', cell: builder.endCell() };\n }\n else if (kind === 5) {\n return { type: 'builder', cell: cs.loadRef() };\n }\n else if (kind === 7) {\n let length = cs.loadUint(16);\n let items = [];\n if (length > 1) {\n let head = cs.loadRef().beginParse();\n let tail = cs.loadRef().beginParse();\n items.unshift(parseStackItem(tail));\n for (let i = 0; i < length - 2; i++) {\n let ohead = head;\n head = ohead.loadRef().beginParse();\n tail = ohead.loadRef().beginParse();\n items.unshift(parseStackItem(tail));\n }\n items.unshift(parseStackItem(head));\n }\n else if (length === 1) {\n items.push(parseStackItem(cs.loadRef().beginParse()));\n }\n return { type: 'tuple', items };\n }\n else {\n throw Error('Unsupported stack item');\n }\n}\n//\n// Stack parsing\n// Source: https://github.com/ton-foundation/ton/blob/ae5c0720143e231c32c3d2034cfe4e533a16d969/crypto/block/block.tlb#L783\n//\n// vm_stack#_ depth:(## 24) stack:(VmStackList depth) = VmStack;\n// vm_stk_cons#_ {n:#} rest:^(VmStackList n) tos:VmStackValue = VmStackList (n + 1);\n// vm_stk_nil#_ = VmStackList 0;\n//\nfunction serializeTupleTail(src, builder) {\n if (src.length > 0) {\n // rest:^(VmStackList n)\n let tail = (0, Builder_1.beginCell)();\n serializeTupleTail(src.slice(0, src.length - 1), tail);\n builder.storeRef(tail.endCell());\n // tos\n serializeTupleItem(src[src.length - 1], builder);\n }\n}\nfunction serializeTuple(src) {\n let builder = (0, Builder_1.beginCell)();\n builder.storeUint(src.length, 24);\n let r = [...src];\n serializeTupleTail(r, builder);\n return builder.endCell();\n}\nexports.serializeTuple = serializeTuple;\nfunction parseTuple(src) {\n let res = [];\n let cs = src.beginParse();\n let size = cs.loadUint(24);\n for (let i = 0; i < size; i++) {\n let next = cs.loadRef();\n res.unshift(parseStackItem(cs));\n cs = next.beginParse();\n }\n return res;\n}\nexports.parseTuple = parseTuple;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TupleReader = void 0;\nclass TupleReader {\n constructor(items) {\n this.items = [...items];\n }\n get remaining() {\n return this.items.length;\n }\n peek() {\n if (this.items.length === 0) {\n throw Error('EOF');\n }\n return this.items[0];\n }\n pop() {\n if (this.items.length === 0) {\n throw Error('EOF');\n }\n let res = this.items[0];\n this.items.splice(0, 1);\n return res;\n }\n skip(num = 1) {\n for (let i = 0; i < num; i++) {\n this.pop();\n }\n return this;\n }\n readBigNumber() {\n let popped = this.pop();\n if (popped.type !== 'int') {\n throw Error('Not a number');\n }\n return popped.value;\n }\n readBigNumberOpt() {\n let popped = this.pop();\n if (popped.type === 'null') {\n return null;\n }\n if (popped.type !== 'int') {\n throw Error('Not a number');\n }\n return popped.value;\n }\n readNumber() {\n return Number(this.readBigNumber());\n }\n readNumberOpt() {\n let r = this.readBigNumberOpt();\n if (r !== null) {\n return Number(r);\n }\n else {\n return null;\n }\n }\n readBoolean() {\n let res = this.readNumber();\n return res === 0 ? false : true;\n }\n readBooleanOpt() {\n let res = this.readNumberOpt();\n if (res !== null) {\n return res === 0 ? false : true;\n }\n else {\n return null;\n }\n }\n readAddress() {\n let r = this.readCell().beginParse().loadAddress();\n if (r !== null) {\n return r;\n }\n else {\n throw Error('Not an address');\n }\n }\n readAddressOpt() {\n let r = this.readCellOpt();\n if (r !== null) {\n return r.beginParse().loadMaybeAddress();\n }\n else {\n return null;\n }\n }\n readCell() {\n let popped = this.pop();\n if (popped.type !== 'cell' && popped.type !== 'slice' && popped.type !== 'builder') {\n throw Error('Not a cell: ' + popped.type);\n }\n return popped.cell;\n }\n readCellOpt() {\n let popped = this.pop();\n if (popped.type === 'null') {\n return null;\n }\n if (popped.type !== 'cell' && popped.type !== 'slice' && popped.type !== 'builder') {\n throw Error('Not a cell');\n }\n return popped.cell;\n }\n readTuple() {\n let popped = this.pop();\n if (popped.type !== 'tuple') {\n throw Error('Not a tuple');\n }\n return new TupleReader(popped.items);\n }\n readTupleOpt() {\n let popped = this.pop();\n if (popped.type === 'null') {\n return null;\n }\n if (popped.type !== 'tuple') {\n throw Error('Not a tuple');\n }\n return new TupleReader(popped.items);\n }\n static readLispList(reader) {\n const result = [];\n let tail = reader;\n while (tail !== null) {\n var head = tail.pop();\n if (tail.items.length === 0 || (tail.items[0].type !== 'tuple' && tail.items[0].type !== 'null')) {\n throw Error('Lisp list consists only from (any, tuple) elements and ends with null');\n }\n tail = tail.readTupleOpt();\n result.push(head);\n }\n return result;\n }\n readLispListDirect() {\n if (this.items.length === 1 && this.items[0].type === 'null') {\n return [];\n }\n return TupleReader.readLispList(this);\n }\n readLispList() {\n return TupleReader.readLispList(this.readTupleOpt());\n }\n readBuffer() {\n let s = this.readCell().beginParse();\n if (s.remainingRefs !== 0) {\n throw Error('Not a buffer');\n }\n if (s.remainingBits % 8 !== 0) {\n throw Error('Not a buffer');\n }\n return s.loadBuffer(s.remainingBits / 8);\n }\n readBufferOpt() {\n let r = this.readCellOpt();\n if (r !== null) {\n let s = r.beginParse();\n if (s.remainingRefs !== 0 || s.remainingBits % 8 !== 0) {\n throw Error('Not a buffer');\n }\n return s.loadBuffer(s.remainingBits / 8);\n }\n else {\n return null;\n }\n }\n readString() {\n let s = this.readCell().beginParse();\n return s.loadStringTail();\n }\n readStringOpt() {\n let r = this.readCellOpt();\n if (r !== null) {\n let s = r.beginParse();\n return s.loadStringTail();\n }\n else {\n return null;\n }\n }\n}\nexports.TupleReader = TupleReader;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TupleBuilder = void 0;\nconst Builder_1 = require(\"../boc/Builder\");\nconst Cell_1 = require(\"../boc/Cell\");\nconst Slice_1 = require(\"../boc/Slice\");\nclass TupleBuilder {\n constructor() {\n this._tuple = [];\n }\n writeNumber(v) {\n if (v === null || v === undefined) {\n this._tuple.push({ type: 'null' });\n }\n else {\n this._tuple.push({ type: 'int', value: BigInt(v) });\n }\n }\n writeBoolean(v) {\n if (v === null || v === undefined) {\n this._tuple.push({ type: 'null' });\n }\n else {\n this._tuple.push({ type: 'int', value: v ? -1n : 0n });\n }\n }\n writeBuffer(v) {\n if (v === null || v === undefined) {\n this._tuple.push({ type: 'null' });\n }\n else {\n this._tuple.push({ type: 'slice', cell: (0, Builder_1.beginCell)().storeBuffer(v).endCell() });\n }\n }\n writeString(v) {\n if (v === null || v === undefined) {\n this._tuple.push({ type: 'null' });\n }\n else {\n this._tuple.push({ type: 'slice', cell: (0, Builder_1.beginCell)().storeStringTail(v).endCell() });\n }\n }\n writeCell(v) {\n if (v === null || v === undefined) {\n this._tuple.push({ type: 'null' });\n }\n else {\n if (v instanceof Cell_1.Cell) {\n this._tuple.push({ type: 'cell', cell: v });\n }\n else if (v instanceof Slice_1.Slice) {\n this._tuple.push({ type: 'cell', cell: v.asCell() });\n }\n }\n }\n writeSlice(v) {\n if (v === null || v === undefined) {\n this._tuple.push({ type: 'null' });\n }\n else {\n if (v instanceof Cell_1.Cell) {\n this._tuple.push({ type: 'slice', cell: v });\n }\n else if (v instanceof Slice_1.Slice) {\n this._tuple.push({ type: 'slice', cell: v.asCell() });\n }\n }\n }\n writeBuilder(v) {\n if (v === null || v === undefined) {\n this._tuple.push({ type: 'null' });\n }\n else {\n if (v instanceof Cell_1.Cell) {\n this._tuple.push({ type: 'builder', cell: v });\n }\n else if (v instanceof Slice_1.Slice) {\n this._tuple.push({ type: 'builder', cell: v.asCell() });\n }\n }\n }\n writeTuple(v) {\n if (v === null || v === undefined) {\n this._tuple.push({ type: 'null' });\n }\n else {\n this._tuple.push({ type: 'tuple', items: v });\n }\n }\n writeAddress(v) {\n if (v === null || v === undefined) {\n this._tuple.push({ type: 'null' });\n }\n else {\n this._tuple.push({ type: 'slice', cell: (0, Builder_1.beginCell)().storeAddress(v).endCell() });\n }\n }\n build() {\n return [...this._tuple];\n }\n}\nexports.TupleBuilder = TupleBuilder;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromNano = exports.toNano = void 0;\nfunction toNano(src) {\n if (typeof src === 'bigint') {\n return src * 1000000000n;\n }\n else {\n if (typeof src === 'number') {\n if (!Number.isFinite(src)) {\n throw Error('Invalid number');\n }\n if (Math.log10(src) <= 6) {\n src = src.toLocaleString('en', { minimumFractionDigits: 9, useGrouping: false });\n }\n else if (src - Math.trunc(src) === 0) {\n src = src.toLocaleString('en', { maximumFractionDigits: 0, useGrouping: false });\n }\n else {\n throw Error('Not enough precision for a number value. Use string value instead');\n }\n }\n // Check sign\n let neg = false;\n while (src.startsWith('-')) {\n neg = !neg;\n src = src.slice(1);\n }\n // Split string\n if (src === '.') {\n throw Error('Invalid number');\n }\n let parts = src.split('.');\n if (parts.length > 2) {\n throw Error('Invalid number');\n }\n // Prepare parts\n let whole = parts[0];\n let frac = parts[1];\n if (!whole) {\n whole = '0';\n }\n if (!frac) {\n frac = '0';\n }\n if (frac.length > 9) {\n throw Error('Invalid number');\n }\n while (frac.length < 9) {\n frac += '0';\n }\n // Convert\n let r = BigInt(whole) * 1000000000n + BigInt(frac);\n if (neg) {\n r = -r;\n }\n return r;\n }\n}\nexports.toNano = toNano;\nfunction fromNano(src) {\n let v = BigInt(src);\n let neg = false;\n if (v < 0) {\n neg = true;\n v = -v;\n }\n // Convert fraction\n let frac = v % 1000000000n;\n let facStr = frac.toString();\n while (facStr.length < 9) {\n facStr = '0' + facStr;\n }\n facStr = facStr.match(/^([0-9]*[1-9]|0)(0*)/)[1];\n // Convert whole\n let whole = v / 1000000000n;\n let wholeStr = whole.toString();\n // Value\n let value = `${wholeStr}${facStr === '0' ? '' : `.${facStr}`}`;\n if (neg) {\n value = '-' + value;\n }\n return value;\n}\nexports.fromNano = fromNano;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.packExtraCurrencyCell = exports.packExtraCurrencyDict = exports.storeExtraCurrency = exports.loadMaybeExtraCurrency = exports.loadExtraCurrency = void 0;\nconst Builder_1 = require(\"../boc/Builder\");\nconst Dictionary_1 = require(\"../dict/Dictionary\");\nfunction loadExtraCurrency(data) {\n let ecDict = data instanceof Dictionary_1.Dictionary ? data : Dictionary_1.Dictionary.loadDirect(Dictionary_1.Dictionary.Keys.Uint(32), Dictionary_1.Dictionary.Values.BigVarUint(5), data);\n let ecMap = {};\n for (let [k, v] of ecDict) {\n ecMap[k] = v;\n }\n return ecMap;\n}\nexports.loadExtraCurrency = loadExtraCurrency;\nfunction loadMaybeExtraCurrency(data) {\n const ecData = data.loadMaybeRef();\n return ecData === null ? ecData : loadExtraCurrency(ecData);\n}\nexports.loadMaybeExtraCurrency = loadMaybeExtraCurrency;\nfunction storeExtraCurrency(extracurrency) {\n return (builder) => {\n builder.storeDict(packExtraCurrencyDict(extracurrency));\n };\n}\nexports.storeExtraCurrency = storeExtraCurrency;\nfunction packExtraCurrencyDict(extracurrency) {\n const resEc = Dictionary_1.Dictionary.empty(Dictionary_1.Dictionary.Keys.Uint(32), Dictionary_1.Dictionary.Values.BigVarUint(5));\n Object.entries(extracurrency).map(([k, v]) => resEc.set(Number(k), v));\n return resEc;\n}\nexports.packExtraCurrencyDict = packExtraCurrencyDict;\nfunction packExtraCurrencyCell(extracurrency) {\n return (0, Builder_1.beginCell)().storeDictDirect(packExtraCurrencyDict(extracurrency)).endCell();\n}\nexports.packExtraCurrencyCell = packExtraCurrencyCell;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.comment = exports.external = exports.internal = void 0;\nconst Address_1 = require(\"../address/Address\");\nconst Cell_1 = require(\"../boc/Cell\");\nconst Builder_1 = require(\"../boc/Builder\");\nconst convert_1 = require(\"../utils/convert\");\nconst ExtraCurrency_1 = require(\"./ExtraCurrency\");\nfunction internal(src) {\n // Resolve bounce\n let bounce = true;\n if (src.bounce !== null && src.bounce !== undefined) {\n bounce = src.bounce;\n }\n // Resolve address\n let to;\n if (typeof src.to === 'string') {\n to = Address_1.Address.parse(src.to);\n }\n else if (Address_1.Address.isAddress(src.to)) {\n to = src.to;\n }\n else {\n throw new Error(`Invalid address ${src.to}`);\n }\n // Resolve value\n let value;\n if (typeof src.value === 'string') {\n value = (0, convert_1.toNano)(src.value);\n }\n else {\n value = src.value;\n }\n let other;\n if (src.extracurrency) {\n // Resolve value\n other = (0, ExtraCurrency_1.packExtraCurrencyDict)(src.extracurrency);\n }\n // Resolve body\n let body = Cell_1.Cell.EMPTY;\n if (typeof src.body === 'string') {\n body = (0, Builder_1.beginCell)().storeUint(0, 32).storeStringTail(src.body).endCell();\n }\n else if (src.body) {\n body = src.body;\n }\n // Create message\n return {\n info: {\n type: 'internal',\n dest: to,\n value: { coins: value, other },\n bounce,\n ihrDisabled: true,\n bounced: false,\n ihrFee: 0n,\n forwardFee: 0n,\n createdAt: 0,\n createdLt: 0n\n },\n init: src.init ?? undefined,\n body: body\n };\n}\nexports.internal = internal;\nfunction external(src) {\n // Resolve address\n let to;\n if (typeof src.to === 'string') {\n to = Address_1.Address.parse(src.to);\n }\n else if (Address_1.Address.isAddress(src.to)) {\n to = src.to;\n }\n else {\n throw new Error(`Invalid address ${src.to}`);\n }\n return {\n info: {\n type: 'external-in',\n dest: to,\n importFee: 0n\n },\n init: src.init ?? undefined,\n body: src.body || Cell_1.Cell.EMPTY\n };\n}\nexports.external = external;\nfunction comment(src) {\n return (0, Builder_1.beginCell)()\n .storeUint(0, 32)\n .storeStringTail(src)\n .endCell();\n}\nexports.comment = comment;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeAccountState = exports.loadAccountState = void 0;\nconst StateInit_1 = require(\"./StateInit\");\nfunction loadAccountState(cs) {\n if (cs.loadBit()) {\n return { type: 'active', state: (0, StateInit_1.loadStateInit)(cs) };\n }\n else if (cs.loadBit()) {\n return { type: 'frozen', stateHash: cs.loadUintBig(256) };\n }\n else {\n return { type: 'uninit' };\n }\n}\nexports.loadAccountState = loadAccountState;\nfunction storeAccountState(src) {\n return (builder) => {\n if (src.type === 'active') {\n builder.storeBit(true);\n builder.store((0, StateInit_1.storeStateInit)(src.state));\n }\n else if (src.type === 'frozen') {\n builder.storeBit(false);\n builder.storeBit(true);\n builder.storeUint(src.stateHash, 256);\n }\n else if (src.type === 'uninit') {\n builder.storeBit(false);\n builder.storeBit(false);\n }\n };\n}\nexports.storeAccountState = storeAccountState;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeCurrencyCollection = exports.loadCurrencyCollection = void 0;\nconst Dictionary_1 = require(\"../dict/Dictionary\");\n;\nfunction loadCurrencyCollection(slice) {\n const coins = slice.loadCoins();\n const other = slice.loadDict(Dictionary_1.Dictionary.Keys.Uint(32), Dictionary_1.Dictionary.Values.BigVarUint(5 /* log2(32) */));\n if (other.size === 0) {\n return { coins };\n }\n else {\n return { other, coins };\n }\n}\nexports.loadCurrencyCollection = loadCurrencyCollection;\nfunction storeCurrencyCollection(collection) {\n return (builder) => {\n builder.storeCoins(collection.coins);\n if (collection.other) {\n builder.storeDict(collection.other);\n }\n else {\n builder.storeBit(0);\n }\n };\n}\nexports.storeCurrencyCollection = storeCurrencyCollection;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeAccountStorage = exports.loadAccountStorage = void 0;\nconst AccountState_1 = require(\"./AccountState\");\nconst CurrencyCollection_1 = require(\"./CurrencyCollection\");\nfunction loadAccountStorage(slice) {\n return {\n lastTransLt: slice.loadUintBig(64),\n balance: (0, CurrencyCollection_1.loadCurrencyCollection)(slice),\n state: (0, AccountState_1.loadAccountState)(slice)\n };\n}\nexports.loadAccountStorage = loadAccountStorage;\nfunction storeAccountStorage(src) {\n return (builder) => {\n builder.storeUint(src.lastTransLt, 64);\n builder.store((0, CurrencyCollection_1.storeCurrencyCollection)(src.balance));\n builder.store((0, AccountState_1.storeAccountState)(src.state));\n };\n}\nexports.storeAccountStorage = storeAccountStorage;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeStorageUsed = exports.loadStorageUsed = void 0;\nfunction loadStorageUsed(cs) {\n return {\n cells: cs.loadVarUintBig(3),\n bits: cs.loadVarUintBig(3),\n publicCells: cs.loadVarUintBig(3),\n };\n}\nexports.loadStorageUsed = loadStorageUsed;\nfunction storeStorageUsed(src) {\n return (builder) => {\n builder.storeVarUint(src.cells, 3);\n builder.storeVarUint(src.bits, 3);\n builder.storeVarUint(src.publicCells, 3);\n };\n}\nexports.storeStorageUsed = storeStorageUsed;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeStorageInfo = exports.loadStorageInfo = void 0;\nconst StorageUsed_1 = require(\"./StorageUsed\");\nfunction loadStorageInfo(slice) {\n return {\n used: (0, StorageUsed_1.loadStorageUsed)(slice),\n lastPaid: slice.loadUint(32),\n duePayment: slice.loadMaybeCoins()\n };\n}\nexports.loadStorageInfo = loadStorageInfo;\nfunction storeStorageInfo(src) {\n return (builder) => {\n builder.store((0, StorageUsed_1.storeStorageUsed)(src.used));\n builder.storeUint(src.lastPaid, 32);\n builder.storeMaybeCoins(src.duePayment);\n };\n}\nexports.storeStorageInfo = storeStorageInfo;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeAccount = exports.loadAccount = void 0;\nconst AccountStorage_1 = require(\"./AccountStorage\");\nconst StorageInto_1 = require(\"./StorageInto\");\nfunction loadAccount(slice) {\n return {\n addr: slice.loadAddress(),\n storageStats: (0, StorageInto_1.loadStorageInfo)(slice),\n storage: (0, AccountStorage_1.loadAccountStorage)(slice)\n };\n}\nexports.loadAccount = loadAccount;\nfunction storeAccount(src) {\n return (builder) => {\n builder.storeAddress(src.addr);\n builder.store((0, StorageInto_1.storeStorageInfo)(src.storageStats));\n builder.store((0, AccountStorage_1.storeAccountStorage)(src.storage));\n };\n}\nexports.storeAccount = storeAccount;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeAccountStatus = exports.loadAccountStatus = void 0;\n/**\n * Load account state from slice\n * @param slice\n * @returns AccountState\n */\nfunction loadAccountStatus(slice) {\n const status = slice.loadUint(2);\n if (status === 0x00) {\n return 'uninitialized';\n }\n if (status === 0x01) {\n return 'frozen';\n }\n if (status === 0x02) {\n return 'active';\n }\n if (status === 0x03) {\n return 'non-existing';\n }\n throw Error('Invalid data');\n}\nexports.loadAccountStatus = loadAccountStatus;\n/**\n * Store account state to builder\n * @param src account state\n * @param builder buidler\n */\nfunction storeAccountStatus(src) {\n return (builder) => {\n if (src === 'uninitialized') {\n builder.storeUint(0x00, 2);\n }\n else if (src === 'frozen') {\n builder.storeUint(0x01, 2);\n }\n else if (src === 'active') {\n builder.storeUint(0x02, 2);\n }\n else if (src === 'non-existing') {\n builder.storeUint(0x03, 2);\n }\n else {\n throw Error('Invalid data');\n }\n return builder;\n };\n}\nexports.storeAccountStatus = storeAccountStatus;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeAccountStatusChange = exports.loadAccountStatusChange = void 0;\nfunction loadAccountStatusChange(slice) {\n if (!slice.loadBit()) {\n return 'unchanged';\n }\n if (slice.loadBit()) {\n return 'deleted';\n }\n else {\n return 'frozen';\n }\n}\nexports.loadAccountStatusChange = loadAccountStatusChange;\nfunction storeAccountStatusChange(src) {\n return (builder) => {\n if (src == 'unchanged') {\n builder.storeBit(0);\n }\n else if (src === 'frozen') {\n builder.storeBit(1);\n builder.storeBit(0);\n }\n else if (src === 'deleted') {\n builder.storeBit(1);\n builder.storeBit(1);\n }\n else {\n throw Error('Invalid account status change');\n }\n };\n}\nexports.storeAccountStatusChange = storeAccountStatusChange;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeCommonMessageInfoRelaxed = exports.loadCommonMessageInfoRelaxed = void 0;\nconst CurrencyCollection_1 = require(\"./CurrencyCollection\");\nfunction loadCommonMessageInfoRelaxed(slice) {\n // Internal message\n if (!slice.loadBit()) {\n const ihrDisabled = slice.loadBit();\n const bounce = slice.loadBit();\n const bounced = slice.loadBit();\n const src = slice.loadMaybeAddress();\n const dest = slice.loadAddress();\n const value = (0, CurrencyCollection_1.loadCurrencyCollection)(slice);\n const ihrFee = slice.loadCoins();\n const forwardFee = slice.loadCoins();\n const createdLt = slice.loadUintBig(64);\n const createdAt = slice.loadUint(32);\n return {\n type: 'internal',\n ihrDisabled,\n bounce,\n bounced,\n src,\n dest,\n value,\n ihrFee,\n forwardFee,\n createdLt,\n createdAt,\n };\n }\n // External In mesage\n if (!slice.loadBit()) {\n throw Error('External In message is not possible for CommonMessageInfoRelaxed');\n }\n // External Out message\n const src = slice.loadMaybeAddress();\n const dest = slice.loadMaybeExternalAddress();\n const createdLt = slice.loadUintBig(64);\n const createdAt = slice.loadUint(32);\n return {\n type: 'external-out',\n src,\n dest,\n createdLt,\n createdAt,\n };\n}\nexports.loadCommonMessageInfoRelaxed = loadCommonMessageInfoRelaxed;\nfunction storeCommonMessageInfoRelaxed(source) {\n return (builder) => {\n if (source.type === 'internal') {\n builder.storeBit(0);\n builder.storeBit(source.ihrDisabled);\n builder.storeBit(source.bounce);\n builder.storeBit(source.bounced);\n builder.storeAddress(source.src);\n builder.storeAddress(source.dest);\n builder.store((0, CurrencyCollection_1.storeCurrencyCollection)(source.value));\n builder.storeCoins(source.ihrFee);\n builder.storeCoins(source.forwardFee);\n builder.storeUint(source.createdLt, 64);\n builder.storeUint(source.createdAt, 32);\n }\n else if (source.type === 'external-out') {\n builder.storeBit(1);\n builder.storeBit(1);\n builder.storeAddress(source.src);\n builder.storeAddress(source.dest);\n builder.storeUint(source.createdLt, 64);\n builder.storeUint(source.createdAt, 32);\n }\n else {\n throw new Error('Unknown CommonMessageInfo type');\n }\n };\n}\nexports.storeCommonMessageInfoRelaxed = storeCommonMessageInfoRelaxed;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeMessageRelaxed = exports.loadMessageRelaxed = void 0;\nconst Builder_1 = require(\"../boc/Builder\");\nconst CommonMessageInfoRelaxed_1 = require(\"./CommonMessageInfoRelaxed\");\nconst StateInit_1 = require(\"./StateInit\");\nfunction loadMessageRelaxed(slice) {\n const info = (0, CommonMessageInfoRelaxed_1.loadCommonMessageInfoRelaxed)(slice);\n let init = null;\n if (slice.loadBit()) {\n if (!slice.loadBit()) {\n init = (0, StateInit_1.loadStateInit)(slice);\n }\n else {\n init = (0, StateInit_1.loadStateInit)(slice.loadRef().beginParse());\n }\n }\n const body = slice.loadBit() ? slice.loadRef() : slice.asCell();\n return {\n info,\n init,\n body\n };\n}\nexports.loadMessageRelaxed = loadMessageRelaxed;\nfunction storeMessageRelaxed(message, opts) {\n return (builder) => {\n // Store CommonMsgInfo\n builder.store((0, CommonMessageInfoRelaxed_1.storeCommonMessageInfoRelaxed)(message.info));\n // Store init\n if (message.init) {\n builder.storeBit(true);\n let initCell = (0, Builder_1.beginCell)().store((0, StateInit_1.storeStateInit)(message.init));\n // Check if ref is needed\n let needRef = false;\n if (opts && opts.forceRef) {\n needRef = true;\n }\n else {\n if (builder.availableBits - 2 /* At least on byte for ref flag */ >= initCell.bits) {\n needRef = false;\n }\n else {\n needRef = true;\n }\n }\n // Store ref\n if (needRef) {\n builder.storeBit(true);\n builder.storeRef(initCell);\n }\n else {\n builder.storeBit(false);\n builder.storeBuilder(initCell);\n }\n }\n else {\n builder.storeBit(false);\n }\n // Store body\n let needRef = false;\n if (opts && opts.forceRef) {\n needRef = true;\n }\n else {\n /*\n 1. If at least one bit for ref flag\n 2. If enough space for refs\n 3. If not exotic\n */\n if (builder.availableBits - 1 >= message.body.bits.length &&\n builder.refs + message.body.refs.length <= 4 &&\n !message.body.isExotic) {\n needRef = false;\n }\n else {\n needRef = true;\n }\n }\n if (needRef) {\n builder.storeBit(true);\n builder.storeRef(message.body);\n }\n else {\n builder.storeBit(false);\n builder.storeBuilder(message.body.asBuilder());\n }\n };\n}\nexports.storeMessageRelaxed = storeMessageRelaxed;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeLibRef = exports.loadLibRef = void 0;\nfunction loadLibRef(slice) {\n const type = slice.loadUint(1);\n if (type === 0) {\n return {\n type: 'hash',\n libHash: slice.loadBuffer(32)\n };\n }\n else {\n return {\n type: 'ref',\n library: slice.loadRef()\n };\n }\n}\nexports.loadLibRef = loadLibRef;\nfunction storeLibRef(src) {\n return (builder) => {\n if (src.type === 'hash') {\n builder.storeUint(0, 1);\n builder.storeBuffer(src.libHash);\n }\n else {\n builder.storeUint(1, 1);\n builder.storeRef(src.library);\n }\n };\n}\nexports.storeLibRef = storeLibRef;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadOutList = exports.storeOutList = exports.loadOutAction = exports.storeOutAction = void 0;\nconst MessageRelaxed_1 = require(\"./MessageRelaxed\");\nconst Builder_1 = require(\"../boc/Builder\");\nconst CurrencyCollection_1 = require(\"./CurrencyCollection\");\nconst LibRef_1 = require(\"./LibRef\");\nfunction storeOutAction(action) {\n switch (action.type) {\n case 'sendMsg':\n return storeOutActionSendMsg(action);\n case 'setCode':\n return storeOutActionSetCode(action);\n case 'reserve':\n return storeOutActionReserve(action);\n case 'changeLibrary':\n return storeOutActionChangeLibrary(action);\n default:\n throw new Error(`Unknown action type ${action.type}`);\n }\n}\nexports.storeOutAction = storeOutAction;\n/*\naction_send_msg#0ec3c86d mode:(## 8)\n out_msg:^(MessageRelaxed Any) = OutAction;\n*/\nconst outActionSendMsgTag = 0x0ec3c86d;\nfunction storeOutActionSendMsg(action) {\n return (builder) => {\n builder.storeUint(outActionSendMsgTag, 32)\n .storeUint(action.mode, 8)\n .storeRef((0, Builder_1.beginCell)().store((0, MessageRelaxed_1.storeMessageRelaxed)(action.outMsg)).endCell());\n };\n}\n/*\naction_set_code#ad4de08e new_code:^Cell = OutAction;\n */\nconst outActionSetCodeTag = 0xad4de08e;\nfunction storeOutActionSetCode(action) {\n return (builder) => {\n builder.storeUint(outActionSetCodeTag, 32).storeRef(action.newCode);\n };\n}\n/*\naction_reserve_currency#36e6b809 mode:(## 8)\n currency:CurrencyCollection = OutAction;\n */\nconst outActionReserveTag = 0x36e6b809;\nfunction storeOutActionReserve(action) {\n return (builder) => {\n builder.storeUint(outActionReserveTag, 32)\n .storeUint(action.mode, 8)\n .store((0, CurrencyCollection_1.storeCurrencyCollection)(action.currency));\n };\n}\n/*\naction_change_library#26fa1dd4 mode:(## 7)\n libref:LibRef = OutAction;\n */\nconst outActionChangeLibraryTag = 0x26fa1dd4;\nfunction storeOutActionChangeLibrary(action) {\n return (builder) => {\n builder.storeUint(outActionChangeLibraryTag, 32)\n .storeUint(action.mode, 7)\n .store((0, LibRef_1.storeLibRef)(action.libRef));\n };\n}\nfunction loadOutAction(slice) {\n const tag = slice.loadUint(32);\n if (tag === outActionSendMsgTag) {\n const mode = slice.loadUint(8);\n const outMsg = (0, MessageRelaxed_1.loadMessageRelaxed)(slice.loadRef().beginParse());\n return {\n type: 'sendMsg',\n mode,\n outMsg\n };\n }\n if (tag === outActionSetCodeTag) {\n const newCode = slice.loadRef();\n return {\n type: 'setCode',\n newCode\n };\n }\n if (tag === outActionReserveTag) {\n const mode = slice.loadUint(8);\n const currency = (0, CurrencyCollection_1.loadCurrencyCollection)(slice);\n return {\n type: 'reserve',\n mode,\n currency\n };\n }\n if (tag === outActionChangeLibraryTag) {\n const mode = slice.loadUint(7);\n const libRef = (0, LibRef_1.loadLibRef)(slice);\n return {\n type: 'changeLibrary',\n mode,\n libRef\n };\n }\n throw new Error(`Unknown out action tag 0x${tag.toString(16)}`);\n}\nexports.loadOutAction = loadOutAction;\n/*\nout_list_empty$_ = OutList 0;\nout_list$_ {n:#} prev:^(OutList n) action:OutAction\n = OutList (n + 1);\n */\nfunction storeOutList(actions) {\n const cell = actions.reduce((cell, action) => (0, Builder_1.beginCell)()\n .storeRef(cell)\n .store(storeOutAction(action))\n .endCell(), (0, Builder_1.beginCell)().endCell());\n return (builder) => {\n builder.storeSlice(cell.beginParse());\n };\n}\nexports.storeOutList = storeOutList;\nfunction loadOutList(slice) {\n const actions = [];\n while (slice.remainingRefs) {\n const nextCell = slice.loadRef();\n actions.push(loadOutAction(slice));\n slice = nextCell.beginParse();\n }\n return actions.reverse();\n}\nexports.loadOutList = loadOutList;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeCommonMessageInfo = exports.loadCommonMessageInfo = void 0;\nconst CurrencyCollection_1 = require(\"./CurrencyCollection\");\nfunction loadCommonMessageInfo(slice) {\n // Internal message\n if (!slice.loadBit()) {\n const ihrDisabled = slice.loadBit();\n const bounce = slice.loadBit();\n const bounced = slice.loadBit();\n const src = slice.loadAddress();\n const dest = slice.loadAddress();\n const value = (0, CurrencyCollection_1.loadCurrencyCollection)(slice);\n const ihrFee = slice.loadCoins();\n const forwardFee = slice.loadCoins();\n const createdLt = slice.loadUintBig(64);\n const createdAt = slice.loadUint(32);\n return {\n type: 'internal',\n ihrDisabled,\n bounce,\n bounced,\n src,\n dest,\n value,\n ihrFee,\n forwardFee,\n createdLt,\n createdAt,\n };\n }\n // External In mesage\n if (!slice.loadBit()) {\n const src = slice.loadMaybeExternalAddress();\n const dest = slice.loadAddress();\n const importFee = slice.loadCoins();\n return {\n type: 'external-in',\n src,\n dest,\n importFee,\n };\n }\n // External Out message\n const src = slice.loadAddress();\n const dest = slice.loadMaybeExternalAddress();\n const createdLt = slice.loadUintBig(64);\n const createdAt = slice.loadUint(32);\n return {\n type: 'external-out',\n src,\n dest,\n createdLt,\n createdAt,\n };\n}\nexports.loadCommonMessageInfo = loadCommonMessageInfo;\nfunction storeCommonMessageInfo(source) {\n return (builder) => {\n if (source.type === 'internal') {\n builder.storeBit(0);\n builder.storeBit(source.ihrDisabled);\n builder.storeBit(source.bounce);\n builder.storeBit(source.bounced);\n builder.storeAddress(source.src);\n builder.storeAddress(source.dest);\n builder.store((0, CurrencyCollection_1.storeCurrencyCollection)(source.value));\n builder.storeCoins(source.ihrFee);\n builder.storeCoins(source.forwardFee);\n builder.storeUint(source.createdLt, 64);\n builder.storeUint(source.createdAt, 32);\n }\n else if (source.type === 'external-in') {\n builder.storeBit(1);\n builder.storeBit(0);\n builder.storeAddress(source.src);\n builder.storeAddress(source.dest);\n builder.storeCoins(source.importFee);\n }\n else if (source.type === 'external-out') {\n builder.storeBit(1);\n builder.storeBit(1);\n builder.storeAddress(source.src);\n builder.storeAddress(source.dest);\n builder.storeUint(source.createdLt, 64);\n builder.storeUint(source.createdAt, 32);\n }\n else {\n throw new Error('Unknown CommonMessageInfo type');\n }\n };\n}\nexports.storeCommonMessageInfo = storeCommonMessageInfo;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeComputeSkipReason = exports.loadComputeSkipReason = void 0;\nfunction loadComputeSkipReason(slice) {\n let reason = slice.loadUint(2);\n if (reason === 0x00) {\n return 'no-state';\n }\n else if (reason === 0x01) {\n return 'bad-state';\n }\n else if (reason === 0x02) {\n return 'no-gas';\n }\n throw new Error(`Unknown ComputeSkipReason: ${reason}`);\n}\nexports.loadComputeSkipReason = loadComputeSkipReason;\nfunction storeComputeSkipReason(src) {\n return (builder) => {\n if (src === 'no-state') {\n builder.storeUint(0x00, 2);\n }\n else if (src === 'bad-state') {\n builder.storeUint(0x01, 2);\n }\n else if (src === 'no-gas') {\n builder.storeUint(0x02, 2);\n }\n else {\n throw new Error(`Unknown ComputeSkipReason: ${src}`);\n }\n };\n}\nexports.storeComputeSkipReason = storeComputeSkipReason;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeDepthBalanceInfo = exports.loadDepthBalanceInfo = void 0;\nconst CurrencyCollection_1 = require(\"./CurrencyCollection\");\nfunction loadDepthBalanceInfo(slice) {\n let splitDepth = slice.loadUint(5);\n return {\n splitDepth,\n balance: (0, CurrencyCollection_1.loadCurrencyCollection)(slice)\n };\n}\nexports.loadDepthBalanceInfo = loadDepthBalanceInfo;\nfunction storeDepthBalanceInfo(src) {\n return (builder) => {\n builder.storeUint(src.splitDepth, 5);\n builder.store((0, CurrencyCollection_1.storeCurrencyCollection)(src.balance));\n };\n}\nexports.storeDepthBalanceInfo = storeDepthBalanceInfo;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeHashUpdate = exports.loadHashUpdate = void 0;\nfunction loadHashUpdate(slice) {\n if (slice.loadUint(8) !== 0x72) {\n throw Error('Invalid data');\n }\n const oldHash = slice.loadBuffer(32);\n const newHash = slice.loadBuffer(32);\n return { oldHash, newHash };\n}\nexports.loadHashUpdate = loadHashUpdate;\nfunction storeHashUpdate(src) {\n return (builder) => {\n builder.storeUint(0x72, 8);\n builder.storeBuffer(src.oldHash);\n builder.storeBuffer(src.newHash);\n };\n}\nexports.storeHashUpdate = storeHashUpdate;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadMasterchainStateExtra = void 0;\nconst Dictionary_1 = require(\"../dict/Dictionary\");\nconst CurrencyCollection_1 = require(\"./CurrencyCollection\");\nfunction loadMasterchainStateExtra(cs) {\n // Check magic\n if (cs.loadUint(16) !== 0xcc26) {\n throw Error('Invalid data');\n }\n // Skip shard_hashes\n if (cs.loadBit()) {\n cs.loadRef();\n }\n // Read config\n let configAddress = cs.loadUintBig(256);\n let config = Dictionary_1.Dictionary.load(Dictionary_1.Dictionary.Keys.Int(32), Dictionary_1.Dictionary.Values.Cell(), cs);\n // Rad global balance\n const globalBalance = (0, CurrencyCollection_1.loadCurrencyCollection)(cs);\n return {\n config,\n configAddress,\n globalBalance\n };\n}\nexports.loadMasterchainStateExtra = loadMasterchainStateExtra;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MessageValue = exports.storeMessage = exports.loadMessage = void 0;\nconst Builder_1 = require(\"../boc/Builder\");\nconst CommonMessageInfo_1 = require(\"./CommonMessageInfo\");\nconst StateInit_1 = require(\"./StateInit\");\nfunction loadMessage(slice) {\n const info = (0, CommonMessageInfo_1.loadCommonMessageInfo)(slice);\n let init = null;\n if (slice.loadBit()) {\n if (!slice.loadBit()) {\n init = (0, StateInit_1.loadStateInit)(slice);\n }\n else {\n init = (0, StateInit_1.loadStateInit)(slice.loadRef().beginParse());\n }\n }\n const body = slice.loadBit() ? slice.loadRef() : slice.asCell();\n return {\n info,\n init,\n body\n };\n}\nexports.loadMessage = loadMessage;\nfunction storeMessage(message, opts) {\n return (builder) => {\n // Store CommonMsgInfo\n builder.store((0, CommonMessageInfo_1.storeCommonMessageInfo)(message.info));\n // Store init\n if (message.init) {\n builder.storeBit(true);\n let initCell = (0, Builder_1.beginCell)().store((0, StateInit_1.storeStateInit)(message.init));\n // Check if need to store it in ref\n let needRef = false;\n if (opts && opts.forceRef) {\n needRef = true;\n }\n else {\n needRef = builder.availableBits - 2 /* At least two bits for ref flags */ < initCell.bits + message.body.bits.length;\n }\n // Persist init\n if (needRef) {\n builder.storeBit(true);\n builder.storeRef(initCell);\n }\n else {\n builder.storeBit(false);\n builder.storeBuilder(initCell);\n }\n }\n else {\n builder.storeBit(false);\n }\n // Store body\n let needRef = false;\n if (opts && opts.forceRef) {\n needRef = true;\n }\n else {\n needRef = builder.availableBits - 1 /* At least one bit for ref flag */ < message.body.bits.length ||\n builder.refs + message.body.refs.length > 4;\n }\n if (needRef) {\n builder.storeBit(true);\n builder.storeRef(message.body);\n }\n else {\n builder.storeBit(false);\n builder.storeBuilder(message.body.asBuilder());\n }\n };\n}\nexports.storeMessage = storeMessage;\nexports.MessageValue = {\n serialize(src, builder) {\n builder.storeRef((0, Builder_1.beginCell)()\n .store(storeMessage(src)));\n },\n parse(slice) {\n return loadMessage(slice.loadRef().beginParse());\n }\n};\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SendMode = void 0;\nvar SendMode;\n(function (SendMode) {\n SendMode[SendMode[\"CARRY_ALL_REMAINING_BALANCE\"] = 128] = \"CARRY_ALL_REMAINING_BALANCE\";\n SendMode[SendMode[\"CARRY_ALL_REMAINING_INCOMING_VALUE\"] = 64] = \"CARRY_ALL_REMAINING_INCOMING_VALUE\";\n SendMode[SendMode[\"DESTROY_ACCOUNT_IF_ZERO\"] = 32] = \"DESTROY_ACCOUNT_IF_ZERO\";\n SendMode[SendMode[\"PAY_GAS_SEPARATELY\"] = 1] = \"PAY_GAS_SEPARATELY\";\n SendMode[SendMode[\"IGNORE_ERRORS\"] = 2] = \"IGNORE_ERRORS\";\n SendMode[SendMode[\"NONE\"] = 0] = \"NONE\";\n})(SendMode || (exports.SendMode = SendMode = {}));\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ReserveMode = void 0;\nvar ReserveMode;\n(function (ReserveMode) {\n ReserveMode[ReserveMode[\"THIS_AMOUNT\"] = 0] = \"THIS_AMOUNT\";\n ReserveMode[ReserveMode[\"LEAVE_THIS_AMOUNT\"] = 1] = \"LEAVE_THIS_AMOUNT\";\n ReserveMode[ReserveMode[\"AT_MOST_THIS_AMOUNT\"] = 2] = \"AT_MOST_THIS_AMOUNT\";\n ReserveMode[ReserveMode[\"LEAVE_MAX_THIS_AMOUNT\"] = 3] = \"LEAVE_MAX_THIS_AMOUNT\";\n ReserveMode[ReserveMode[\"BEFORE_BALANCE_PLUS_THIS_AMOUNT\"] = 4] = \"BEFORE_BALANCE_PLUS_THIS_AMOUNT\";\n ReserveMode[ReserveMode[\"LEAVE_BBALANCE_PLUS_THIS_AMOUNT\"] = 5] = \"LEAVE_BBALANCE_PLUS_THIS_AMOUNT\";\n ReserveMode[ReserveMode[\"BEFORE_BALANCE_MINUS_THIS_AMOUNT\"] = 12] = \"BEFORE_BALANCE_MINUS_THIS_AMOUNT\";\n ReserveMode[ReserveMode[\"LEAVE_BEFORE_BALANCE_MINUS_THIS_AMOUNT\"] = 13] = \"LEAVE_BEFORE_BALANCE_MINUS_THIS_AMOUNT\";\n})(ReserveMode || (exports.ReserveMode = ReserveMode = {}));\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeShardAccount = exports.loadShardAccount = void 0;\nconst Builder_1 = require(\"../boc/Builder\");\nconst Account_1 = require(\"./Account\");\nfunction loadShardAccount(slice) {\n let accountRef = slice.loadRef();\n let account = undefined;\n if (!accountRef.isExotic) {\n let accountSlice = accountRef.beginParse();\n if (accountSlice.loadBit()) {\n account = (0, Account_1.loadAccount)(accountSlice);\n }\n }\n return {\n account,\n lastTransactionHash: slice.loadUintBig(256),\n lastTransactionLt: slice.loadUintBig(64)\n };\n}\nexports.loadShardAccount = loadShardAccount;\nfunction storeShardAccount(src) {\n return (builder) => {\n if (src.account) {\n builder.storeRef((0, Builder_1.beginCell)()\n .storeBit(true)\n .store((0, Account_1.storeAccount)(src.account)));\n }\n else {\n builder.storeRef((0, Builder_1.beginCell)()\n .storeBit(false));\n }\n builder.storeUint(src.lastTransactionHash, 256);\n builder.storeUint(src.lastTransactionLt, 64);\n };\n}\nexports.storeShardAccount = storeShardAccount;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeShardAccounts = exports.loadShardAccounts = exports.ShardAccountRefValue = void 0;\nconst Dictionary_1 = require(\"../dict/Dictionary\");\nconst DepthBalanceInfo_1 = require(\"./DepthBalanceInfo\");\nconst ShardAccount_1 = require(\"./ShardAccount\");\nexports.ShardAccountRefValue = {\n parse: (cs) => {\n let depthBalanceInfo = (0, DepthBalanceInfo_1.loadDepthBalanceInfo)(cs);\n let shardAccount = (0, ShardAccount_1.loadShardAccount)(cs);\n return {\n depthBalanceInfo,\n shardAccount\n };\n },\n serialize(src, builder) {\n builder.store((0, DepthBalanceInfo_1.storeDepthBalanceInfo)(src.depthBalanceInfo));\n builder.store((0, ShardAccount_1.storeShardAccount)(src.shardAccount));\n },\n};\nfunction loadShardAccounts(cs) {\n return Dictionary_1.Dictionary.load(Dictionary_1.Dictionary.Keys.BigUint(256), exports.ShardAccountRefValue, cs);\n}\nexports.loadShardAccounts = loadShardAccounts;\nfunction storeShardAccounts(src) {\n return (Builder) => {\n Builder.storeDict(src);\n };\n}\nexports.storeShardAccounts = storeShardAccounts;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeShardIdent = exports.loadShardIdent = void 0;\nfunction loadShardIdent(slice) {\n if (slice.loadUint(2) !== 0) {\n throw Error('Invalid data');\n }\n return {\n shardPrefixBits: slice.loadUint(6),\n workchainId: slice.loadInt(32),\n shardPrefix: slice.loadUintBig(64)\n };\n}\nexports.loadShardIdent = loadShardIdent;\nfunction storeShardIdent(src) {\n return (builder) => {\n builder.storeUint(0, 2);\n builder.storeUint(src.shardPrefixBits, 6);\n builder.storeInt(src.workchainId, 32);\n builder.storeUint(src.shardPrefix, 64);\n };\n}\nexports.storeShardIdent = storeShardIdent;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadShardStateUnsplit = void 0;\nconst MasterchainStateExtra_1 = require(\"./MasterchainStateExtra\");\nconst ShardAccounts_1 = require(\"./ShardAccounts\");\nconst ShardIdent_1 = require(\"./ShardIdent\");\nfunction loadShardStateUnsplit(cs) {\n if (cs.loadUint(32) !== 0x9023afe2) {\n throw Error('Invalid data');\n }\n let globalId = cs.loadInt(32);\n let shardId = (0, ShardIdent_1.loadShardIdent)(cs);\n let seqno = cs.loadUint(32);\n let vertSeqNo = cs.loadUint(32);\n let genUtime = cs.loadUint(32);\n let genLt = cs.loadUintBig(64);\n let minRefMcSeqno = cs.loadUint(32);\n // Skip OutMsgQueueInfo: usually exotic\n cs.loadRef();\n let beforeSplit = cs.loadBit();\n // Parse accounts\n let shardAccountsRef = cs.loadRef();\n let accounts = undefined;\n if (!shardAccountsRef.isExotic) {\n accounts = (0, ShardAccounts_1.loadShardAccounts)(shardAccountsRef.beginParse());\n }\n // Skip (not used by apps)\n cs.loadRef();\n // Parse extras\n let mcStateExtra = cs.loadBit();\n let extras = null;\n if (mcStateExtra) {\n let cell = cs.loadRef();\n if (!cell.isExotic) {\n extras = (0, MasterchainStateExtra_1.loadMasterchainStateExtra)(cell.beginParse());\n }\n }\n ;\n return {\n globalId,\n shardId,\n seqno,\n vertSeqNo,\n genUtime,\n genLt,\n minRefMcSeqno,\n beforeSplit,\n accounts,\n extras\n };\n}\nexports.loadShardStateUnsplit = loadShardStateUnsplit;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeSplitMergeInfo = exports.loadSplitMergeInfo = void 0;\nfunction loadSplitMergeInfo(slice) {\n let currentShardPrefixLength = slice.loadUint(6);\n let accountSplitDepth = slice.loadUint(6);\n let thisAddress = slice.loadUintBig(256);\n let siblingAddress = slice.loadUintBig(256);\n return {\n currentShardPrefixLength,\n accountSplitDepth,\n thisAddress,\n siblingAddress\n };\n}\nexports.loadSplitMergeInfo = loadSplitMergeInfo;\nfunction storeSplitMergeInfo(src) {\n return (builder) => {\n builder.storeUint(src.currentShardPrefixLength, 6);\n builder.storeUint(src.accountSplitDepth, 6);\n builder.storeUint(src.thisAddress, 256);\n builder.storeUint(src.siblingAddress, 256);\n };\n}\nexports.storeSplitMergeInfo = storeSplitMergeInfo;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeStorageUsedShort = exports.loadStorageUsedShort = void 0;\nfunction loadStorageUsedShort(slice) {\n let cells = slice.loadVarUintBig(3);\n let bits = slice.loadVarUintBig(3);\n return {\n cells,\n bits\n };\n}\nexports.loadStorageUsedShort = loadStorageUsedShort;\nfunction storeStorageUsedShort(src) {\n return (builder) => {\n builder.storeVarUint(src.cells, 3);\n builder.storeVarUint(src.bits, 3);\n };\n}\nexports.storeStorageUsedShort = storeStorageUsedShort;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeTransactionActionPhase = exports.loadTransactionActionPhase = void 0;\nconst AccountStatusChange_1 = require(\"./AccountStatusChange\");\nconst StorageUsedShort_1 = require(\"./StorageUsedShort\");\nfunction loadTransactionActionPhase(slice) {\n let success = slice.loadBit();\n let valid = slice.loadBit();\n let noFunds = slice.loadBit();\n let statusChange = (0, AccountStatusChange_1.loadAccountStatusChange)(slice);\n let totalFwdFees = slice.loadBit() ? slice.loadCoins() : undefined;\n let totalActionFees = slice.loadBit() ? slice.loadCoins() : undefined;\n let resultCode = slice.loadInt(32);\n let resultArg = slice.loadBit() ? slice.loadInt(32) : undefined;\n let totalActions = slice.loadUint(16);\n let specActions = slice.loadUint(16);\n let skippedActions = slice.loadUint(16);\n let messagesCreated = slice.loadUint(16);\n let actionListHash = slice.loadUintBig(256);\n let totalMessageSize = (0, StorageUsedShort_1.loadStorageUsedShort)(slice);\n return {\n success,\n valid,\n noFunds,\n statusChange,\n totalFwdFees,\n totalActionFees,\n resultCode,\n resultArg,\n totalActions,\n specActions,\n skippedActions,\n messagesCreated,\n actionListHash,\n totalMessageSize\n };\n}\nexports.loadTransactionActionPhase = loadTransactionActionPhase;\nfunction storeTransactionActionPhase(src) {\n return (builder) => {\n builder.storeBit(src.success);\n builder.storeBit(src.valid);\n builder.storeBit(src.noFunds);\n builder.store((0, AccountStatusChange_1.storeAccountStatusChange)(src.statusChange));\n builder.storeMaybeCoins(src.totalFwdFees);\n builder.storeMaybeCoins(src.totalActionFees);\n builder.storeInt(src.resultCode, 32);\n builder.storeMaybeInt(src.resultArg, 32);\n builder.storeUint(src.totalActions, 16);\n builder.storeUint(src.specActions, 16);\n builder.storeUint(src.skippedActions, 16);\n builder.storeUint(src.messagesCreated, 16);\n builder.storeUint(src.actionListHash, 256);\n builder.store((0, StorageUsedShort_1.storeStorageUsedShort)(src.totalMessageSize));\n };\n}\nexports.storeTransactionActionPhase = storeTransactionActionPhase;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeTransactionBouncePhase = exports.loadTransactionBouncePhase = void 0;\nconst StorageUsedShort_1 = require(\"./StorageUsedShort\");\nfunction loadTransactionBouncePhase(slice) {\n // Ok\n if (slice.loadBit()) {\n let messageSize = (0, StorageUsedShort_1.loadStorageUsedShort)(slice);\n let messageFees = slice.loadCoins();\n let forwardFees = slice.loadCoins();\n return {\n type: \"ok\",\n messageSize,\n messageFees,\n forwardFees,\n };\n }\n // No funds\n if (slice.loadBit()) {\n let messageSize = (0, StorageUsedShort_1.loadStorageUsedShort)(slice);\n let requiredForwardFees = slice.loadCoins();\n return {\n type: \"no-funds\",\n messageSize,\n requiredForwardFees,\n };\n }\n // Negative funds\n return {\n type: \"negative-funds\",\n };\n}\nexports.loadTransactionBouncePhase = loadTransactionBouncePhase;\nfunction storeTransactionBouncePhase(src) {\n return (builder) => {\n if (src.type === 'ok') {\n builder.storeBit(true);\n builder.store((0, StorageUsedShort_1.storeStorageUsedShort)(src.messageSize));\n builder.storeCoins(src.messageFees);\n builder.storeCoins(src.forwardFees);\n }\n else if (src.type === 'negative-funds') {\n builder.storeBit(false);\n builder.storeBit(false);\n }\n else if (src.type === 'no-funds') {\n builder.storeBit(false);\n builder.storeBit(true);\n builder.store((0, StorageUsedShort_1.storeStorageUsedShort)(src.messageSize));\n builder.storeCoins(src.requiredForwardFees);\n }\n else {\n throw new Error(\"Invalid TransactionBouncePhase type\");\n }\n };\n}\nexports.storeTransactionBouncePhase = storeTransactionBouncePhase;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeTransactionComputePhase = exports.loadTransactionComputePhase = void 0;\nconst Builder_1 = require(\"../boc/Builder\");\nconst ComputeSkipReason_1 = require(\"./ComputeSkipReason\");\nfunction loadTransactionComputePhase(slice) {\n // Skipped\n if (!slice.loadBit()) {\n let reason = (0, ComputeSkipReason_1.loadComputeSkipReason)(slice);\n return {\n type: 'skipped',\n reason\n };\n }\n let success = slice.loadBit();\n let messageStateUsed = slice.loadBit();\n let accountActivated = slice.loadBit();\n let gasFees = slice.loadCoins();\n const vmState = slice.loadRef().beginParse();\n let gasUsed = vmState.loadVarUintBig(3);\n let gasLimit = vmState.loadVarUintBig(3);\n let gasCredit = vmState.loadBit() ? vmState.loadVarUintBig(2) : undefined;\n let mode = vmState.loadUint(8);\n let exitCode = vmState.loadInt(32);\n let exitArg = vmState.loadBit() ? vmState.loadInt(32) : undefined;\n let vmSteps = vmState.loadUint(32);\n let vmInitStateHash = vmState.loadUintBig(256);\n let vmFinalStateHash = vmState.loadUintBig(256);\n return {\n type: 'vm',\n success,\n messageStateUsed,\n accountActivated,\n gasFees,\n gasUsed,\n gasLimit,\n gasCredit,\n mode,\n exitCode,\n exitArg,\n vmSteps,\n vmInitStateHash,\n vmFinalStateHash\n };\n}\nexports.loadTransactionComputePhase = loadTransactionComputePhase;\nfunction storeTransactionComputePhase(src) {\n return (builder) => {\n if (src.type === 'skipped') {\n builder.storeBit(0);\n builder.store((0, ComputeSkipReason_1.storeComputeSkipReason)(src.reason));\n return;\n }\n builder.storeBit(1);\n builder.storeBit(src.success);\n builder.storeBit(src.messageStateUsed);\n builder.storeBit(src.accountActivated);\n builder.storeCoins(src.gasFees);\n builder.storeRef((0, Builder_1.beginCell)()\n .storeVarUint(src.gasUsed, 3)\n .storeVarUint(src.gasLimit, 3)\n .store((b) => (src.gasCredit !== undefined && src.gasCredit !== null) ? b.storeBit(1).storeVarUint(src.gasCredit, 2) : b.storeBit(0))\n .storeUint(src.mode, 8)\n .storeInt(src.exitCode, 32)\n .store((b) => (src.exitArg !== undefined && src.exitArg !== null) ? b.storeBit(1).storeInt(src.exitArg, 32) : b.storeBit(0))\n .storeUint(src.vmSteps, 32)\n .storeUint(src.vmInitStateHash, 256)\n .storeUint(src.vmFinalStateHash, 256)\n .endCell());\n };\n}\nexports.storeTransactionComputePhase = storeTransactionComputePhase;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeTransactionCreditPhase = exports.loadTransactionCreditPhase = void 0;\nconst CurrencyCollection_1 = require(\"./CurrencyCollection\");\nfunction loadTransactionCreditPhase(slice) {\n const dueFeesColelcted = slice.loadBit() ? slice.loadCoins() : undefined;\n const credit = (0, CurrencyCollection_1.loadCurrencyCollection)(slice);\n return {\n dueFeesColelcted,\n credit\n };\n}\nexports.loadTransactionCreditPhase = loadTransactionCreditPhase;\nfunction storeTransactionCreditPhase(src) {\n return (builder) => {\n if (src.dueFeesColelcted === null || src.dueFeesColelcted === undefined) {\n builder.storeBit(false);\n }\n else {\n builder.storeBit(true);\n builder.storeCoins(src.dueFeesColelcted);\n }\n builder.store((0, CurrencyCollection_1.storeCurrencyCollection)(src.credit));\n };\n}\nexports.storeTransactionCreditPhase = storeTransactionCreditPhase;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeTransactionsStoragePhase = exports.loadTransactionStoragePhase = void 0;\nconst AccountStatusChange_1 = require(\"./AccountStatusChange\");\nfunction loadTransactionStoragePhase(slice) {\n const storageFeesCollected = slice.loadCoins();\n let storageFeesDue = undefined;\n if (slice.loadBit()) {\n storageFeesDue = slice.loadCoins();\n }\n const statusChange = (0, AccountStatusChange_1.loadAccountStatusChange)(slice);\n return {\n storageFeesCollected,\n storageFeesDue,\n statusChange\n };\n}\nexports.loadTransactionStoragePhase = loadTransactionStoragePhase;\nfunction storeTransactionsStoragePhase(src) {\n return (builder) => {\n builder.storeCoins(src.storageFeesCollected);\n if (src.storageFeesDue === null || src.storageFeesDue === undefined) {\n builder.storeBit(false);\n }\n else {\n builder.storeBit(true);\n builder.storeCoins(src.storageFeesDue);\n }\n builder.store((0, AccountStatusChange_1.storeAccountStatusChange)(src.statusChange));\n };\n}\nexports.storeTransactionsStoragePhase = storeTransactionsStoragePhase;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeTransactionDescription = exports.loadTransactionDescription = void 0;\nconst Builder_1 = require(\"../boc/Builder\");\nconst SplitMergeInfo_1 = require(\"./SplitMergeInfo\");\nconst Transaction_1 = require(\"./Transaction\");\nconst TransactionActionPhase_1 = require(\"./TransactionActionPhase\");\nconst TransactionBouncePhase_1 = require(\"./TransactionBouncePhase\");\nconst TransactionComputePhase_1 = require(\"./TransactionComputePhase\");\nconst TransactionCreditPhase_1 = require(\"./TransactionCreditPhase\");\nconst TransactionStoragePhase_1 = require(\"./TransactionStoragePhase\");\nfunction loadTransactionDescription(slice) {\n let type = slice.loadUint(4);\n if (type === 0x00) {\n const creditFirst = slice.loadBit();\n let storagePhase = undefined;\n if (slice.loadBit()) {\n storagePhase = (0, TransactionStoragePhase_1.loadTransactionStoragePhase)(slice);\n }\n let creditPhase = undefined;\n if (slice.loadBit()) {\n creditPhase = (0, TransactionCreditPhase_1.loadTransactionCreditPhase)(slice);\n }\n let computePhase = (0, TransactionComputePhase_1.loadTransactionComputePhase)(slice);\n let actionPhase = undefined;\n if (slice.loadBit()) {\n actionPhase = (0, TransactionActionPhase_1.loadTransactionActionPhase)(slice.loadRef().beginParse());\n }\n let aborted = slice.loadBit();\n let bouncePhase = undefined;\n if (slice.loadBit()) {\n bouncePhase = (0, TransactionBouncePhase_1.loadTransactionBouncePhase)(slice);\n }\n const destroyed = slice.loadBit();\n return {\n type: 'generic',\n creditFirst,\n storagePhase,\n creditPhase,\n computePhase,\n actionPhase,\n bouncePhase,\n aborted,\n destroyed\n };\n }\n if (type === 0x01) {\n return {\n type: 'storage',\n storagePhase: (0, TransactionStoragePhase_1.loadTransactionStoragePhase)(slice)\n };\n }\n if (type === 0x2 || type === 0x03) {\n const isTock = type === 0x03;\n let storagePhase = (0, TransactionStoragePhase_1.loadTransactionStoragePhase)(slice);\n let computePhase = (0, TransactionComputePhase_1.loadTransactionComputePhase)(slice);\n let actionPhase = undefined;\n if (slice.loadBit()) {\n actionPhase = (0, TransactionActionPhase_1.loadTransactionActionPhase)(slice.loadRef().beginParse());\n }\n const aborted = slice.loadBit();\n const destroyed = slice.loadBit();\n return {\n type: 'tick-tock',\n isTock,\n storagePhase,\n computePhase,\n actionPhase,\n aborted,\n destroyed\n };\n }\n if (type === 0x04) {\n let splitInfo = (0, SplitMergeInfo_1.loadSplitMergeInfo)(slice);\n let storagePhase = undefined;\n if (slice.loadBit()) {\n storagePhase = (0, TransactionStoragePhase_1.loadTransactionStoragePhase)(slice);\n }\n let computePhase = (0, TransactionComputePhase_1.loadTransactionComputePhase)(slice);\n let actionPhase = undefined;\n if (slice.loadBit()) {\n actionPhase = (0, TransactionActionPhase_1.loadTransactionActionPhase)(slice.loadRef().beginParse());\n }\n const aborted = slice.loadBit();\n const destroyed = slice.loadBit();\n return {\n type: 'split-prepare',\n splitInfo,\n storagePhase,\n computePhase,\n actionPhase,\n aborted,\n destroyed\n };\n }\n if (type === 0x05) {\n let splitInfo = (0, SplitMergeInfo_1.loadSplitMergeInfo)(slice);\n let prepareTransaction = (0, Transaction_1.loadTransaction)(slice.loadRef().beginParse());\n const installed = slice.loadBit();\n return {\n type: 'split-install',\n splitInfo,\n prepareTransaction,\n installed\n };\n }\n throw Error(`Unsupported transaction description type ${type}`);\n}\nexports.loadTransactionDescription = loadTransactionDescription;\nfunction storeTransactionDescription(src) {\n return (builder) => {\n if (src.type === 'generic') {\n builder.storeUint(0x00, 4);\n builder.storeBit(src.creditFirst);\n if (src.storagePhase) {\n builder.storeBit(true);\n builder.store((0, TransactionStoragePhase_1.storeTransactionsStoragePhase)(src.storagePhase));\n }\n else {\n builder.storeBit(false);\n }\n if (src.creditPhase) {\n builder.storeBit(true);\n builder.store((0, TransactionCreditPhase_1.storeTransactionCreditPhase)(src.creditPhase));\n }\n else {\n builder.storeBit(false);\n }\n builder.store((0, TransactionComputePhase_1.storeTransactionComputePhase)(src.computePhase));\n if (src.actionPhase) {\n builder.storeBit(true);\n builder.storeRef((0, Builder_1.beginCell)().store((0, TransactionActionPhase_1.storeTransactionActionPhase)(src.actionPhase)));\n }\n else {\n builder.storeBit(false);\n }\n builder.storeBit(src.aborted);\n if (src.bouncePhase) {\n builder.storeBit(true);\n builder.store((0, TransactionBouncePhase_1.storeTransactionBouncePhase)(src.bouncePhase));\n }\n else {\n builder.storeBit(false);\n }\n builder.storeBit(src.destroyed);\n }\n else if (src.type === 'storage') {\n builder.storeUint(0x01, 4);\n builder.store((0, TransactionStoragePhase_1.storeTransactionsStoragePhase)(src.storagePhase));\n }\n else if (src.type === 'tick-tock') {\n builder.storeUint(src.isTock ? 0x03 : 0x02, 4);\n builder.store((0, TransactionStoragePhase_1.storeTransactionsStoragePhase)(src.storagePhase));\n builder.store((0, TransactionComputePhase_1.storeTransactionComputePhase)(src.computePhase));\n if (src.actionPhase) {\n builder.storeBit(true);\n builder.storeRef((0, Builder_1.beginCell)().store((0, TransactionActionPhase_1.storeTransactionActionPhase)(src.actionPhase)));\n }\n else {\n builder.storeBit(false);\n }\n builder.storeBit(src.aborted);\n builder.storeBit(src.destroyed);\n }\n else if (src.type === 'split-prepare') {\n builder.storeUint(0x04, 4);\n builder.store((0, SplitMergeInfo_1.storeSplitMergeInfo)(src.splitInfo));\n if (src.storagePhase) {\n builder.storeBit(true);\n builder.store((0, TransactionStoragePhase_1.storeTransactionsStoragePhase)(src.storagePhase));\n }\n else {\n builder.storeBit(false);\n }\n builder.store((0, TransactionComputePhase_1.storeTransactionComputePhase)(src.computePhase));\n if (src.actionPhase) {\n builder.storeBit(true);\n builder.store((0, TransactionActionPhase_1.storeTransactionActionPhase)(src.actionPhase));\n }\n else {\n builder.storeBit(false);\n }\n builder.storeBit(src.aborted);\n builder.storeBit(src.destroyed);\n }\n else if (src.type === 'split-install') {\n builder.storeUint(0x05, 4);\n builder.store((0, SplitMergeInfo_1.storeSplitMergeInfo)(src.splitInfo));\n builder.storeRef((0, Builder_1.beginCell)().store((0, Transaction_1.storeTransaction)(src.prepareTransaction)));\n builder.storeBit(src.installed);\n }\n else {\n throw Error(`Unsupported transaction description type ${src.type}`);\n }\n };\n}\nexports.storeTransactionDescription = storeTransactionDescription;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeTransaction = exports.loadTransaction = void 0;\nconst Builder_1 = require(\"../boc/Builder\");\nconst Dictionary_1 = require(\"../dict/Dictionary\");\nconst AccountStatus_1 = require(\"./AccountStatus\");\nconst CurrencyCollection_1 = require(\"./CurrencyCollection\");\nconst HashUpdate_1 = require(\"./HashUpdate\");\nconst Message_1 = require(\"./Message\");\nconst TransactionDescription_1 = require(\"./TransactionDescription\");\nfunction loadTransaction(slice) {\n let raw = slice.asCell();\n if (slice.loadUint(4) !== 0x07) {\n throw Error('Invalid data');\n }\n let address = slice.loadUintBig(256);\n let lt = slice.loadUintBig(64);\n let prevTransactionHash = slice.loadUintBig(256);\n let prevTransactionLt = slice.loadUintBig(64);\n let now = slice.loadUint(32);\n let outMessagesCount = slice.loadUint(15);\n let oldStatus = (0, AccountStatus_1.loadAccountStatus)(slice);\n let endStatus = (0, AccountStatus_1.loadAccountStatus)(slice);\n let msgRef = slice.loadRef();\n let msgSlice = msgRef.beginParse();\n let inMessage = msgSlice.loadBit() ? (0, Message_1.loadMessage)(msgSlice.loadRef().beginParse()) : undefined;\n let outMessages = msgSlice.loadDict(Dictionary_1.Dictionary.Keys.Uint(15), Message_1.MessageValue);\n msgSlice.endParse();\n let totalFees = (0, CurrencyCollection_1.loadCurrencyCollection)(slice);\n let stateUpdate = (0, HashUpdate_1.loadHashUpdate)(slice.loadRef().beginParse());\n let description = (0, TransactionDescription_1.loadTransactionDescription)(slice.loadRef().beginParse());\n return {\n address,\n lt,\n prevTransactionHash,\n prevTransactionLt,\n now,\n outMessagesCount,\n oldStatus,\n endStatus,\n inMessage,\n outMessages,\n totalFees,\n stateUpdate,\n description,\n raw,\n hash: () => raw.hash(),\n };\n}\nexports.loadTransaction = loadTransaction;\nfunction storeTransaction(src) {\n return (builder) => {\n builder.storeUint(0x07, 4);\n builder.storeUint(src.address, 256);\n builder.storeUint(src.lt, 64);\n builder.storeUint(src.prevTransactionHash, 256);\n builder.storeUint(src.prevTransactionLt, 64);\n builder.storeUint(src.now, 32);\n builder.storeUint(src.outMessagesCount, 15);\n builder.store((0, AccountStatus_1.storeAccountStatus)(src.oldStatus));\n builder.store((0, AccountStatus_1.storeAccountStatus)(src.endStatus));\n let msgBuilder = (0, Builder_1.beginCell)();\n if (src.inMessage) {\n msgBuilder.storeBit(true);\n msgBuilder.storeRef((0, Builder_1.beginCell)().store((0, Message_1.storeMessage)(src.inMessage)));\n }\n else {\n msgBuilder.storeBit(false);\n }\n msgBuilder.storeDict(src.outMessages);\n builder.storeRef(msgBuilder);\n builder.store((0, CurrencyCollection_1.storeCurrencyCollection)(src.totalFees));\n builder.storeRef((0, Builder_1.beginCell)().store((0, HashUpdate_1.storeHashUpdate)(src.stateUpdate)));\n builder.storeRef((0, Builder_1.beginCell)().store((0, TransactionDescription_1.storeTransactionDescription)(src.description)));\n };\n}\nexports.storeTransaction = storeTransaction;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadSimpleLibrary = exports.loadShardStateUnsplit = exports.storeShardIdent = exports.loadShardIdent = exports.storeShardAccounts = exports.loadShardAccounts = exports.ShardAccountRefValue = exports.storeShardAccount = exports.loadShardAccount = exports.ReserveMode = exports.SendMode = exports.storeMessageRelaxed = exports.loadMessageRelaxed = exports.storeMessage = exports.loadMessage = exports.loadMasterchainStateExtra = exports.storeHashUpdate = exports.loadHashUpdate = exports.storeExtraCurrency = exports.loadMaybeExtraCurrency = exports.loadExtraCurrency = exports.packExtraCurrencyDict = exports.packExtraCurrencyCell = exports.storeDepthBalanceInfo = exports.loadDepthBalanceInfo = exports.storeCurrencyCollection = exports.loadCurrencyCollection = exports.storeComputeSkipReason = exports.loadComputeSkipReason = exports.storeCommonMessageInfoRelaxed = exports.loadCommonMessageInfoRelaxed = exports.storeCommonMessageInfo = exports.loadCommonMessageInfo = exports.storeOutList = exports.loadOutList = exports.storeOutAction = exports.loadOutAction = exports.storeAccountStorage = exports.loadAccountStorage = exports.storeAccountStatusChange = exports.loadAccountStatusChange = exports.storeAccountStatus = exports.loadAccountStatus = exports.storeAccountState = exports.loadAccountState = exports.storeAccount = exports.loadAccount = exports.comment = exports.external = exports.internal = void 0;\nexports.storeTransactionsStoragePhase = exports.loadTransactionStoragePhase = exports.storeTransactionDescription = exports.loadTransactionDescription = exports.storeTransactionCreditPhase = exports.loadTransactionCreditPhase = exports.storeTransactionComputePhase = exports.loadTransactionComputePhase = exports.storeTransactionBouncePhase = exports.loadTransactionBouncePhase = exports.storeTransactionActionPhase = exports.loadTransactionActionPhase = exports.storeTransaction = exports.loadTransaction = exports.storeTickTock = exports.loadTickTock = exports.storeStorageUsedShort = exports.loadStorageUsedShort = exports.storeStorageUsed = exports.loadStorageUsed = exports.storeStorageInfo = exports.loadStorageInfo = exports.storeStateInit = exports.loadStateInit = exports.storeSplitMergeInfo = exports.loadSplitMergeInfo = exports.storeLibRef = exports.loadLibRef = exports.storeSimpleLibrary = void 0;\nvar _helpers_1 = require(\"./_helpers\");\nObject.defineProperty(exports, \"internal\", { enumerable: true, get: function () { return _helpers_1.internal; } });\nObject.defineProperty(exports, \"external\", { enumerable: true, get: function () { return _helpers_1.external; } });\nObject.defineProperty(exports, \"comment\", { enumerable: true, get: function () { return _helpers_1.comment; } });\nvar Account_1 = require(\"./Account\");\nObject.defineProperty(exports, \"loadAccount\", { enumerable: true, get: function () { return Account_1.loadAccount; } });\nObject.defineProperty(exports, \"storeAccount\", { enumerable: true, get: function () { return Account_1.storeAccount; } });\nvar AccountState_1 = require(\"./AccountState\");\nObject.defineProperty(exports, \"loadAccountState\", { enumerable: true, get: function () { return AccountState_1.loadAccountState; } });\nObject.defineProperty(exports, \"storeAccountState\", { enumerable: true, get: function () { return AccountState_1.storeAccountState; } });\nvar AccountStatus_1 = require(\"./AccountStatus\");\nObject.defineProperty(exports, \"loadAccountStatus\", { enumerable: true, get: function () { return AccountStatus_1.loadAccountStatus; } });\nObject.defineProperty(exports, \"storeAccountStatus\", { enumerable: true, get: function () { return AccountStatus_1.storeAccountStatus; } });\nvar AccountStatusChange_1 = require(\"./AccountStatusChange\");\nObject.defineProperty(exports, \"loadAccountStatusChange\", { enumerable: true, get: function () { return AccountStatusChange_1.loadAccountStatusChange; } });\nObject.defineProperty(exports, \"storeAccountStatusChange\", { enumerable: true, get: function () { return AccountStatusChange_1.storeAccountStatusChange; } });\nvar AccountStorage_1 = require(\"./AccountStorage\");\nObject.defineProperty(exports, \"loadAccountStorage\", { enumerable: true, get: function () { return AccountStorage_1.loadAccountStorage; } });\nObject.defineProperty(exports, \"storeAccountStorage\", { enumerable: true, get: function () { return AccountStorage_1.storeAccountStorage; } });\nvar OutList_1 = require(\"./OutList\");\nObject.defineProperty(exports, \"loadOutAction\", { enumerable: true, get: function () { return OutList_1.loadOutAction; } });\nObject.defineProperty(exports, \"storeOutAction\", { enumerable: true, get: function () { return OutList_1.storeOutAction; } });\nObject.defineProperty(exports, \"loadOutList\", { enumerable: true, get: function () { return OutList_1.loadOutList; } });\nObject.defineProperty(exports, \"storeOutList\", { enumerable: true, get: function () { return OutList_1.storeOutList; } });\nvar CommonMessageInfo_1 = require(\"./CommonMessageInfo\");\nObject.defineProperty(exports, \"loadCommonMessageInfo\", { enumerable: true, get: function () { return CommonMessageInfo_1.loadCommonMessageInfo; } });\nObject.defineProperty(exports, \"storeCommonMessageInfo\", { enumerable: true, get: function () { return CommonMessageInfo_1.storeCommonMessageInfo; } });\nvar CommonMessageInfoRelaxed_1 = require(\"./CommonMessageInfoRelaxed\");\nObject.defineProperty(exports, \"loadCommonMessageInfoRelaxed\", { enumerable: true, get: function () { return CommonMessageInfoRelaxed_1.loadCommonMessageInfoRelaxed; } });\nObject.defineProperty(exports, \"storeCommonMessageInfoRelaxed\", { enumerable: true, get: function () { return CommonMessageInfoRelaxed_1.storeCommonMessageInfoRelaxed; } });\nvar ComputeSkipReason_1 = require(\"./ComputeSkipReason\");\nObject.defineProperty(exports, \"loadComputeSkipReason\", { enumerable: true, get: function () { return ComputeSkipReason_1.loadComputeSkipReason; } });\nObject.defineProperty(exports, \"storeComputeSkipReason\", { enumerable: true, get: function () { return ComputeSkipReason_1.storeComputeSkipReason; } });\nvar CurrencyCollection_1 = require(\"./CurrencyCollection\");\nObject.defineProperty(exports, \"loadCurrencyCollection\", { enumerable: true, get: function () { return CurrencyCollection_1.loadCurrencyCollection; } });\nObject.defineProperty(exports, \"storeCurrencyCollection\", { enumerable: true, get: function () { return CurrencyCollection_1.storeCurrencyCollection; } });\nvar DepthBalanceInfo_1 = require(\"./DepthBalanceInfo\");\nObject.defineProperty(exports, \"loadDepthBalanceInfo\", { enumerable: true, get: function () { return DepthBalanceInfo_1.loadDepthBalanceInfo; } });\nObject.defineProperty(exports, \"storeDepthBalanceInfo\", { enumerable: true, get: function () { return DepthBalanceInfo_1.storeDepthBalanceInfo; } });\nvar ExtraCurrency_1 = require(\"./ExtraCurrency\");\nObject.defineProperty(exports, \"packExtraCurrencyCell\", { enumerable: true, get: function () { return ExtraCurrency_1.packExtraCurrencyCell; } });\nObject.defineProperty(exports, \"packExtraCurrencyDict\", { enumerable: true, get: function () { return ExtraCurrency_1.packExtraCurrencyDict; } });\nObject.defineProperty(exports, \"loadExtraCurrency\", { enumerable: true, get: function () { return ExtraCurrency_1.loadExtraCurrency; } });\nObject.defineProperty(exports, \"loadMaybeExtraCurrency\", { enumerable: true, get: function () { return ExtraCurrency_1.loadMaybeExtraCurrency; } });\nObject.defineProperty(exports, \"storeExtraCurrency\", { enumerable: true, get: function () { return ExtraCurrency_1.storeExtraCurrency; } });\nvar HashUpdate_1 = require(\"./HashUpdate\");\nObject.defineProperty(exports, \"loadHashUpdate\", { enumerable: true, get: function () { return HashUpdate_1.loadHashUpdate; } });\nObject.defineProperty(exports, \"storeHashUpdate\", { enumerable: true, get: function () { return HashUpdate_1.storeHashUpdate; } });\nvar MasterchainStateExtra_1 = require(\"./MasterchainStateExtra\");\nObject.defineProperty(exports, \"loadMasterchainStateExtra\", { enumerable: true, get: function () { return MasterchainStateExtra_1.loadMasterchainStateExtra; } });\nvar Message_1 = require(\"./Message\");\nObject.defineProperty(exports, \"loadMessage\", { enumerable: true, get: function () { return Message_1.loadMessage; } });\nObject.defineProperty(exports, \"storeMessage\", { enumerable: true, get: function () { return Message_1.storeMessage; } });\nvar MessageRelaxed_1 = require(\"./MessageRelaxed\");\nObject.defineProperty(exports, \"loadMessageRelaxed\", { enumerable: true, get: function () { return MessageRelaxed_1.loadMessageRelaxed; } });\nObject.defineProperty(exports, \"storeMessageRelaxed\", { enumerable: true, get: function () { return MessageRelaxed_1.storeMessageRelaxed; } });\nvar SendMode_1 = require(\"./SendMode\");\nObject.defineProperty(exports, \"SendMode\", { enumerable: true, get: function () { return SendMode_1.SendMode; } });\nvar ReserveMode_1 = require(\"./ReserveMode\");\nObject.defineProperty(exports, \"ReserveMode\", { enumerable: true, get: function () { return ReserveMode_1.ReserveMode; } });\nvar ShardAccount_1 = require(\"./ShardAccount\");\nObject.defineProperty(exports, \"loadShardAccount\", { enumerable: true, get: function () { return ShardAccount_1.loadShardAccount; } });\nObject.defineProperty(exports, \"storeShardAccount\", { enumerable: true, get: function () { return ShardAccount_1.storeShardAccount; } });\nvar ShardAccounts_1 = require(\"./ShardAccounts\");\nObject.defineProperty(exports, \"ShardAccountRefValue\", { enumerable: true, get: function () { return ShardAccounts_1.ShardAccountRefValue; } });\nObject.defineProperty(exports, \"loadShardAccounts\", { enumerable: true, get: function () { return ShardAccounts_1.loadShardAccounts; } });\nObject.defineProperty(exports, \"storeShardAccounts\", { enumerable: true, get: function () { return ShardAccounts_1.storeShardAccounts; } });\nvar ShardIdent_1 = require(\"./ShardIdent\");\nObject.defineProperty(exports, \"loadShardIdent\", { enumerable: true, get: function () { return ShardIdent_1.loadShardIdent; } });\nObject.defineProperty(exports, \"storeShardIdent\", { enumerable: true, get: function () { return ShardIdent_1.storeShardIdent; } });\nvar ShardStateUnsplit_1 = require(\"./ShardStateUnsplit\");\nObject.defineProperty(exports, \"loadShardStateUnsplit\", { enumerable: true, get: function () { return ShardStateUnsplit_1.loadShardStateUnsplit; } });\nvar SimpleLibrary_1 = require(\"./SimpleLibrary\");\nObject.defineProperty(exports, \"loadSimpleLibrary\", { enumerable: true, get: function () { return SimpleLibrary_1.loadSimpleLibrary; } });\nObject.defineProperty(exports, \"storeSimpleLibrary\", { enumerable: true, get: function () { return SimpleLibrary_1.storeSimpleLibrary; } });\nvar LibRef_1 = require(\"./LibRef\");\nObject.defineProperty(exports, \"loadLibRef\", { enumerable: true, get: function () { return LibRef_1.loadLibRef; } });\nObject.defineProperty(exports, \"storeLibRef\", { enumerable: true, get: function () { return LibRef_1.storeLibRef; } });\nvar SplitMergeInfo_1 = require(\"./SplitMergeInfo\");\nObject.defineProperty(exports, \"loadSplitMergeInfo\", { enumerable: true, get: function () { return SplitMergeInfo_1.loadSplitMergeInfo; } });\nObject.defineProperty(exports, \"storeSplitMergeInfo\", { enumerable: true, get: function () { return SplitMergeInfo_1.storeSplitMergeInfo; } });\nvar StateInit_1 = require(\"./StateInit\");\nObject.defineProperty(exports, \"loadStateInit\", { enumerable: true, get: function () { return StateInit_1.loadStateInit; } });\nObject.defineProperty(exports, \"storeStateInit\", { enumerable: true, get: function () { return StateInit_1.storeStateInit; } });\nvar StorageInto_1 = require(\"./StorageInto\");\nObject.defineProperty(exports, \"loadStorageInfo\", { enumerable: true, get: function () { return StorageInto_1.loadStorageInfo; } });\nObject.defineProperty(exports, \"storeStorageInfo\", { enumerable: true, get: function () { return StorageInto_1.storeStorageInfo; } });\nvar StorageUsed_1 = require(\"./StorageUsed\");\nObject.defineProperty(exports, \"loadStorageUsed\", { enumerable: true, get: function () { return StorageUsed_1.loadStorageUsed; } });\nObject.defineProperty(exports, \"storeStorageUsed\", { enumerable: true, get: function () { return StorageUsed_1.storeStorageUsed; } });\nvar StorageUsedShort_1 = require(\"./StorageUsedShort\");\nObject.defineProperty(exports, \"loadStorageUsedShort\", { enumerable: true, get: function () { return StorageUsedShort_1.loadStorageUsedShort; } });\nObject.defineProperty(exports, \"storeStorageUsedShort\", { enumerable: true, get: function () { return StorageUsedShort_1.storeStorageUsedShort; } });\nvar TickTock_1 = require(\"./TickTock\");\nObject.defineProperty(exports, \"loadTickTock\", { enumerable: true, get: function () { return TickTock_1.loadTickTock; } });\nObject.defineProperty(exports, \"storeTickTock\", { enumerable: true, get: function () { return TickTock_1.storeTickTock; } });\nvar Transaction_1 = require(\"./Transaction\");\nObject.defineProperty(exports, \"loadTransaction\", { enumerable: true, get: function () { return Transaction_1.loadTransaction; } });\nObject.defineProperty(exports, \"storeTransaction\", { enumerable: true, get: function () { return Transaction_1.storeTransaction; } });\nvar TransactionActionPhase_1 = require(\"./TransactionActionPhase\");\nObject.defineProperty(exports, \"loadTransactionActionPhase\", { enumerable: true, get: function () { return TransactionActionPhase_1.loadTransactionActionPhase; } });\nObject.defineProperty(exports, \"storeTransactionActionPhase\", { enumerable: true, get: function () { return TransactionActionPhase_1.storeTransactionActionPhase; } });\nvar TransactionBouncePhase_1 = require(\"./TransactionBouncePhase\");\nObject.defineProperty(exports, \"loadTransactionBouncePhase\", { enumerable: true, get: function () { return TransactionBouncePhase_1.loadTransactionBouncePhase; } });\nObject.defineProperty(exports, \"storeTransactionBouncePhase\", { enumerable: true, get: function () { return TransactionBouncePhase_1.storeTransactionBouncePhase; } });\nvar TransactionComputePhase_1 = require(\"./TransactionComputePhase\");\nObject.defineProperty(exports, \"loadTransactionComputePhase\", { enumerable: true, get: function () { return TransactionComputePhase_1.loadTransactionComputePhase; } });\nObject.defineProperty(exports, \"storeTransactionComputePhase\", { enumerable: true, get: function () { return TransactionComputePhase_1.storeTransactionComputePhase; } });\nvar TransactionCreditPhase_1 = require(\"./TransactionCreditPhase\");\nObject.defineProperty(exports, \"loadTransactionCreditPhase\", { enumerable: true, get: function () { return TransactionCreditPhase_1.loadTransactionCreditPhase; } });\nObject.defineProperty(exports, \"storeTransactionCreditPhase\", { enumerable: true, get: function () { return TransactionCreditPhase_1.storeTransactionCreditPhase; } });\nvar TransactionDescription_1 = require(\"./TransactionDescription\");\nObject.defineProperty(exports, \"loadTransactionDescription\", { enumerable: true, get: function () { return TransactionDescription_1.loadTransactionDescription; } });\nObject.defineProperty(exports, \"storeTransactionDescription\", { enumerable: true, get: function () { return TransactionDescription_1.storeTransactionDescription; } });\nvar TransactionStoragePhase_1 = require(\"./TransactionStoragePhase\");\nObject.defineProperty(exports, \"loadTransactionStoragePhase\", { enumerable: true, get: function () { return TransactionStoragePhase_1.loadTransactionStoragePhase; } });\nObject.defineProperty(exports, \"storeTransactionsStoragePhase\", { enumerable: true, get: function () { return TransactionStoragePhase_1.storeTransactionsStoragePhase; } });\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.openContract = void 0;\nconst Address_1 = require(\"../address/Address\");\nconst Cell_1 = require(\"../boc/Cell\");\nfunction openContract(src, factory) {\n // Resolve parameters\n let address;\n let init = null;\n if (!Address_1.Address.isAddress(src.address)) {\n throw Error('Invalid address');\n }\n address = src.address;\n if (src.init) {\n if (!(src.init.code instanceof Cell_1.Cell)) {\n throw Error('Invalid init.code');\n }\n if (!(src.init.data instanceof Cell_1.Cell)) {\n throw Error('Invalid init.data');\n }\n init = src.init;\n }\n // Create executor\n let executor = factory({ address, init });\n // Create proxy\n return new Proxy(src, {\n get(target, prop) {\n const value = target[prop];\n if (typeof prop === 'string' && (prop.startsWith('get') || prop.startsWith('send') || prop.startsWith('is'))) {\n if (typeof value === 'function') {\n return (...args) => value.apply(target, [executor, ...args]);\n }\n }\n return value;\n }\n });\n}\nexports.openContract = openContract;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ComputeError = void 0;\nclass ComputeError extends Error {\n constructor(message, exitCode, opts) {\n super(message);\n this.exitCode = exitCode;\n this.debugLogs = opts && opts.debugLogs ? opts.debugLogs : null;\n this.logs = opts && opts.logs ? opts.logs : null;\n Object.setPrototypeOf(this, ComputeError.prototype);\n }\n}\nexports.ComputeError = ComputeError;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getMethodId = void 0;\nconst TABLE = new Int16Array([\n 0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,\n 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,\n 0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,\n 0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,\n 0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,\n 0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,\n 0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b,\n 0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12,\n 0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41,\n 0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49,\n 0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78,\n 0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f,\n 0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e,\n 0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256,\n 0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,\n 0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c,\n 0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab,\n 0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3,\n 0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92,\n 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9,\n 0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,\n 0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\n]);\nfunction crc16(data) {\n if (!(data instanceof Buffer)) {\n data = Buffer.from(data);\n }\n let crc = 0;\n for (let index = 0; index < data.length; index++) {\n const byte = data[index];\n crc = (TABLE[((crc >> 8) ^ byte) & 0xff] ^ (crc << 8)) & 0xffff;\n }\n return crc;\n}\nfunction getMethodId(name) {\n return (crc16(name) & 0xffff) | 0x10000;\n}\nexports.getMethodId = getMethodId;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.safeSignVerify = exports.safeSign = void 0;\nconst crypto_1 = require(\"@ton/crypto\");\nconst MIN_SEED_LENGTH = 8;\nconst MAX_SEED_LENGTH = 64;\nfunction createSafeSignHash(cell, seed) {\n let seedData = Buffer.from(seed);\n if (seedData.length > MAX_SEED_LENGTH) {\n throw Error('Seed can\\t be longer than 64 bytes');\n }\n if (seedData.length < MIN_SEED_LENGTH) {\n throw Error('Seed must be at least 8 bytes');\n }\n return (0, crypto_1.sha256_sync)(Buffer.concat([Buffer.from([0xff, 0xff]), seedData, cell.hash()]));\n}\nfunction safeSign(cell, secretKey, seed = 'ton-safe-sign-magic') {\n return (0, crypto_1.sign)(createSafeSignHash(cell, seed), secretKey);\n}\nexports.safeSign = safeSign;\nfunction safeSignVerify(cell, signature, publicKey, seed = 'ton-safe-sign-magic') {\n return (0, crypto_1.signVerify)(createSafeSignHash(cell, seed), signature, publicKey);\n}\nexports.safeSignVerify = safeSignVerify;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.safeSignVerify = exports.safeSign = exports.getMethodId = exports.base32Encode = exports.base32Decode = exports.crc32c = exports.crc16 = exports.fromNano = exports.toNano = exports.ComputeError = exports.openContract = exports.TupleBuilder = exports.TupleReader = exports.serializeTuple = exports.parseTuple = exports.generateMerkleUpdate = exports.generateMerkleProofDirect = exports.generateMerkleProof = exports.exoticPruned = exports.exoticMerkleUpdate = exports.convertToMerkleProof = exports.exoticMerkleProof = exports.Dictionary = exports.Cell = exports.CellType = exports.Slice = exports.beginCell = exports.Builder = exports.BitBuilder = exports.BitReader = exports.BitString = exports.contractAddress = exports.ADNLAddress = exports.ExternalAddress = exports.address = exports.Address = void 0;\n// Address\nvar Address_1 = require(\"./address/Address\");\nObject.defineProperty(exports, \"Address\", { enumerable: true, get: function () { return Address_1.Address; } });\nObject.defineProperty(exports, \"address\", { enumerable: true, get: function () { return Address_1.address; } });\nvar ExternalAddress_1 = require(\"./address/ExternalAddress\");\nObject.defineProperty(exports, \"ExternalAddress\", { enumerable: true, get: function () { return ExternalAddress_1.ExternalAddress; } });\nvar ADNLAddress_1 = require(\"./address/ADNLAddress\");\nObject.defineProperty(exports, \"ADNLAddress\", { enumerable: true, get: function () { return ADNLAddress_1.ADNLAddress; } });\nvar contractAddress_1 = require(\"./address/contractAddress\");\nObject.defineProperty(exports, \"contractAddress\", { enumerable: true, get: function () { return contractAddress_1.contractAddress; } });\n// BitString\nvar BitString_1 = require(\"./boc/BitString\");\nObject.defineProperty(exports, \"BitString\", { enumerable: true, get: function () { return BitString_1.BitString; } });\nvar BitReader_1 = require(\"./boc/BitReader\");\nObject.defineProperty(exports, \"BitReader\", { enumerable: true, get: function () { return BitReader_1.BitReader; } });\nvar BitBuilder_1 = require(\"./boc/BitBuilder\");\nObject.defineProperty(exports, \"BitBuilder\", { enumerable: true, get: function () { return BitBuilder_1.BitBuilder; } });\n// Cell\nvar Builder_1 = require(\"./boc/Builder\");\nObject.defineProperty(exports, \"Builder\", { enumerable: true, get: function () { return Builder_1.Builder; } });\nObject.defineProperty(exports, \"beginCell\", { enumerable: true, get: function () { return Builder_1.beginCell; } });\nvar Slice_1 = require(\"./boc/Slice\");\nObject.defineProperty(exports, \"Slice\", { enumerable: true, get: function () { return Slice_1.Slice; } });\nvar CellType_1 = require(\"./boc/CellType\");\nObject.defineProperty(exports, \"CellType\", { enumerable: true, get: function () { return CellType_1.CellType; } });\nvar Cell_1 = require(\"./boc/Cell\");\nObject.defineProperty(exports, \"Cell\", { enumerable: true, get: function () { return Cell_1.Cell; } });\n// Dict\nvar Dictionary_1 = require(\"./dict/Dictionary\");\nObject.defineProperty(exports, \"Dictionary\", { enumerable: true, get: function () { return Dictionary_1.Dictionary; } });\n// Exotics\nvar exoticMerkleProof_1 = require(\"./boc/cell/exoticMerkleProof\");\nObject.defineProperty(exports, \"exoticMerkleProof\", { enumerable: true, get: function () { return exoticMerkleProof_1.exoticMerkleProof; } });\nObject.defineProperty(exports, \"convertToMerkleProof\", { enumerable: true, get: function () { return exoticMerkleProof_1.convertToMerkleProof; } });\nvar exoticMerkleUpdate_1 = require(\"./boc/cell/exoticMerkleUpdate\");\nObject.defineProperty(exports, \"exoticMerkleUpdate\", { enumerable: true, get: function () { return exoticMerkleUpdate_1.exoticMerkleUpdate; } });\nvar exoticPruned_1 = require(\"./boc/cell/exoticPruned\");\nObject.defineProperty(exports, \"exoticPruned\", { enumerable: true, get: function () { return exoticPruned_1.exoticPruned; } });\n// Merkle trees\nvar generateMerkleProof_1 = require(\"./dict/generateMerkleProof\");\nObject.defineProperty(exports, \"generateMerkleProof\", { enumerable: true, get: function () { return generateMerkleProof_1.generateMerkleProof; } });\nObject.defineProperty(exports, \"generateMerkleProofDirect\", { enumerable: true, get: function () { return generateMerkleProof_1.generateMerkleProofDirect; } });\nvar generateMerkleUpdate_1 = require(\"./dict/generateMerkleUpdate\");\nObject.defineProperty(exports, \"generateMerkleUpdate\", { enumerable: true, get: function () { return generateMerkleUpdate_1.generateMerkleUpdate; } });\nvar tuple_1 = require(\"./tuple/tuple\");\nObject.defineProperty(exports, \"parseTuple\", { enumerable: true, get: function () { return tuple_1.parseTuple; } });\nObject.defineProperty(exports, \"serializeTuple\", { enumerable: true, get: function () { return tuple_1.serializeTuple; } });\nvar reader_1 = require(\"./tuple/reader\");\nObject.defineProperty(exports, \"TupleReader\", { enumerable: true, get: function () { return reader_1.TupleReader; } });\nvar builder_1 = require(\"./tuple/builder\");\nObject.defineProperty(exports, \"TupleBuilder\", { enumerable: true, get: function () { return builder_1.TupleBuilder; } });\n// Types\n__exportStar(require(\"./types/_export\"), exports);\nvar openContract_1 = require(\"./contract/openContract\");\nObject.defineProperty(exports, \"openContract\", { enumerable: true, get: function () { return openContract_1.openContract; } });\nvar ComputeError_1 = require(\"./contract/ComputeError\");\nObject.defineProperty(exports, \"ComputeError\", { enumerable: true, get: function () { return ComputeError_1.ComputeError; } });\n// Utility\nvar convert_1 = require(\"./utils/convert\");\nObject.defineProperty(exports, \"toNano\", { enumerable: true, get: function () { return convert_1.toNano; } });\nObject.defineProperty(exports, \"fromNano\", { enumerable: true, get: function () { return convert_1.fromNano; } });\nvar crc16_1 = require(\"./utils/crc16\");\nObject.defineProperty(exports, \"crc16\", { enumerable: true, get: function () { return crc16_1.crc16; } });\nvar crc32c_1 = require(\"./utils/crc32c\");\nObject.defineProperty(exports, \"crc32c\", { enumerable: true, get: function () { return crc32c_1.crc32c; } });\nvar base32_1 = require(\"./utils/base32\");\nObject.defineProperty(exports, \"base32Decode\", { enumerable: true, get: function () { return base32_1.base32Decode; } });\nObject.defineProperty(exports, \"base32Encode\", { enumerable: true, get: function () { return base32_1.base32Encode; } });\nvar getMethodId_1 = require(\"./utils/getMethodId\");\nObject.defineProperty(exports, \"getMethodId\", { enumerable: true, get: function () { return getMethodId_1.getMethodId; } });\n// Crypto\nvar safeSign_1 = require(\"./crypto/safeSign\");\nObject.defineProperty(exports, \"safeSign\", { enumerable: true, get: function () { return safeSign_1.safeSign; } });\nObject.defineProperty(exports, \"safeSignVerify\", { enumerable: true, get: function () { return safeSign_1.safeSignVerify; } });\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InMemoryCache = void 0;\nclass InMemoryCache {\n constructor() {\n this.cache = new Map();\n this.set = async (namespace, key, value) => {\n if (value !== null) {\n this.cache.set(namespace + '$$' + key, value);\n }\n else {\n this.cache.delete(namespace + '$$' + key);\n }\n };\n this.get = async (namespace, key) => {\n let res = this.cache.get(namespace + '$$' + key);\n if (res !== undefined) {\n return res;\n }\n else {\n return null;\n }\n };\n }\n}\nexports.InMemoryCache = InMemoryCache;\n","\"use strict\";\n\n/**\n * Copyright (c) 2019-present, GraphQL Foundation\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n// A Function, which when given an Array of keys, returns a Promise of an Array\n// of values or Errors.\n// Optionally turn off batching or caching or provide a cache key function or a\n// custom cache instance.\n// If a custom cache is provided, it must be of this type (a subset of ES6 Map).\n\n/**\n * A `DataLoader` creates a public API for loading data from a particular\n * data back-end with unique keys such as the `id` column of a SQL table or\n * document name in a MongoDB database, given a batch loading function.\n *\n * Each `DataLoader` instance contains a unique memoized cache. Use caution when\n * used in long-lived applications or those which serve many users with\n * different access permissions and consider creating a new instance per\n * web request.\n */\nvar DataLoader =\n/*#__PURE__*/\nfunction () {\n function DataLoader(batchLoadFn, options) {\n if (typeof batchLoadFn !== 'function') {\n throw new TypeError('DataLoader must be constructed with a function which accepts ' + (\"Array<key> and returns Promise<Array<value>>, but got: \" + batchLoadFn + \".\"));\n }\n\n this._batchLoadFn = batchLoadFn;\n this._maxBatchSize = getValidMaxBatchSize(options);\n this._batchScheduleFn = getValidBatchScheduleFn(options);\n this._cacheKeyFn = getValidCacheKeyFn(options);\n this._cacheMap = getValidCacheMap(options);\n this._batch = null;\n this.name = getValidName(options);\n } // Private\n\n\n var _proto = DataLoader.prototype;\n\n /**\n * Loads a key, returning a `Promise` for the value represented by that key.\n */\n _proto.load = function load(key) {\n if (key === null || key === undefined) {\n throw new TypeError('The loader.load() function must be called with a value, ' + (\"but got: \" + String(key) + \".\"));\n }\n\n var batch = getCurrentBatch(this);\n var cacheMap = this._cacheMap;\n var cacheKey; // If caching and there is a cache-hit, return cached Promise.\n\n if (cacheMap) {\n cacheKey = this._cacheKeyFn(key);\n var cachedPromise = cacheMap.get(cacheKey);\n\n if (cachedPromise) {\n var cacheHits = batch.cacheHits || (batch.cacheHits = []);\n return new Promise(function (resolve) {\n cacheHits.push(function () {\n resolve(cachedPromise);\n });\n });\n }\n } // Otherwise, produce a new Promise for this key, and enqueue it to be\n // dispatched along with the current batch.\n\n\n batch.keys.push(key);\n var promise = new Promise(function (resolve, reject) {\n batch.callbacks.push({\n resolve: resolve,\n reject: reject\n });\n }); // If caching, cache this promise.\n\n if (cacheMap) {\n cacheMap.set(cacheKey, promise);\n }\n\n return promise;\n }\n /**\n * Loads multiple keys, promising an array of values:\n *\n * var [ a, b ] = await myLoader.loadMany([ 'a', 'b' ]);\n *\n * This is similar to the more verbose:\n *\n * var [ a, b ] = await Promise.all([\n * myLoader.load('a'),\n * myLoader.load('b')\n * ]);\n *\n * However it is different in the case where any load fails. Where\n * Promise.all() would reject, loadMany() always resolves, however each result\n * is either a value or an Error instance.\n *\n * var [ a, b, c ] = await myLoader.loadMany([ 'a', 'b', 'badkey' ]);\n * // c instanceof Error\n *\n */\n ;\n\n _proto.loadMany = function loadMany(keys) {\n if (!isArrayLike(keys)) {\n throw new TypeError('The loader.loadMany() function must be called with Array<key> ' + (\"but got: \" + keys + \".\"));\n } // Support ArrayLike by using only minimal property access\n\n\n var loadPromises = [];\n\n for (var i = 0; i < keys.length; i++) {\n loadPromises.push(this.load(keys[i])[\"catch\"](function (error) {\n return error;\n }));\n }\n\n return Promise.all(loadPromises);\n }\n /**\n * Clears the value at `key` from the cache, if it exists. Returns itself for\n * method chaining.\n */\n ;\n\n _proto.clear = function clear(key) {\n var cacheMap = this._cacheMap;\n\n if (cacheMap) {\n var cacheKey = this._cacheKeyFn(key);\n\n cacheMap[\"delete\"](cacheKey);\n }\n\n return this;\n }\n /**\n * Clears the entire cache. To be used when some event results in unknown\n * invalidations across this particular `DataLoader`. Returns itself for\n * method chaining.\n */\n ;\n\n _proto.clearAll = function clearAll() {\n var cacheMap = this._cacheMap;\n\n if (cacheMap) {\n cacheMap.clear();\n }\n\n return this;\n }\n /**\n * Adds the provided key and value to the cache. If the key already\n * exists, no change is made. Returns itself for method chaining.\n *\n * To prime the cache with an error at a key, provide an Error instance.\n */\n ;\n\n _proto.prime = function prime(key, value) {\n var cacheMap = this._cacheMap;\n\n if (cacheMap) {\n var cacheKey = this._cacheKeyFn(key); // Only add the key if it does not already exist.\n\n\n if (cacheMap.get(cacheKey) === undefined) {\n // Cache a rejected promise if the value is an Error, in order to match\n // the behavior of load(key).\n var promise;\n\n if (value instanceof Error) {\n promise = Promise.reject(value); // Since this is a case where an Error is intentionally being primed\n // for a given key, we want to disable unhandled promise rejection.\n\n promise[\"catch\"](function () {});\n } else {\n promise = Promise.resolve(value);\n }\n\n cacheMap.set(cacheKey, promise);\n }\n }\n\n return this;\n }\n /**\n * The name given to this `DataLoader` instance. Useful for APM tools.\n *\n * Is `null` if not set in the constructor.\n */\n ;\n\n return DataLoader;\n}(); // Private: Enqueue a Job to be executed after all \"PromiseJobs\" Jobs.\n//\n// ES6 JavaScript uses the concepts Job and JobQueue to schedule work to occur\n// after the current execution context has completed:\n// http://www.ecma-international.org/ecma-262/6.0/#sec-jobs-and-job-queues\n//\n// Node.js uses the `process.nextTick` mechanism to implement the concept of a\n// Job, maintaining a global FIFO JobQueue for all Jobs, which is flushed after\n// the current call stack ends.\n//\n// When calling `then` on a Promise, it enqueues a Job on a specific\n// \"PromiseJobs\" JobQueue which is flushed in Node as a single Job on the\n// global JobQueue.\n//\n// DataLoader batches all loads which occur in a single frame of execution, but\n// should include in the batch all loads which occur during the flushing of the\n// \"PromiseJobs\" JobQueue after that same execution frame.\n//\n// In order to avoid the DataLoader dispatch Job occuring before \"PromiseJobs\",\n// A Promise Job is created with the sole purpose of enqueuing a global Job,\n// ensuring that it always occurs after \"PromiseJobs\" ends.\n//\n// Node.js's job queue is unique. Browsers do not have an equivalent mechanism\n// for enqueuing a job to be performed after promise microtasks and before the\n// next macrotask. For browser environments, a macrotask is used (via\n// setImmediate or setTimeout) at a potential performance penalty.\n\n\nvar enqueuePostPromiseJob = typeof process === 'object' && typeof process.nextTick === 'function' ? function (fn) {\n if (!resolvedPromise) {\n resolvedPromise = Promise.resolve();\n }\n\n resolvedPromise.then(function () {\n process.nextTick(fn);\n });\n} : typeof setImmediate === 'function' ? function (fn) {\n setImmediate(fn);\n} : function (fn) {\n setTimeout(fn);\n}; // Private: cached resolved Promise instance\n\nvar resolvedPromise; // Private: Describes a batch of requests\n\n// Private: Either returns the current batch, or creates and schedules a\n// dispatch of a new batch for the given loader.\nfunction getCurrentBatch(loader) {\n // If there is an existing batch which has not yet dispatched and is within\n // the limit of the batch size, then return it.\n var existingBatch = loader._batch;\n\n if (existingBatch !== null && !existingBatch.hasDispatched && existingBatch.keys.length < loader._maxBatchSize) {\n return existingBatch;\n } // Otherwise, create a new batch for this loader.\n\n\n var newBatch = {\n hasDispatched: false,\n keys: [],\n callbacks: []\n }; // Store it on the loader so it may be reused.\n\n loader._batch = newBatch; // Then schedule a task to dispatch this batch of requests.\n\n loader._batchScheduleFn(function () {\n dispatchBatch(loader, newBatch);\n });\n\n return newBatch;\n}\n\nfunction dispatchBatch(loader, batch) {\n // Mark this batch as having been dispatched.\n batch.hasDispatched = true; // If there's nothing to load, resolve any cache hits and return early.\n\n if (batch.keys.length === 0) {\n resolveCacheHits(batch);\n return;\n } // Call the provided batchLoadFn for this loader with the batch's keys and\n // with the loader as the `this` context.\n\n\n var batchPromise;\n\n try {\n batchPromise = loader._batchLoadFn(batch.keys);\n } catch (e) {\n return failedDispatch(loader, batch, new TypeError('DataLoader must be constructed with a function which accepts ' + 'Array<key> and returns Promise<Array<value>>, but the function ' + (\"errored synchronously: \" + String(e) + \".\")));\n } // Assert the expected response from batchLoadFn\n\n\n if (!batchPromise || typeof batchPromise.then !== 'function') {\n return failedDispatch(loader, batch, new TypeError('DataLoader must be constructed with a function which accepts ' + 'Array<key> and returns Promise<Array<value>>, but the function did ' + (\"not return a Promise: \" + String(batchPromise) + \".\")));\n } // Await the resolution of the call to batchLoadFn.\n\n\n batchPromise.then(function (values) {\n // Assert the expected resolution from batchLoadFn.\n if (!isArrayLike(values)) {\n throw new TypeError('DataLoader must be constructed with a function which accepts ' + 'Array<key> and returns Promise<Array<value>>, but the function did ' + (\"not return a Promise of an Array: \" + String(values) + \".\"));\n }\n\n if (values.length !== batch.keys.length) {\n throw new TypeError('DataLoader must be constructed with a function which accepts ' + 'Array<key> and returns Promise<Array<value>>, but the function did ' + 'not return a Promise of an Array of the same length as the Array ' + 'of keys.' + (\"\\n\\nKeys:\\n\" + String(batch.keys)) + (\"\\n\\nValues:\\n\" + String(values)));\n } // Resolve all cache hits in the same micro-task as freshly loaded values.\n\n\n resolveCacheHits(batch); // Step through values, resolving or rejecting each Promise in the batch.\n\n for (var i = 0; i < batch.callbacks.length; i++) {\n var _value = values[i];\n\n if (_value instanceof Error) {\n batch.callbacks[i].reject(_value);\n } else {\n batch.callbacks[i].resolve(_value);\n }\n }\n })[\"catch\"](function (error) {\n failedDispatch(loader, batch, error);\n });\n} // Private: do not cache individual loads if the entire batch dispatch fails,\n// but still reject each request so they do not hang.\n\n\nfunction failedDispatch(loader, batch, error) {\n // Cache hits are resolved, even though the batch failed.\n resolveCacheHits(batch);\n\n for (var i = 0; i < batch.keys.length; i++) {\n loader.clear(batch.keys[i]);\n batch.callbacks[i].reject(error);\n }\n} // Private: Resolves the Promises for any cache hits in this batch.\n\n\nfunction resolveCacheHits(batch) {\n if (batch.cacheHits) {\n for (var i = 0; i < batch.cacheHits.length; i++) {\n batch.cacheHits[i]();\n }\n }\n} // Private: given the DataLoader's options, produce a valid max batch size.\n\n\nfunction getValidMaxBatchSize(options) {\n var shouldBatch = !options || options.batch !== false;\n\n if (!shouldBatch) {\n return 1;\n }\n\n var maxBatchSize = options && options.maxBatchSize;\n\n if (maxBatchSize === undefined) {\n return Infinity;\n }\n\n if (typeof maxBatchSize !== 'number' || maxBatchSize < 1) {\n throw new TypeError(\"maxBatchSize must be a positive number: \" + maxBatchSize);\n }\n\n return maxBatchSize;\n} // Private\n\n\nfunction getValidBatchScheduleFn(options) {\n var batchScheduleFn = options && options.batchScheduleFn;\n\n if (batchScheduleFn === undefined) {\n return enqueuePostPromiseJob;\n }\n\n if (typeof batchScheduleFn !== 'function') {\n throw new TypeError(\"batchScheduleFn must be a function: \" + batchScheduleFn);\n }\n\n return batchScheduleFn;\n} // Private: given the DataLoader's options, produce a cache key function.\n\n\nfunction getValidCacheKeyFn(options) {\n var cacheKeyFn = options && options.cacheKeyFn;\n\n if (cacheKeyFn === undefined) {\n return function (key) {\n return key;\n };\n }\n\n if (typeof cacheKeyFn !== 'function') {\n throw new TypeError(\"cacheKeyFn must be a function: \" + cacheKeyFn);\n }\n\n return cacheKeyFn;\n} // Private: given the DataLoader's options, produce a CacheMap to be used.\n\n\nfunction getValidCacheMap(options) {\n var shouldCache = !options || options.cache !== false;\n\n if (!shouldCache) {\n return null;\n }\n\n var cacheMap = options && options.cacheMap;\n\n if (cacheMap === undefined) {\n return new Map();\n }\n\n if (cacheMap !== null) {\n var cacheFunctions = ['get', 'set', 'delete', 'clear'];\n var missingFunctions = cacheFunctions.filter(function (fnName) {\n return cacheMap && typeof cacheMap[fnName] !== 'function';\n });\n\n if (missingFunctions.length !== 0) {\n throw new TypeError('Custom cacheMap missing methods: ' + missingFunctions.join(', '));\n }\n }\n\n return cacheMap;\n}\n\nfunction getValidName(options) {\n if (options && options.name) {\n return options.name;\n }\n\n return null;\n} // Private\n\n\nfunction isArrayLike(x) {\n return typeof x === 'object' && x !== null && typeof x.length === 'number' && (x.length === 0 || x.length > 0 && Object.prototype.hasOwnProperty.call(x, x.length - 1));\n}\n\nmodule.exports = DataLoader;","// Axios v1.7.9 Copyright (c) 2024 Matt Zabriskie and contributors\n'use strict';\n\nfunction bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n};\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n};\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n};\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz';\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n};\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0];\n }\n\n return str;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj, 0);\n};\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nvar utils$1 = {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils$1.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils$1.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype$1 = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype$1, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype$1);\n\n utils$1.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\n// eslint-disable-next-line strict\nvar httpAdapter = null;\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils$1.isPlainObject(thing) || utils$1.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils$1.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils$1.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils$1.toFlatObject(utils$1, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils$1.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils$1.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils$1.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils$1.isSpecCompliantForm(formData);\n\n if (!utils$1.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils$1.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils$1.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils$1.isArrayBuffer(value) || utils$1.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils$1.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils$1.isArray(value) && isFlatArray(value)) ||\n ((utils$1.isFileList(value) || utils$1.endsWith(key, '[]')) && (arr = utils$1.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils$1.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils$1.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils$1.forEach(value, function each(el, key) {\n const result = !(utils$1.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils$1.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils$1.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode$1(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode$1);\n } : encode$1;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nfunction buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n if (utils$1.isFunction(options)) {\n options = {\n serialize: options\n };\n } \n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils$1.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils$1.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nvar InterceptorManager$1 = InterceptorManager;\n\nvar transitionalDefaults = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n\nvar URLSearchParams$1 = typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n\nvar FormData$1 = typeof FormData !== 'undefined' ? FormData : null;\n\nvar Blob$1 = typeof Blob !== 'undefined' ? Blob : null;\n\nvar platform$1 = {\n isBrowser: true,\n classes: {\n URLSearchParams: URLSearchParams$1,\n FormData: FormData$1,\n Blob: Blob$1\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n\nconst hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nvar utils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n hasBrowserEnv: hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv: hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv: hasStandardBrowserEnv,\n navigator: _navigator,\n origin: origin\n});\n\nvar platform = {\n ...utils,\n ...platform$1\n};\n\nfunction toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils$1.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils$1.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils$1.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils$1.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils$1.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils$1.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils$1.isFormData(formData) && utils$1.isFunction(formData.entries)) {\n const obj = {};\n\n utils$1.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils$1.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils$1.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils$1.isObject(data);\n\n if (isObjectPayload && utils$1.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils$1.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils$1.isArrayBuffer(data) ||\n utils$1.isBuffer(data) ||\n utils$1.isStream(data) ||\n utils$1.isFile(data) ||\n utils$1.isBlob(data) ||\n utils$1.isReadableStream(data)\n ) {\n return data;\n }\n if (utils$1.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils$1.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils$1.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils$1.isResponse(data) || utils$1.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils$1.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nvar defaults$1 = defaults;\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils$1.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nvar parseHeaders = rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils$1.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils$1.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils$1.isString(value)) return;\n\n if (utils$1.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils$1.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils$1.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils$1.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils$1.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils$1.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if(utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils$1.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils$1.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils$1.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils$1.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils$1.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils$1.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils$1.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils$1.forEach(this, (value, header) => {\n const key = utils$1.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils$1.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils$1.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils$1.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils$1.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils$1.freezeMethods(AxiosHeaders);\n\nvar AxiosHeaders$1 = AxiosHeaders;\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nfunction transformData(fns, response) {\n const config = this || defaults$1;\n const context = response || config;\n const headers = AxiosHeaders$1.from(context.headers);\n let data = context.data;\n\n utils$1.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n\nfunction isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils$1.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nfunction settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n\nfunction parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\n/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n };\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs);\n }, threshold - passed);\n }\n }\n };\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nconst progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n};\n\nconst progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n};\n\nconst asyncDecorator = (fn) => (...args) => utils$1.asap(() => fn(...args));\n\nvar isURLSameOrigin = platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n})(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n) : () => true;\n\nvar cookies = platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils$1.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils$1.isString(path) && cookie.push('path=' + path);\n\n utils$1.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nfunction isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nfunction combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nfunction buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders$1 ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nfunction mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) {\n return utils$1.merge.call({caseless}, target, source);\n } else if (utils$1.isPlainObject(source)) {\n return utils$1.merge({}, source);\n } else if (utils$1.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, prop , caseless) {\n if (!utils$1.isUndefined(b)) {\n return getMergedValue(a, b, prop , caseless);\n } else if (!utils$1.isUndefined(a)) {\n return getMergedValue(undefined, a, prop , caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils$1.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils$1.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils$1.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true)\n };\n\n utils$1.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils$1.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n\nvar resolveConfig = (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders$1.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils$1.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils$1.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n};\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nvar xhrAdapter = isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders$1.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders$1.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils$1.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils$1.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n};\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n };\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT));\n }, timeout);\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n };\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils$1.asap(unsubscribe);\n\n return signal;\n }\n};\n\nvar composeSignals$1 = composeSignals;\n\nconst streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n};\n\nconst readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n};\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n};\n\nconst trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n };\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n};\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n};\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils$1.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils$1.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n });\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils$1.isBlob(body)) {\n return body.size;\n }\n\n if(utils$1.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(utils$1.isArrayBufferView(body) || utils$1.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils$1.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils$1.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n};\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils$1.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n};\n\nvar fetchAdapter = isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals$1([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils$1.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader);\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils$1.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = \"credentials\" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils$1.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils$1.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders$1.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n });\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n};\n\nutils$1.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils$1.isFunction(adapter) || adapter === null || adapter === false;\n\nvar adapters = {\n getAdapter: (adapters) => {\n adapters = utils$1.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n};\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nfunction dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders$1.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults$1.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders$1.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders$1.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n\nconst VERSION = \"1.7.9\";\n\nconst validators$1 = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators$1[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators$1.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators$1.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n }\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nvar validator = {\n assertOptions,\n validators: validators$1\n};\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager$1(),\n response: new InterceptorManager$1()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack;\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils$1.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n };\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n validator.assertOptions(config, {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken')\n }, true);\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils$1.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils$1.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders$1.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils$1.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils$1.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nvar Axios$1 = Axios;\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nvar CancelToken$1 = CancelToken;\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nfunction spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nfunction isAxiosError(payload) {\n return utils$1.isObject(payload) && (payload.isAxiosError === true);\n}\n\nconst HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nvar HttpStatusCode$1 = HttpStatusCode;\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios$1(defaultConfig);\n const instance = bind(Axios$1.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils$1.extend(instance, Axios$1.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils$1.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults$1);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios$1;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken$1;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders$1;\n\naxios.formToJSON = thing => formDataToJSON(utils$1.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode$1;\n\naxios.default = axios;\n\nmodule.exports = axios;\n//# sourceMappingURL=axios.cjs.map\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getParsedType = exports.ZodParsedType = exports.objectUtil = exports.util = void 0;\nvar 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 || (exports.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 || (exports.objectUtil = objectUtil = {}));\nexports.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 exports.ZodParsedType.undefined;\n case \"string\":\n return exports.ZodParsedType.string;\n case \"number\":\n return isNaN(data) ? exports.ZodParsedType.nan : exports.ZodParsedType.number;\n case \"boolean\":\n return exports.ZodParsedType.boolean;\n case \"function\":\n return exports.ZodParsedType.function;\n case \"bigint\":\n return exports.ZodParsedType.bigint;\n case \"symbol\":\n return exports.ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return exports.ZodParsedType.array;\n }\n if (data === null) {\n return exports.ZodParsedType.null;\n }\n if (data.then &&\n typeof data.then === \"function\" &&\n data.catch &&\n typeof data.catch === \"function\") {\n return exports.ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return exports.ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return exports.ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return exports.ZodParsedType.date;\n }\n return exports.ZodParsedType.object;\n default:\n return exports.ZodParsedType.unknown;\n }\n};\nexports.getParsedType = getParsedType;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ZodError = exports.quotelessJson = exports.ZodIssueCode = void 0;\nconst util_1 = require(\"./helpers/util\");\nexports.ZodIssueCode = util_1.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};\nexports.quotelessJson = quotelessJson;\nclass ZodError extends Error {\n get errors() {\n return this.issues;\n }\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n static assert(value) {\n if (!(value instanceof ZodError)) {\n throw new Error(`Not a ZodError: ${value}`);\n }\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util_1.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}\nexports.ZodError = ZodError;\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../helpers/util\");\nconst ZodError_1 = require(\"../ZodError\");\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodError_1.ZodIssueCode.invalid_type:\n if (issue.received === util_1.ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodError_1.ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util_1.util.jsonStringifyReplacer)}`;\n break;\n case ZodError_1.ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util_1.util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodError_1.ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodError_1.ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util_1.util.joinValues(issue.options)}`;\n break;\n case ZodError_1.ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util_1.util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodError_1.ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodError_1.ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodError_1.ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodError_1.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_1.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 ZodError_1.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 ZodError_1.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 ZodError_1.ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodError_1.ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodError_1.ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodError_1.ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util_1.util.assertNever(issue);\n }\n return { message };\n};\nexports.default = errorMap;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getErrorMap = exports.setErrorMap = exports.defaultErrorMap = void 0;\nconst en_1 = __importDefault(require(\"./locales/en\"));\nexports.defaultErrorMap = en_1.default;\nlet overrideErrorMap = en_1.default;\nfunction setErrorMap(map) {\n overrideErrorMap = map;\n}\nexports.setErrorMap = setErrorMap;\nfunction getErrorMap() {\n return overrideErrorMap;\n}\nexports.getErrorMap = getErrorMap;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isAsync = exports.isValid = exports.isDirty = exports.isAborted = exports.OK = exports.DIRTY = exports.INVALID = exports.ParseStatus = exports.addIssueToContext = exports.EMPTY_PATH = exports.makeIssue = void 0;\nconst errors_1 = require(\"../errors\");\nconst en_1 = __importDefault(require(\"../locales/en\"));\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};\nexports.makeIssue = makeIssue;\nexports.EMPTY_PATH = [];\nfunction addIssueToContext(ctx, issueData) {\n const overrideMap = (0, errors_1.getErrorMap)();\n const issue = (0, exports.makeIssue)({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap, // contextual error map is first priority\n ctx.schemaErrorMap, // then schema-bound map if available\n overrideMap, // then global override map\n overrideMap === en_1.default ? undefined : en_1.default, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nexports.addIssueToContext = addIssueToContext;\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 exports.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 exports.INVALID;\n if (value.status === \"aborted\")\n return exports.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}\nexports.ParseStatus = ParseStatus;\nexports.INVALID = Object.freeze({\n status: \"aborted\",\n});\nconst DIRTY = (value) => ({ status: \"dirty\", value });\nexports.DIRTY = DIRTY;\nconst OK = (value) => ({ status: \"valid\", value });\nexports.OK = OK;\nconst isAborted = (x) => x.status === \"aborted\";\nexports.isAborted = isAborted;\nconst isDirty = (x) => x.status === \"dirty\";\nexports.isDirty = isDirty;\nconst isValid = (x) => x.status === \"valid\";\nexports.isValid = isValid;\nconst isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\nexports.isAsync = isAsync;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.errorUtil = void 0;\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 || (exports.errorUtil = errorUtil = {}));\n","\"use strict\";\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\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\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\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\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _ZodEnum_cache, _ZodNativeEnum_cache;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.boolean = exports.bigint = exports.array = exports.any = exports.coerce = exports.ZodFirstPartyTypeKind = exports.late = exports.ZodSchema = exports.Schema = exports.custom = exports.ZodReadonly = exports.ZodPipeline = exports.ZodBranded = exports.BRAND = exports.ZodNaN = exports.ZodCatch = exports.ZodDefault = exports.ZodNullable = exports.ZodOptional = exports.ZodTransformer = exports.ZodEffects = exports.ZodPromise = exports.ZodNativeEnum = exports.ZodEnum = exports.ZodLiteral = exports.ZodLazy = exports.ZodFunction = exports.ZodSet = exports.ZodMap = exports.ZodRecord = exports.ZodTuple = exports.ZodIntersection = exports.ZodDiscriminatedUnion = exports.ZodUnion = exports.ZodObject = exports.ZodArray = exports.ZodVoid = exports.ZodNever = exports.ZodUnknown = exports.ZodAny = exports.ZodNull = exports.ZodUndefined = exports.ZodSymbol = exports.ZodDate = exports.ZodBoolean = exports.ZodBigInt = exports.ZodNumber = exports.ZodString = exports.datetimeRegex = exports.ZodType = void 0;\nexports.NEVER = exports.void = exports.unknown = exports.union = exports.undefined = exports.tuple = exports.transformer = exports.symbol = exports.string = exports.strictObject = exports.set = exports.record = exports.promise = exports.preprocess = exports.pipeline = exports.ostring = exports.optional = exports.onumber = exports.oboolean = exports.object = exports.number = exports.nullable = exports.null = exports.never = exports.nativeEnum = exports.nan = exports.map = exports.literal = exports.lazy = exports.intersection = exports.instanceof = exports.function = exports.enum = exports.effect = exports.discriminatedUnion = exports.date = void 0;\nconst errors_1 = require(\"./errors\");\nconst errorUtil_1 = require(\"./helpers/errorUtil\");\nconst parseUtil_1 = require(\"./helpers/parseUtil\");\nconst util_1 = require(\"./helpers/util\");\nconst ZodError_1 = require(\"./ZodError\");\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 ((0, parseUtil_1.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_1.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 get description() {\n return this._def.description;\n }\n _getType(input) {\n return (0, util_1.getParsedType)(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: (0, util_1.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 parseUtil_1.ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: (0, util_1.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 ((0, parseUtil_1.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: (0, util_1.getParsedType)(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n \"~validate\"(data) {\n var _a, _b;\n const ctx = {\n common: {\n issues: [],\n async: !!this[\"~standard\"].async,\n },\n path: [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: (0, util_1.getParsedType)(data),\n };\n if (!this[\"~standard\"].async) {\n try {\n const result = this._parseSync({ data, path: [], parent: ctx });\n return (0, parseUtil_1.isValid)(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n };\n }\n catch (err) {\n if ((_b = (_a = err === null || err === void 0 ? void 0 : err.message) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === null || _b === void 0 ? void 0 : _b.includes(\"encountered\")) {\n this[\"~standard\"].async = true;\n }\n ctx.common = {\n issues: [],\n async: true,\n };\n }\n }\n return this._parseAsync({ data, path: [], parent: ctx }).then((result) => (0, parseUtil_1.isValid)(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n });\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params === 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: (0, util_1.getParsedType)(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await ((0, parseUtil_1.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: ZodError_1.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 constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n this[\"~standard\"] = {\n version: 1,\n vendor: \"zod\",\n validate: (data) => this[\"~validate\"](data),\n };\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nexports.ZodType = ZodType;\nexports.Schema = ZodType;\nexports.ZodSchema = ZodType;\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[0-9a-z]+$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i;\n// const uuidRegex =\n// /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nconst nanoidRegex = /^[a-z0-9_-]{21}$/i;\nconst jwtRegex = /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/;\nconst durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n// /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n// /^[a-zA-Z0-9\\.\\!\\#\\$\\%\\&\\'\\*\\+\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~\\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// const emailRegex =\n// /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n// /^[a-z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\n// faster, simpler, safer\nconst ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nconst ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/;\n// const ipv6Regex =\n// /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\nconst ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;\nconst ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nconst base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\n// https://base64.guru/standards/base64url\nconst base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;\n// simple\n// const dateRegexSource = `\\\\d{4}-\\\\d{2}-\\\\d{2}`;\n// no leap year validation\n// const dateRegexSource = `\\\\d{4}-((0[13578]|10|12)-31|(0[13-9]|1[0-2])-30|(0[1-9]|1[0-2])-(0[1-9]|1\\\\d|2\\\\d))`;\n// with leap year validation\nconst dateRegexSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateRegex = new RegExp(`^${dateRegexSource}$`);\nfunction timeRegexSource(args) {\n // let 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}\nexports.datetimeRegex = datetimeRegex;\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nfunction isValidJWT(jwt, alg) {\n if (!jwtRegex.test(jwt))\n return false;\n try {\n const [header] = jwt.split(\".\");\n // Convert base64url to base64\n const base64 = header\n .replace(/-/g, \"+\")\n .replace(/_/g, \"/\")\n .padEnd(header.length + ((4 - (header.length % 4)) % 4), \"=\");\n const decoded = JSON.parse(atob(base64));\n if (typeof decoded !== \"object\" || decoded === null)\n return false;\n if (!decoded.typ || !decoded.alg)\n return false;\n if (alg && decoded.alg !== alg)\n return false;\n return true;\n }\n catch (_a) {\n return false;\n }\n}\nfunction isValidCidr(ip, version) {\n if ((version === \"v4\" || !version) && ipv4CidrRegex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6CidrRegex.test(ip)) {\n return true;\n }\n return false;\n}\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 !== util_1.ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.string,\n received: ctx.parsedType,\n });\n return parseUtil_1.INVALID;\n }\n const status = new parseUtil_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n validation: \"email\",\n code: ZodError_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n validation: \"emoji\",\n code: ZodError_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n validation: \"uuid\",\n code: ZodError_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n validation: \"nanoid\",\n code: ZodError_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n validation: \"cuid\",\n code: ZodError_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n validation: \"cuid2\",\n code: ZodError_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n validation: \"ulid\",\n code: ZodError_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n validation: \"url\",\n code: ZodError_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n validation: \"regex\",\n code: ZodError_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n validation: \"duration\",\n code: ZodError_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n validation: \"ip\",\n code: ZodError_1.ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"jwt\") {\n if (!isValidJWT(input.data, check.alg)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n validation: \"jwt\",\n code: ZodError_1.ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cidr\") {\n if (!isValidCidr(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n validation: \"cidr\",\n code: ZodError_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n validation: \"base64\",\n code: ZodError_1.ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64url\") {\n if (!base64urlRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n validation: \"base64url\",\n code: ZodError_1.ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util_1.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: ZodError_1.ZodIssueCode.invalid_string,\n ...errorUtil_1.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_1.errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil_1.errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil_1.errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil_1.errorUtil.errToObj(message) });\n }\n nanoid(message) {\n return this._addCheck({ kind: \"nanoid\", ...errorUtil_1.errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil_1.errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil_1.errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil_1.errorUtil.errToObj(message) });\n }\n base64(message) {\n return this._addCheck({ kind: \"base64\", ...errorUtil_1.errorUtil.errToObj(message) });\n }\n base64url(message) {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return this._addCheck({\n kind: \"base64url\",\n ...errorUtil_1.errorUtil.errToObj(message),\n });\n }\n jwt(options) {\n return this._addCheck({ kind: \"jwt\", ...errorUtil_1.errorUtil.errToObj(options) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil_1.errorUtil.errToObj(options) });\n }\n cidr(options) {\n return this._addCheck({ kind: \"cidr\", ...errorUtil_1.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_1.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_1.errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n duration(message) {\n return this._addCheck({ kind: \"duration\", ...errorUtil_1.errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil_1.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_1.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_1.errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil_1.errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil_1.errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil_1.errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil_1.errorUtil.errToObj(message),\n });\n }\n /**\n * Equivalent to `.min(1)`\n */\n nonempty(message) {\n return this.min(1, errorUtil_1.errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isDate() {\n return !!this._def.checks.find((ch) => ch.kind === \"date\");\n }\n get isTime() {\n return !!this._def.checks.find((ch) => ch.kind === \"time\");\n }\n get isDuration() {\n return !!this._def.checks.find((ch) => ch.kind === \"duration\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isNANOID() {\n return !!this._def.checks.find((ch) => ch.kind === \"nanoid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get isCIDR() {\n return !!this._def.checks.find((ch) => ch.kind === \"cidr\");\n }\n get isBase64() {\n return !!this._def.checks.find((ch) => ch.kind === \"base64\");\n }\n get isBase64url() {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return !!this._def.checks.find((ch) => ch.kind === \"base64url\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nexports.ZodString = ZodString;\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 !== util_1.ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.number,\n received: ctx.parsedType,\n });\n return parseUtil_1.INVALID;\n }\n let ctx = undefined;\n const status = new parseUtil_1.ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util_1.util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util_1.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_1.errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil_1.errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil_1.errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil_1.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_1.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_1.errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil_1.errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil_1.errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil_1.errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil_1.errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil_1.errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil_1.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_1.errorUtil.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil_1.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_1.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}\nexports.ZodNumber = ZodNumber;\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 try {\n input.data = BigInt(input.data);\n }\n catch (_a) {\n return this._getInvalidInput(input);\n }\n }\n const parsedType = this._getType(input);\n if (parsedType !== util_1.ZodParsedType.bigint) {\n return this._getInvalidInput(input);\n }\n let ctx = undefined;\n const status = new parseUtil_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util_1.util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _getInvalidInput(input) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return parseUtil_1.INVALID;\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil_1.errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil_1.errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil_1.errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil_1.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_1.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_1.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_1.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_1.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_1.errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil_1.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}\nexports.ZodBigInt = ZodBigInt;\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 !== util_1.ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return parseUtil_1.INVALID;\n }\n return (0, parseUtil_1.OK)(input.data);\n }\n}\nexports.ZodBoolean = ZodBoolean;\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 !== util_1.ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.date,\n received: ctx.parsedType,\n });\n return parseUtil_1.INVALID;\n }\n if (isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_date,\n });\n return parseUtil_1.INVALID;\n }\n const status = new parseUtil_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.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_1.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_1.errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil_1.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}\nexports.ZodDate = ZodDate;\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 !== util_1.ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return parseUtil_1.INVALID;\n }\n return (0, parseUtil_1.OK)(input.data);\n }\n}\nexports.ZodSymbol = ZodSymbol;\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 !== util_1.ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return parseUtil_1.INVALID;\n }\n return (0, parseUtil_1.OK)(input.data);\n }\n}\nexports.ZodUndefined = ZodUndefined;\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 !== util_1.ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.null,\n received: ctx.parsedType,\n });\n return parseUtil_1.INVALID;\n }\n return (0, parseUtil_1.OK)(input.data);\n }\n}\nexports.ZodNull = ZodNull;\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 (0, parseUtil_1.OK)(input.data);\n }\n}\nexports.ZodAny = ZodAny;\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 (0, parseUtil_1.OK)(input.data);\n }\n}\nexports.ZodUnknown = ZodUnknown;\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 (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.never,\n received: ctx.parsedType,\n });\n return parseUtil_1.INVALID;\n }\n}\nexports.ZodNever = ZodNever;\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 !== util_1.ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.void,\n received: ctx.parsedType,\n });\n return parseUtil_1.INVALID;\n }\n return (0, parseUtil_1.OK)(input.data);\n }\n}\nexports.ZodVoid = ZodVoid;\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 !== util_1.ZodParsedType.array) {\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.array,\n received: ctx.parsedType,\n });\n return parseUtil_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n code: tooBig ? ZodError_1.ZodIssueCode.too_big : ZodError_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.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 parseUtil_1.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 parseUtil_1.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_1.errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil_1.errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil_1.errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nexports.ZodArray = ZodArray;\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_1.util.objectKeys(shape);\n return (this._cached = { shape, keys });\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== util_1.ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.object,\n received: ctx.parsedType,\n });\n return parseUtil_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") {\n }\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return parseUtil_1.ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return parseUtil_1.ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil_1.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_1.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_1.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_1.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_1.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_1.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_1.util.objectKeys(this.shape));\n }\n}\nexports.ZodObject = ZodObject;\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_1.ZodError(result.ctx.common.issues));\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_union,\n unionErrors,\n });\n return parseUtil_1.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_1.ZodError(issues));\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_union,\n unionErrors,\n });\n return parseUtil_1.INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nexports.ZodUnion = ZodUnion;\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_1.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 !== util_1.ZodParsedType.object) {\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.object,\n received: ctx.parsedType,\n });\n return parseUtil_1.INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return parseUtil_1.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}\nexports.ZodDiscriminatedUnion = ZodDiscriminatedUnion;\nfunction mergeValues(a, b) {\n const aType = (0, util_1.getParsedType)(a);\n const bType = (0, util_1.getParsedType)(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === util_1.ZodParsedType.object && bType === util_1.ZodParsedType.object) {\n const bKeys = util_1.util.objectKeys(b);\n const sharedKeys = util_1.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 === util_1.ZodParsedType.array && bType === util_1.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 === util_1.ZodParsedType.date &&\n bType === util_1.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 ((0, parseUtil_1.isAborted)(parsedLeft) || (0, parseUtil_1.isAborted)(parsedRight)) {\n return parseUtil_1.INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_intersection_types,\n });\n return parseUtil_1.INVALID;\n }\n if ((0, parseUtil_1.isDirty)(parsedLeft) || (0, parseUtil_1.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}\nexports.ZodIntersection = ZodIntersection;\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 !== util_1.ZodParsedType.array) {\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.array,\n received: ctx.parsedType,\n });\n return parseUtil_1.INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return parseUtil_1.INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.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 parseUtil_1.ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return parseUtil_1.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}\nexports.ZodTuple = ZodTuple;\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 !== util_1.ZodParsedType.object) {\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.object,\n received: ctx.parsedType,\n });\n return parseUtil_1.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 parseUtil_1.ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return parseUtil_1.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}\nexports.ZodRecord = ZodRecord;\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 !== util_1.ZodParsedType.map) {\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.map,\n received: ctx.parsedType,\n });\n return parseUtil_1.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 parseUtil_1.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 parseUtil_1.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}\nexports.ZodMap = ZodMap;\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 !== util_1.ZodParsedType.set) {\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.set,\n received: ctx.parsedType,\n });\n return parseUtil_1.INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.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 parseUtil_1.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_1.errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil_1.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}\nexports.ZodSet = ZodSet;\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 !== util_1.ZodParsedType.function) {\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.function,\n received: ctx.parsedType,\n });\n return parseUtil_1.INVALID;\n }\n function makeArgsIssue(args, error) {\n return (0, parseUtil_1.makeIssue)({\n data: args,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n (0, errors_1.getErrorMap)(),\n errors_1.defaultErrorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodError_1.ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return (0, parseUtil_1.makeIssue)({\n data: returns,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n (0, errors_1.getErrorMap)(),\n errors_1.defaultErrorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodError_1.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 (0, parseUtil_1.OK)(async function (...args) {\n const error = new ZodError_1.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 (0, parseUtil_1.OK)(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError_1.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_1.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}\nexports.ZodFunction = ZodFunction;\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}\nexports.ZodLazy = ZodLazy;\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 (0, parseUtil_1.addIssueToContext)(ctx, {\n received: ctx.data,\n code: ZodError_1.ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return parseUtil_1.INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nexports.ZodLiteral = ZodLiteral;\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 (0, parseUtil_1.addIssueToContext)(ctx, {\n expected: util_1.util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodError_1.ZodIssueCode.invalid_type,\n });\n return parseUtil_1.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 (0, parseUtil_1.addIssueToContext)(ctx, {\n received: ctx.data,\n code: ZodError_1.ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return parseUtil_1.INVALID;\n }\n return (0, parseUtil_1.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}\nexports.ZodEnum = ZodEnum;\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_1.util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== util_1.ZodParsedType.string &&\n ctx.parsedType !== util_1.ZodParsedType.number) {\n const expectedValues = util_1.util.objectValues(nativeEnumValues);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n expected: util_1.util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodError_1.ZodIssueCode.invalid_type,\n });\n return parseUtil_1.INVALID;\n }\n if (!__classPrivateFieldGet(this, _ZodNativeEnum_cache, \"f\")) {\n __classPrivateFieldSet(this, _ZodNativeEnum_cache, new Set(util_1.util.getValidEnumValues(this._def.values)), \"f\");\n }\n if (!__classPrivateFieldGet(this, _ZodNativeEnum_cache, \"f\").has(input.data)) {\n const expectedValues = util_1.util.objectValues(nativeEnumValues);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n received: ctx.data,\n code: ZodError_1.ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return parseUtil_1.INVALID;\n }\n return (0, parseUtil_1.OK)(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nexports.ZodNativeEnum = ZodNativeEnum;\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 !== util_1.ZodParsedType.promise &&\n ctx.common.async === false) {\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return parseUtil_1.INVALID;\n }\n const promisified = ctx.parsedType === util_1.ZodParsedType.promise\n ? ctx.data\n : Promise.resolve(ctx.data);\n return (0, parseUtil_1.OK)(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nexports.ZodPromise = ZodPromise;\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 (0, parseUtil_1.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 parseUtil_1.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 parseUtil_1.INVALID;\n if (result.status === \"dirty\")\n return (0, parseUtil_1.DIRTY)(result.value);\n if (status.value === \"dirty\")\n return (0, parseUtil_1.DIRTY)(result.value);\n return result;\n });\n }\n else {\n if (status.value === \"aborted\")\n return parseUtil_1.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 parseUtil_1.INVALID;\n if (result.status === \"dirty\")\n return (0, parseUtil_1.DIRTY)(result.value);\n if (status.value === \"dirty\")\n return (0, parseUtil_1.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 parseUtil_1.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 parseUtil_1.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 (!(0, parseUtil_1.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 (!(0, parseUtil_1.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_1.util.assertNever(effect);\n }\n}\nexports.ZodEffects = ZodEffects;\nexports.ZodTransformer = ZodEffects;\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 === util_1.ZodParsedType.undefined) {\n return (0, parseUtil_1.OK)(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nexports.ZodOptional = ZodOptional;\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 === util_1.ZodParsedType.null) {\n return (0, parseUtil_1.OK)(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nexports.ZodNullable = ZodNullable;\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 === util_1.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}\nexports.ZodDefault = ZodDefault;\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 ((0, parseUtil_1.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_1.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_1.ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nexports.ZodCatch = ZodCatch;\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 !== util_1.ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_1.addIssueToContext)(ctx, {\n code: ZodError_1.ZodIssueCode.invalid_type,\n expected: util_1.ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return parseUtil_1.INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nexports.ZodNaN = ZodNaN;\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nexports.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}\nexports.ZodBranded = ZodBranded;\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 parseUtil_1.INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return (0, parseUtil_1.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 parseUtil_1.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}\nexports.ZodPipeline = ZodPipeline;\nclass ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n const freeze = (data) => {\n if ((0, parseUtil_1.isValid)(data)) {\n data.value = Object.freeze(data.value);\n }\n return data;\n };\n return (0, parseUtil_1.isAsync)(result)\n ? result.then((data) => freeze(data))\n : freeze(result);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nexports.ZodReadonly = ZodReadonly;\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params),\n });\n};\n////////////////////////////////////////\n////////////////////////////////////////\n////////// //////////\n////////// z.custom //////////\n////////// //////////\n////////////////////////////////////////\n////////////////////////////////////////\nfunction cleanParams(params, data) {\n const p = typeof params === \"function\"\n ? params(data)\n : typeof params === \"string\"\n ? { message: params }\n : params;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n return p2;\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 const r = check(data);\n if (r instanceof Promise) {\n return r.then((r) => {\n var _a, _b;\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = (_b = (_a = params.fatal) !== null && _a !== void 0 ? _a : fatal) !== null && _b !== void 0 ? _b : true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n });\n }\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = (_b = (_a = params.fatal) !== null && _a !== void 0 ? _a : fatal) !== null && _b !== void 0 ? _b : true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n return;\n });\n return ZodAny.create();\n}\nexports.custom = custom;\nexports.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 || (exports.ZodFirstPartyTypeKind = ZodFirstPartyTypeKind = {}));\n// requires TS 4.4+\nclass Class {\n constructor(..._) { }\n}\nconst instanceOfType = (\n// const instanceOfType = <T extends new (...args: any[]) => any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nexports.instanceof = instanceOfType;\nconst stringType = ZodString.create;\nexports.string = stringType;\nconst numberType = ZodNumber.create;\nexports.number = numberType;\nconst nanType = ZodNaN.create;\nexports.nan = nanType;\nconst bigIntType = ZodBigInt.create;\nexports.bigint = bigIntType;\nconst booleanType = ZodBoolean.create;\nexports.boolean = booleanType;\nconst dateType = ZodDate.create;\nexports.date = dateType;\nconst symbolType = ZodSymbol.create;\nexports.symbol = symbolType;\nconst undefinedType = ZodUndefined.create;\nexports.undefined = undefinedType;\nconst nullType = ZodNull.create;\nexports.null = nullType;\nconst anyType = ZodAny.create;\nexports.any = anyType;\nconst unknownType = ZodUnknown.create;\nexports.unknown = unknownType;\nconst neverType = ZodNever.create;\nexports.never = neverType;\nconst voidType = ZodVoid.create;\nexports.void = voidType;\nconst arrayType = ZodArray.create;\nexports.array = arrayType;\nconst objectType = ZodObject.create;\nexports.object = objectType;\nconst strictObjectType = ZodObject.strictCreate;\nexports.strictObject = strictObjectType;\nconst unionType = ZodUnion.create;\nexports.union = unionType;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nexports.discriminatedUnion = discriminatedUnionType;\nconst intersectionType = ZodIntersection.create;\nexports.intersection = intersectionType;\nconst tupleType = ZodTuple.create;\nexports.tuple = tupleType;\nconst recordType = ZodRecord.create;\nexports.record = recordType;\nconst mapType = ZodMap.create;\nexports.map = mapType;\nconst setType = ZodSet.create;\nexports.set = setType;\nconst functionType = ZodFunction.create;\nexports.function = functionType;\nconst lazyType = ZodLazy.create;\nexports.lazy = lazyType;\nconst literalType = ZodLiteral.create;\nexports.literal = literalType;\nconst enumType = ZodEnum.create;\nexports.enum = enumType;\nconst nativeEnumType = ZodNativeEnum.create;\nexports.nativeEnum = nativeEnumType;\nconst promiseType = ZodPromise.create;\nexports.promise = promiseType;\nconst effectsType = ZodEffects.create;\nexports.effect = effectsType;\nexports.transformer = effectsType;\nconst optionalType = ZodOptional.create;\nexports.optional = optionalType;\nconst nullableType = ZodNullable.create;\nexports.nullable = nullableType;\nconst preprocessType = ZodEffects.createWithPreprocess;\nexports.preprocess = preprocessType;\nconst pipelineType = ZodPipeline.create;\nexports.pipeline = pipelineType;\nconst ostring = () => stringType().optional();\nexports.ostring = ostring;\nconst onumber = () => numberType().optional();\nexports.onumber = onumber;\nconst oboolean = () => booleanType().optional();\nexports.oboolean = oboolean;\nexports.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};\nexports.NEVER = parseUtil_1.INVALID;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./errors\"), exports);\n__exportStar(require(\"./helpers/parseUtil\"), exports);\n__exportStar(require(\"./helpers/typeAliases\"), exports);\n__exportStar(require(\"./helpers/util\"), exports);\n__exportStar(require(\"./types\"), exports);\n__exportStar(require(\"./ZodError\"), exports);\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.z = void 0;\nconst z = __importStar(require(\"./external\"));\nexports.z = z;\n__exportStar(require(\"./external\"), exports);\nexports.default = z;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpApi = void 0;\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nconst TonCache_1 = require(\"./TonCache\");\nconst dataloader_1 = __importDefault(require(\"dataloader\"));\nconst axios_1 = __importDefault(require(\"axios\"));\nconst zod_1 = require(\"zod\");\nconst version = require('../../../package.json').version;\nconst blockIdExt = zod_1.z.object({\n '@type': zod_1.z.literal('ton.blockIdExt'),\n workchain: zod_1.z.number(),\n shard: zod_1.z.string(),\n seqno: zod_1.z.number(),\n root_hash: zod_1.z.string(),\n file_hash: zod_1.z.string()\n});\nconst addressInformation = zod_1.z.object({\n balance: zod_1.z.union([zod_1.z.number(), zod_1.z.string()]),\n extra_currencies: zod_1.z.optional(zod_1.z.array(zod_1.z.object({\n '@type': zod_1.z.literal(\"extraCurrency\"),\n id: zod_1.z.number(),\n amount: zod_1.z.string()\n }))),\n state: zod_1.z.union([zod_1.z.literal('active'), zod_1.z.literal('uninitialized'), zod_1.z.literal('frozen')]),\n data: zod_1.z.string(),\n code: zod_1.z.string(),\n last_transaction_id: zod_1.z.object({\n '@type': zod_1.z.literal('internal.transactionId'),\n lt: zod_1.z.string(),\n hash: zod_1.z.string()\n }),\n block_id: blockIdExt,\n sync_utime: zod_1.z.number()\n});\nconst bocResponse = zod_1.z.object({\n '@type': zod_1.z.literal('ok')\n});\nconst feeResponse = zod_1.z.object({\n '@type': zod_1.z.literal('query.fees'),\n source_fees: zod_1.z.object({\n '@type': zod_1.z.literal('fees'),\n in_fwd_fee: zod_1.z.number(),\n storage_fee: zod_1.z.number(),\n gas_fee: zod_1.z.number(),\n fwd_fee: zod_1.z.number()\n })\n});\nconst callGetMethod = zod_1.z.object({\n gas_used: zod_1.z.number(),\n exit_code: zod_1.z.number(),\n stack: zod_1.z.array(zod_1.z.unknown())\n});\nconst messageData = zod_1.z.union([\n zod_1.z.object({\n '@type': zod_1.z.literal('msg.dataRaw'),\n 'body': zod_1.z.string()\n }),\n zod_1.z.object({\n '@type': zod_1.z.literal('msg.dataText'),\n 'text': zod_1.z.string()\n }),\n zod_1.z.object({\n '@type': zod_1.z.literal('msg.dataDecryptedText'),\n 'text': zod_1.z.string()\n }),\n zod_1.z.object({\n '@type': zod_1.z.literal('msg.dataEncryptedText'),\n 'text': zod_1.z.string()\n })\n]);\nconst message = zod_1.z.object({\n source: zod_1.z.string(),\n destination: zod_1.z.string(),\n value: zod_1.z.string(),\n fwd_fee: zod_1.z.string(),\n ihr_fee: zod_1.z.string(),\n created_lt: zod_1.z.string(),\n body_hash: zod_1.z.string(),\n msg_data: messageData,\n message: zod_1.z.string().optional()\n});\nconst transaction = zod_1.z.object({\n data: zod_1.z.string(),\n utime: zod_1.z.number(),\n transaction_id: zod_1.z.object({\n lt: zod_1.z.string(),\n hash: zod_1.z.string()\n }),\n fee: zod_1.z.string(),\n storage_fee: zod_1.z.string(),\n other_fee: zod_1.z.string(),\n in_msg: zod_1.z.union([zod_1.z.undefined(), message]),\n out_msgs: zod_1.z.array(message)\n});\nconst getTransactions = zod_1.z.array(transaction);\nconst getMasterchain = zod_1.z.object({\n state_root_hash: zod_1.z.string(),\n last: blockIdExt,\n init: blockIdExt\n});\nconst getShards = zod_1.z.object({\n shards: zod_1.z.array(blockIdExt)\n});\nconst blockShortTxt = zod_1.z.object({\n '@type': zod_1.z.literal('blocks.shortTxId'),\n mode: zod_1.z.number(),\n account: zod_1.z.string(),\n lt: zod_1.z.string(),\n hash: zod_1.z.string()\n});\nconst getBlockTransactions = zod_1.z.object({\n id: blockIdExt,\n req_count: zod_1.z.number(),\n incomplete: zod_1.z.boolean(),\n transactions: zod_1.z.array(blockShortTxt)\n});\nclass TypedCache {\n constructor(namespace, cache, codec, keyEncoder) {\n this.namespace = namespace;\n this.cache = cache;\n this.codec = codec;\n this.keyEncoder = keyEncoder;\n }\n async get(key) {\n let ex = await this.cache.get(this.namespace, this.keyEncoder(key));\n if (ex) {\n let decoded = this.codec.safeParse(JSON.parse(ex));\n if (decoded.success) {\n return decoded.data;\n }\n }\n return null;\n }\n async set(key, value) {\n if (value !== null) {\n await this.cache.set(this.namespace, this.keyEncoder(key), JSON.stringify(value));\n }\n else {\n await this.cache.set(this.namespace, this.keyEncoder(key), null);\n }\n }\n}\nclass HttpApi {\n constructor(endpoint, parameters) {\n this.endpoint = endpoint;\n this.cache = new TonCache_1.InMemoryCache();\n this.parameters = {\n timeout: parameters?.timeout || 30000, // 30 seconds by default\n apiKey: parameters?.apiKey,\n adapter: parameters?.adapter\n };\n // Shard\n this.shardCache = new TypedCache('ton-shard', this.cache, zod_1.z.array(blockIdExt), (src) => src + '');\n this.shardLoader = new dataloader_1.default(async (src) => {\n return await Promise.all(src.map(async (v) => {\n const cached = await this.shardCache.get(v);\n if (cached) {\n return cached;\n }\n let loaded = (await this.doCall('shards', { seqno: v }, getShards)).shards;\n await this.shardCache.set(v, loaded);\n return loaded;\n }));\n });\n // Shard Transactions\n this.shardTransactionsCache = new TypedCache('ton-shard-tx', this.cache, getBlockTransactions, (src) => src.workchain + ':' + src.shard + ':' + src.seqno);\n this.shardTransactionsLoader = new dataloader_1.default(async (src) => {\n return await Promise.all(src.map(async (v) => {\n const cached = await this.shardTransactionsCache.get(v);\n if (cached) {\n return cached;\n }\n let loaded = await this.doCall('getBlockTransactions', { workchain: v.workchain, seqno: v.seqno, shard: v.shard }, getBlockTransactions);\n await this.shardTransactionsCache.set(v, loaded);\n return loaded;\n }));\n }, { cacheKeyFn: (src) => src.workchain + ':' + src.shard + ':' + src.seqno });\n }\n getAddressInformation(address) {\n return this.doCall('getAddressInformation', { address: address.toString() }, addressInformation);\n }\n async getTransactions(address, opts) {\n const inclusive = opts.inclusive;\n delete opts.inclusive;\n // Convert hash\n let hash = undefined;\n if (opts.hash) {\n hash = Buffer.from(opts.hash, 'base64').toString('hex');\n }\n // Adjust limit\n let limit = opts.limit;\n if (opts.hash && opts.lt && inclusive !== true) {\n limit++;\n }\n // Do request\n let res = await this.doCall('getTransactions', { address: address.toString(), ...opts, limit, hash }, getTransactions);\n if (res.length > limit) {\n res = res.slice(0, limit);\n }\n // Adjust result\n if (opts.hash && opts.lt && inclusive !== true) {\n res.shift();\n return res;\n }\n else {\n return res;\n }\n }\n async getMasterchainInfo() {\n return await this.doCall('getMasterchainInfo', {}, getMasterchain);\n }\n async getShards(seqno) {\n return await this.shardLoader.load(seqno);\n }\n async getBlockTransactions(workchain, seqno, shard) {\n return await this.shardTransactionsLoader.load({ workchain, seqno, shard });\n }\n async getTransaction(address, lt, hash) {\n let convHash = Buffer.from(hash, 'base64').toString('hex');\n let res = await this.doCall('getTransactions', { address: address.toString(), lt, hash: convHash, limit: 1 }, getTransactions);\n let ex = res.find((v) => v.transaction_id.lt === lt && v.transaction_id.hash === hash);\n if (ex) {\n return ex;\n }\n else {\n return null;\n }\n }\n async callGetMethod(address, method, stack) {\n return await this.doCall('runGetMethod', { address: address.toString(), method, stack: serializeStack(stack) }, callGetMethod);\n }\n async sendBoc(body) {\n await this.doCall('sendBoc', { boc: body.toString('base64') }, bocResponse);\n }\n async estimateFee(address, args) {\n return await this.doCall('estimateFee', {\n address: address.toString(),\n body: args.body.toBoc().toString('base64'),\n 'init_data': args.initData ? args.initData.toBoc().toString('base64') : '',\n 'init_code': args.initCode ? args.initCode.toBoc().toString('base64') : '',\n ignore_chksig: args.ignoreSignature\n }, feeResponse);\n }\n async tryLocateResultTx(source, destination, created_lt) {\n return await this.doCall('tryLocateResultTx', { source: source.toString(), destination: destination.toString(), created_lt }, transaction);\n }\n async tryLocateSourceTx(source, destination, created_lt) {\n return await this.doCall('tryLocateSourceTx', { source: source.toString(), destination: destination.toString(), created_lt }, transaction);\n }\n async doCall(method, body, codec) {\n let headers = {\n 'Content-Type': 'application/json',\n 'X-Ton-Client-Version': version,\n };\n if (this.parameters.apiKey) {\n headers['X-API-Key'] = this.parameters.apiKey;\n }\n let res = await axios_1.default.post(this.endpoint, JSON.stringify({\n id: '1',\n jsonrpc: '2.0',\n method: method,\n params: body\n }), {\n headers,\n timeout: this.parameters.timeout,\n adapter: this.parameters.adapter\n });\n if (res.status !== 200 || !res.data.ok) {\n throw Error('Received error: ' + JSON.stringify(res.data));\n }\n let decoded = codec.safeParse(res.data.result);\n if (decoded.success) {\n return decoded.data;\n }\n else {\n throw Error('Malformed response: ' + decoded.error.format()._errors.join(', '));\n }\n }\n}\nexports.HttpApi = HttpApi;\nfunction serializeStack(src) {\n let stack = [];\n for (let s of src) {\n if (s.type === 'int') {\n stack.push(['num', s.value.toString()]);\n }\n else if (s.type === 'cell') {\n stack.push(['tvm.Cell', s.cell.toBoc().toString('base64')]);\n }\n else if (s.type === 'slice') {\n stack.push(['tvm.Slice', s.cell.toBoc().toString('base64')]);\n }\n else if (s.type === 'builder') {\n stack.push(['tvm.Builder', s.cell.toBoc().toString('base64')]);\n }\n else {\n throw Error('Unsupported stack item type: ' + s.type);\n }\n }\n return stack;\n}\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TonClient = void 0;\nconst HttpApi_1 = require(\"./api/HttpApi\");\nconst core_1 = require(\"@ton/core\");\nclass TonClient {\n constructor(parameters) {\n this.parameters = {\n endpoint: parameters.endpoint\n };\n this.api = new HttpApi_1.HttpApi(this.parameters.endpoint, {\n timeout: parameters.timeout,\n apiKey: parameters.apiKey,\n adapter: parameters.httpAdapter\n });\n }\n /**\n * Get Address Balance\n * @param address address for balance check\n * @returns balance\n */\n async getBalance(address) {\n return (await this.getContractState(address)).balance;\n }\n /**\n * Invoke get method\n * @param address contract address\n * @param name name of method\n * @param params optional parameters\n * @returns stack and gas_used field\n */\n async runMethod(address, name, stack = []) {\n let res = await this.api.callGetMethod(address, name, stack);\n if (res.exit_code !== 0) {\n throw Error('Unable to execute get method. Got exit_code: ' + res.exit_code);\n }\n return { gas_used: res.gas_used, stack: parseStack(res.stack) };\n }\n /**\n * Invoke get method\n * @param address contract address\n * @param name name of method\n * @param params optional parameters\n * @returns stack and gas_used field\n * @deprecated use runMethod instead\n */\n async callGetMethod(address, name, stack = []) {\n return this.runMethod(address, name, stack);\n }\n /**\n * Invoke get method that returns error code instead of throwing error\n * @param address contract address\n * @param name name of method\n * @param params optional parameters\n * @returns stack and gas_used field\n */\n async runMethodWithError(address, name, params = []) {\n let res = await this.api.callGetMethod(address, name, params);\n return { gas_used: res.gas_used, stack: parseStack(res.stack), exit_code: res.exit_code };\n }\n /**\n * Invoke get method that returns error code instead of throwing error\n * @param address contract address\n * @param name name of method\n * @param params optional parameters\n * @returns stack and gas_used field\n * @deprecated use runMethodWithError instead\n */\n async callGetMethodWithError(address, name, stack = []) {\n return this.runMethodWithError(address, name, stack);\n }\n /**\n * Get transactions\n * @param address address\n */\n async getTransactions(address, opts) {\n // Fetch transactions\n let tx = await this.api.getTransactions(address, opts);\n let res = [];\n for (let r of tx) {\n res.push((0, core_1.loadTransaction)(core_1.Cell.fromBoc(Buffer.from(r.data, 'base64'))[0].beginParse()));\n }\n return res;\n }\n /**\n * Get transaction by it's id\n * @param address address\n * @param lt logical time\n * @param hash transaction hash\n * @returns transaction or null if not exist\n */\n async getTransaction(address, lt, hash) {\n let res = await this.api.getTransaction(address, lt, hash);\n if (res) {\n return (0, core_1.loadTransaction)(core_1.Cell.fromBoc(Buffer.from(res.data, 'base64'))[0].beginParse());\n }\n else {\n return null;\n }\n }\n /**\n * Locate outcoming transaction of destination address by incoming message\n * @param source message source address\n * @param destination message destination address\n * @param created_lt message's created lt\n * @returns transaction\n */\n async tryLocateResultTx(source, destination, created_lt) {\n let res = await this.api.tryLocateResultTx(source, destination, created_lt);\n return (0, core_1.loadTransaction)(core_1.Cell.fromBase64(res.data).beginParse());\n }\n /**\n * Locate incoming transaction of source address by outcoming message\n * @param source message source address\n * @param destination message destination address\n * @param created_lt message's created lt\n * @returns transaction\n */\n async tryLocateSourceTx(source, destination, created_lt) {\n let res = await this.api.tryLocateSourceTx(source, destination, created_lt);\n return (0, core_1.loadTransaction)(core_1.Cell.fromBase64(res.data).beginParse());\n }\n /**\n * Fetch latest masterchain info\n * @returns masterchain info\n */\n async getMasterchainInfo() {\n let r = await this.api.getMasterchainInfo();\n return {\n workchain: r.init.workchain,\n shard: r.last.shard,\n initSeqno: r.init.seqno,\n latestSeqno: r.last.seqno\n };\n }\n /**\n * Fetch latest workchain shards\n * @param seqno masterchain seqno\n */\n async getWorkchainShards(seqno) {\n let r = await this.api.getShards(seqno);\n return r.map((m) => ({\n workchain: m.workchain,\n shard: m.shard,\n seqno: m.seqno\n }));\n }\n /**\n * Fetch transactions inf shards\n * @param workchain\n * @param seqno\n * @param shard\n */\n async getShardTransactions(workchain, seqno, shard) {\n let tx = await this.api.getBlockTransactions(workchain, seqno, shard);\n if (tx.incomplete) {\n throw Error('Unsupported');\n }\n return tx.transactions.map((v) => ({\n account: core_1.Address.parseRaw(v.account),\n lt: v.lt,\n hash: v.hash\n }));\n }\n /**\n * Send message to a network\n * @param src source message\n */\n async sendMessage(src) {\n const boc = (0, core_1.beginCell)()\n .store((0, core_1.storeMessage)(src))\n .endCell()\n .toBoc();\n await this.api.sendBoc(boc);\n }\n /**\n * Send file to a network\n * @param src source file\n */\n async sendFile(src) {\n await this.api.sendBoc(src);\n }\n /**\n * Estimate fees for external message\n * @param address target address\n * @returns\n */\n async estimateExternalMessageFee(address, args) {\n return await this.api.estimateFee(address, { body: args.body, initCode: args.initCode, initData: args.initData, ignoreSignature: args.ignoreSignature });\n }\n /**\n * Send external message to contract\n * @param contract contract to send message\n * @param src message body\n */\n async sendExternalMessage(contract, src) {\n if (await this.isContractDeployed(contract.address) || !contract.init) {\n const message = (0, core_1.external)({\n to: contract.address,\n body: src\n });\n await this.sendMessage(message);\n }\n else {\n const message = (0, core_1.external)({\n to: contract.address,\n init: contract.init,\n body: src\n });\n await this.sendMessage(message);\n }\n }\n /**\n * Check if contract is deployed\n * @param address addres to check\n * @returns true if contract is in active state\n */\n async isContractDeployed(address) {\n return (await this.getContractState(address)).state === 'active';\n }\n /**\n * Resolves contract state\n * @param address contract address\n */\n async getContractState(address) {\n let info = await this.api.getAddressInformation(address);\n let balance = BigInt(info.balance);\n let state = info.state;\n return {\n balance,\n extra_currencies: info.extra_currencies,\n state,\n code: info.code !== '' ? Buffer.from(info.code, 'base64') : null,\n data: info.data !== '' ? Buffer.from(info.data, 'base64') : null,\n lastTransaction: info.last_transaction_id.lt !== '0' ? {\n lt: info.last_transaction_id.lt,\n hash: info.last_transaction_id.hash,\n } : null,\n blockId: {\n workchain: info.block_id.workchain,\n shard: info.block_id.shard,\n seqno: info.block_id.seqno\n },\n timestampt: info.sync_utime\n };\n }\n /**\n * Open contract\n * @param src source contract\n * @returns contract\n */\n open(src) {\n return (0, core_1.openContract)(src, (args) => createProvider(this, args.address, args.init));\n }\n /**\n * Create a provider\n * @param address address\n * @param init optional init\n * @returns provider\n */\n provider(address, init) {\n return createProvider(this, address, init ?? null);\n }\n}\nexports.TonClient = TonClient;\nfunction parseStackEntry(x) {\n const typeName = x['@type'];\n switch (typeName) {\n case 'tvm.list':\n case 'tvm.tuple':\n return x.elements.map(parseStackEntry);\n case 'tvm.cell':\n return core_1.Cell.fromBoc(Buffer.from(x.bytes, 'base64'))[0];\n case 'tvm.slice':\n return core_1.Cell.fromBoc(Buffer.from(x.bytes, 'base64'))[0];\n case 'tvm.stackEntryCell':\n return parseStackEntry(x.cell);\n case 'tvm.stackEntrySlice':\n return parseStackEntry(x.slice);\n case 'tvm.stackEntryTuple':\n return parseStackEntry(x.tuple);\n case 'tvm.stackEntryList':\n return parseStackEntry(x.list);\n case 'tvm.stackEntryNumber':\n return parseStackEntry(x.number);\n case 'tvm.numberDecimal':\n return BigInt(x.number);\n default:\n throw Error('Unsupported item type: ' + typeName);\n }\n}\nfunction parseStackItem(s) {\n if (s[0] === 'num') {\n let val = s[1];\n if (val.startsWith('-')) {\n return { type: 'int', value: -BigInt(val.slice(1)) };\n }\n else {\n return { type: 'int', value: BigInt(val) };\n }\n }\n else if (s[0] === 'null') {\n return { type: 'null' };\n }\n else if (s[0] === 'cell') {\n return { type: 'cell', cell: core_1.Cell.fromBoc(Buffer.from(s[1].bytes, 'base64'))[0] };\n }\n else if (s[0] === 'slice') {\n return { type: 'slice', cell: core_1.Cell.fromBoc(Buffer.from(s[1].bytes, 'base64'))[0] };\n }\n else if (s[0] === 'builder') {\n return { type: 'builder', cell: core_1.Cell.fromBoc(Buffer.from(s[1].bytes, 'base64'))[0] };\n }\n else if (s[0] === 'tuple' || s[0] === 'list') {\n if (s[1].elements.length === 0) {\n return { type: 'null' };\n }\n return { type: 'tuple', items: s[1].elements.map(parseStackEntry) };\n }\n else {\n throw Error('Unsupported stack item type: ' + s[0]);\n }\n}\nfunction parseStack(src) {\n let stack = [];\n for (let s of src) {\n stack.push(parseStackItem(s));\n }\n return new core_1.TupleReader(stack);\n}\nfunction createProvider(client, address, init) {\n return {\n async getState() {\n let state = await client.getContractState(address);\n let balance = state.balance;\n let last = state.lastTransaction ? { lt: BigInt(state.lastTransaction.lt), hash: Buffer.from(state.lastTransaction.hash, 'base64') } : null;\n let ecMap = null;\n let storage;\n if (state.state === 'active') {\n storage = {\n type: 'active',\n code: state.code ? state.code : null,\n data: state.data ? state.data : null,\n };\n }\n else if (state.state === 'uninitialized') {\n storage = {\n type: 'uninit',\n };\n }\n else if (state.state === 'frozen') {\n storage = {\n type: 'frozen',\n stateHash: Buffer.alloc(0),\n };\n }\n else {\n throw Error('Unsupported state');\n }\n if (state.extra_currencies && state.extra_currencies.length > 0) {\n ecMap = {};\n for (let ec of state.extra_currencies) {\n ecMap[ec.id] = BigInt(ec.amount);\n }\n }\n return {\n balance,\n extracurrency: ecMap,\n last,\n state: storage,\n };\n },\n async get(name, args) {\n if (typeof name !== 'string') {\n throw new Error('Method name must be a string for TonClient provider');\n }\n let method = await client.runMethod(address, name, args);\n return { stack: method.stack };\n },\n async external(message) {\n //\n // Resolve init\n //\n let neededInit = null;\n if (init && !await client.isContractDeployed(address)) {\n neededInit = init;\n }\n //\n // Send package\n //\n const ext = (0, core_1.external)({\n to: address,\n init: neededInit,\n body: message\n });\n let boc = (0, core_1.beginCell)()\n .store((0, core_1.storeMessage)(ext))\n .endCell()\n .toBoc();\n await client.sendFile(boc);\n },\n async internal(via, message) {\n // Resolve init\n let neededInit = null;\n if (init && (!await client.isContractDeployed(address))) {\n neededInit = init;\n }\n // Resolve bounce\n let bounce = true;\n if (message.bounce !== null && message.bounce !== undefined) {\n bounce = message.bounce;\n }\n // Resolve value\n let value;\n if (typeof message.value === 'string') {\n value = (0, core_1.toNano)(message.value);\n }\n else {\n value = message.value;\n }\n // Resolve body\n let body = null;\n if (typeof message.body === 'string') {\n body = (0, core_1.comment)(message.body);\n }\n else if (message.body) {\n body = message.body;\n }\n // Send internal message\n await via.send({\n to: address,\n value,\n bounce,\n sendMode: message.sendMode,\n extracurrency: message.extracurrency,\n init: neededInit,\n body\n });\n },\n open(contract) {\n return (0, core_1.openContract)(contract, (args) => createProvider(client, args.address, args.init ?? null));\n },\n getTransactions(address, lt, hash, limit) {\n return client.getTransactions(address, { limit: limit ?? 100, lt: lt.toString(), hash: hash.toString('base64'), inclusive: true });\n }\n };\n}\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUrlSafe = toUrlSafe;\nfunction toUrlSafe(src) {\n while (src.indexOf('/') >= 0) {\n src = src.replace('/', '_');\n }\n while (src.indexOf('+') >= 0) {\n src = src.replace('+', '-');\n }\n while (src.indexOf('=') >= 0) {\n src = src.replace('=', '');\n }\n return src;\n}\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\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\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\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\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar _TonClient4_endpoint, _TonClient4_timeout, _TonClient4_adapter, _TonClient4_axios;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TonClient4 = void 0;\nconst axios_1 = __importDefault(require(\"axios\"));\nconst core_1 = require(\"@ton/core\");\nconst toUrlSafe_1 = require(\"../utils/toUrlSafe\");\nconst zod_1 = require(\"zod\");\nclass TonClient4 {\n constructor(args) {\n _TonClient4_endpoint.set(this, void 0);\n _TonClient4_timeout.set(this, void 0);\n _TonClient4_adapter.set(this, void 0);\n _TonClient4_axios.set(this, void 0);\n __classPrivateFieldSet(this, _TonClient4_axios, axios_1.default.create(), \"f\");\n __classPrivateFieldSet(this, _TonClient4_endpoint, args.endpoint, \"f\");\n __classPrivateFieldSet(this, _TonClient4_timeout, args.timeout || 5000, \"f\");\n __classPrivateFieldSet(this, _TonClient4_adapter, args.httpAdapter, \"f\");\n if (args.requestInterceptor) {\n __classPrivateFieldGet(this, _TonClient4_axios, \"f\").interceptors.request.use(args.requestInterceptor);\n }\n }\n /**\n * Get Last Block\n * @returns last block info\n */\n async getLastBlock() {\n let res = await __classPrivateFieldGet(this, _TonClient4_axios, \"f\").get(__classPrivateFieldGet(this, _TonClient4_endpoint, \"f\") + '/block/latest', { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, \"f\"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, \"f\") });\n let lastBlock = lastBlockCodec.safeParse(res.data);\n if (!lastBlock.success) {\n throw Error('Mailformed response: ' + lastBlock.error.format()._errors.join(', '));\n }\n return lastBlock.data;\n }\n /**\n * Get block info\n * @param seqno block sequence number\n * @returns block info\n */\n async getBlock(seqno) {\n let res = await __classPrivateFieldGet(this, _TonClient4_axios, \"f\").get(__classPrivateFieldGet(this, _TonClient4_endpoint, \"f\") + '/block/' + seqno, { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, \"f\"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, \"f\") });\n let block = blockCodec.safeParse(res.data);\n if (!block.success) {\n throw Error('Mailformed response');\n }\n if (!block.data.exist) {\n throw Error('Block is out of scope');\n }\n return block.data.block;\n }\n /**\n * Get block info by unix timestamp\n * @param ts unix timestamp\n * @returns block info\n */\n async getBlockByUtime(ts) {\n let res = await __classPrivateFieldGet(this, _TonClient4_axios, \"f\").get(__classPrivateFieldGet(this, _TonClient4_endpoint, \"f\") + '/block/utime/' + ts, { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, \"f\"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, \"f\") });\n let block = blockCodec.safeParse(res.data);\n if (!block.success) {\n throw Error('Mailformed response');\n }\n if (!block.data.exist) {\n throw Error('Block is out of scope');\n }\n return block.data.block;\n }\n /**\n * Get block info by unix timestamp\n * @param seqno block sequence number\n * @param address account address\n * @returns account info\n */\n async getAccount(seqno, address) {\n let res = await __classPrivateFieldGet(this, _TonClient4_axios, \"f\").get(__classPrivateFieldGet(this, _TonClient4_endpoint, \"f\") + '/block/' + seqno + '/' + address.toString({ urlSafe: true }), { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, \"f\"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, \"f\") });\n let account = accountCodec.safeParse(res.data);\n if (!account.success) {\n throw Error('Mailformed response');\n }\n return account.data;\n }\n /**\n * Get account lite info (without code and data)\n * @param seqno block sequence number\n * @param address account address\n * @returns account lite info\n */\n async getAccountLite(seqno, address) {\n let res = await __classPrivateFieldGet(this, _TonClient4_axios, \"f\").get(__classPrivateFieldGet(this, _TonClient4_endpoint, \"f\") + '/block/' + seqno + '/' + address.toString({ urlSafe: true }) + '/lite', { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, \"f\"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, \"f\") });\n let account = accountLiteCodec.safeParse(res.data);\n if (!account.success) {\n throw Error('Mailformed response');\n }\n return account.data;\n }\n /**\n * Check if contract is deployed\n * @param address addres to check\n * @returns true if contract is in active state\n */\n async isContractDeployed(seqno, address) {\n let account = await this.getAccountLite(seqno, address);\n return account.account.state.type === 'active';\n }\n /**\n * Check if account was updated since\n * @param seqno block sequence number\n * @param address account address\n * @param lt account last transaction lt\n * @returns account change info\n */\n async isAccountChanged(seqno, address, lt) {\n let res = await __classPrivateFieldGet(this, _TonClient4_axios, \"f\").get(__classPrivateFieldGet(this, _TonClient4_endpoint, \"f\") + '/block/' + seqno + '/' + address.toString({ urlSafe: true }) + '/changed/' + lt.toString(10), { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, \"f\"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, \"f\") });\n let changed = changedCodec.safeParse(res.data);\n if (!changed.success) {\n throw Error('Mailformed response');\n }\n return changed.data;\n }\n /**\n * Load unparsed account transactions\n * @param address address\n * @param lt last transaction lt\n * @param hash last transaction hash\n * @returns unparsed transactions\n */\n async getAccountTransactions(address, lt, hash) {\n let res = await __classPrivateFieldGet(this, _TonClient4_axios, \"f\").get(__classPrivateFieldGet(this, _TonClient4_endpoint, \"f\") + '/account/' + address.toString({ urlSafe: true }) + '/tx/' + lt.toString(10) + '/' + (0, toUrlSafe_1.toUrlSafe)(hash.toString('base64')), { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, \"f\"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, \"f\") });\n let transactions = transactionsCodec.safeParse(res.data);\n if (!transactions.success) {\n throw Error('Mailformed response');\n }\n let data = transactions.data;\n let tx = [];\n let cells = core_1.Cell.fromBoc(Buffer.from(data.boc, 'base64'));\n for (let i = 0; i < data.blocks.length; i++) {\n tx.push({\n block: data.blocks[i],\n tx: (0, core_1.loadTransaction)(cells[i].beginParse())\n });\n }\n return tx;\n }\n /**\n * Load parsed account transactions\n * @param address address\n * @param lt last transaction lt\n * @param hash last transaction hash\n * @param count number of transactions to load\n * @returns parsed transactions\n */\n async getAccountTransactionsParsed(address, lt, hash, count = 20) {\n let res = await __classPrivateFieldGet(this, _TonClient4_axios, \"f\").get(__classPrivateFieldGet(this, _TonClient4_endpoint, \"f\") + '/account/' + address.toString({ urlSafe: true }) + '/tx/parsed/' + lt.toString(10) + '/' + (0, toUrlSafe_1.toUrlSafe)(hash.toString('base64')), {\n adapter: __classPrivateFieldGet(this, _TonClient4_adapter, \"f\"),\n timeout: __classPrivateFieldGet(this, _TonClient4_timeout, \"f\"),\n params: {\n count\n }\n });\n let parsedTransactionsRes = parsedTransactionsCodec.safeParse(res.data);\n if (!parsedTransactionsRes.success) {\n throw Error('Mailformed response');\n }\n return parsedTransactionsRes.data;\n }\n /**\n * Get network config\n * @param seqno block sequence number\n * @param ids optional config ids\n * @returns network config\n */\n async getConfig(seqno, ids) {\n let tail = '';\n if (ids && ids.length > 0) {\n tail = '/' + [...ids].sort().join(',');\n }\n let res = await __classPrivateFieldGet(this, _TonClient4_axios, \"f\").get(__classPrivateFieldGet(this, _TonClient4_endpoint, \"f\") + '/block/' + seqno + '/config' + tail, { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, \"f\"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, \"f\") });\n let config = configCodec.safeParse(res.data);\n if (!config.success) {\n throw Error('Mailformed response');\n }\n return config.data;\n }\n /**\n * Execute run method\n * @param seqno block sequence number\n * @param address account address\n * @param name method name\n * @param args method arguments\n * @returns method result\n */\n async runMethod(seqno, address, name, args) {\n let tail = args && args.length > 0 ? '/' + (0, toUrlSafe_1.toUrlSafe)((0, core_1.serializeTuple)(args).toBoc({ idx: false, crc32: false }).toString('base64')) : '';\n let url = __classPrivateFieldGet(this, _TonClient4_endpoint, \"f\") + '/block/' + seqno + '/' + address.toString({ urlSafe: true }) + '/run/' + encodeURIComponent(name) + tail;\n let res = await __classPrivateFieldGet(this, _TonClient4_axios, \"f\").get(url, { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, \"f\"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, \"f\") });\n let runMethod = runMethodCodec.safeParse(res.data);\n if (!runMethod.success) {\n throw Error('Mailformed response');\n }\n let resultTuple = runMethod.data.resultRaw ? (0, core_1.parseTuple)(core_1.Cell.fromBoc(Buffer.from(runMethod.data.resultRaw, 'base64'))[0]) : [];\n return {\n exitCode: runMethod.data.exitCode,\n result: resultTuple,\n resultRaw: runMethod.data.resultRaw,\n block: runMethod.data.block,\n shardBlock: runMethod.data.shardBlock,\n reader: new core_1.TupleReader(resultTuple),\n };\n }\n /**\n * Send external message\n * @param message message boc\n * @returns message status\n */\n async sendMessage(message) {\n let res = await __classPrivateFieldGet(this, _TonClient4_axios, \"f\").post(__classPrivateFieldGet(this, _TonClient4_endpoint, \"f\") + '/send', { boc: message.toString('base64') }, { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, \"f\"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, \"f\") });\n let send = sendCodec.safeParse(res.data);\n if (!send.success) {\n throw Error('Mailformed response');\n }\n return { status: res.data.status };\n }\n /**\n * Open smart contract\n * @param contract contract\n * @returns opened contract\n */\n open(contract) {\n return (0, core_1.openContract)(contract, (args) => createProvider(this, null, args.address, args.init));\n }\n /**\n * Open smart contract\n * @param block block number\n * @param contract contract\n * @returns opened contract\n */\n openAt(block, contract) {\n return (0, core_1.openContract)(contract, (args) => createProvider(this, block, args.address, args.init));\n }\n /**\n * Create provider\n * @param address address\n * @param init optional init data\n * @returns provider\n */\n provider(address, init) {\n return createProvider(this, null, address, init ?? null);\n }\n /**\n * Create provider at specified block number\n * @param block block number\n * @param address address\n * @param init optional init data\n * @returns provider\n */\n providerAt(block, address, init) {\n return createProvider(this, block, address, init ?? null);\n }\n}\nexports.TonClient4 = TonClient4;\n_TonClient4_endpoint = new WeakMap(), _TonClient4_timeout = new WeakMap(), _TonClient4_adapter = new WeakMap(), _TonClient4_axios = new WeakMap();\nfunction createProvider(client, block, address, init) {\n return {\n async getState() {\n // Resolve block\n let sq = block;\n if (sq === null) {\n let res = await client.getLastBlock();\n sq = res.last.seqno;\n }\n // Load state\n let state = await client.getAccount(sq, address);\n // Convert state\n let last = state.account.last ? { lt: BigInt(state.account.last.lt), hash: Buffer.from(state.account.last.hash, 'base64') } : null;\n let storage;\n if (state.account.state.type === 'active') {\n storage = {\n type: 'active',\n code: state.account.state.code ? Buffer.from(state.account.state.code, 'base64') : null,\n data: state.account.state.data ? Buffer.from(state.account.state.data, 'base64') : null,\n };\n }\n else if (state.account.state.type === 'uninit') {\n storage = {\n type: 'uninit',\n };\n }\n else if (state.account.state.type === 'frozen') {\n storage = {\n type: 'frozen',\n stateHash: Buffer.from(state.account.state.stateHash, 'base64'),\n };\n }\n else {\n throw Error('Unsupported state');\n }\n let ecMap = null;\n if (state.account.balance.currencies) {\n ecMap = {};\n let currencies = state.account.balance.currencies;\n for (let [k, v] of Object.entries(currencies)) {\n ecMap[Number(k)] = BigInt(v);\n }\n }\n return {\n balance: BigInt(state.account.balance.coins),\n extracurrency: ecMap,\n last: last,\n state: storage\n };\n },\n async get(name, args) {\n if (typeof name !== 'string') {\n throw new Error('Method name must be a string for TonClient4 provider');\n }\n let sq = block;\n if (sq === null) {\n let res = await client.getLastBlock();\n sq = res.last.seqno;\n }\n let method = await client.runMethod(sq, address, name, args);\n if (method.exitCode !== 0 && method.exitCode !== 1) {\n throw Error('Exit code: ' + method.exitCode);\n }\n return {\n stack: new core_1.TupleReader(method.result),\n };\n },\n async external(message) {\n // Resolve last\n let last = await client.getLastBlock();\n // Resolve init\n let neededInit = null;\n if (init && (await client.getAccountLite(last.last.seqno, address)).account.state.type !== 'active') {\n neededInit = init;\n }\n // Send with state init\n const ext = (0, core_1.external)({\n to: address,\n init: neededInit,\n body: message\n });\n let pkg = (0, core_1.beginCell)()\n .store((0, core_1.storeMessage)(ext))\n .endCell()\n .toBoc();\n await client.sendMessage(pkg);\n },\n async internal(via, message) {\n // Resolve last\n let last = await client.getLastBlock();\n // Resolve init\n let neededInit = null;\n if (init && (await client.getAccountLite(last.last.seqno, address)).account.state.type !== 'active') {\n neededInit = init;\n }\n // Resolve bounce\n let bounce = true;\n if (message.bounce !== null && message.bounce !== undefined) {\n bounce = message.bounce;\n }\n // Resolve value\n let value;\n if (typeof message.value === 'string') {\n value = (0, core_1.toNano)(message.value);\n }\n else {\n value = message.value;\n }\n // Resolve body\n let body = null;\n if (typeof message.body === 'string') {\n body = (0, core_1.comment)(message.body);\n }\n else if (message.body) {\n body = message.body;\n }\n // Send internal message\n await via.send({\n to: address,\n value,\n extracurrency: message.extracurrency,\n bounce,\n sendMode: message.sendMode,\n init: neededInit,\n body\n });\n },\n open(contract) {\n return (0, core_1.openContract)(contract, (args) => createProvider(client, block, args.address, args.init ?? null));\n },\n async getTransactions(address, lt, hash, limit) {\n // Resolve last\n const useLimit = typeof limit === 'number';\n if (useLimit && limit <= 0) {\n return [];\n }\n // Load transactions\n let transactions = [];\n do {\n const txs = await client.getAccountTransactions(address, lt, hash);\n const firstTx = txs[0].tx;\n const [firstLt, firstHash] = [firstTx.lt, firstTx.hash()];\n const needSkipFirst = transactions.length > 0 && firstLt === lt && firstHash.equals(hash);\n if (needSkipFirst) {\n txs.shift();\n }\n if (txs.length === 0) {\n break;\n }\n const lastTx = txs[txs.length - 1].tx;\n const [lastLt, lastHash] = [lastTx.lt, lastTx.hash()];\n if (lastLt === lt && lastHash.equals(hash)) {\n break;\n }\n transactions.push(...txs.map(tx => tx.tx));\n lt = lastLt;\n hash = lastHash;\n } while (useLimit && transactions.length < limit);\n // Apply limit\n if (useLimit) {\n transactions = transactions.slice(0, limit);\n }\n // Return transactions\n return transactions;\n }\n };\n}\n//\n// Codecs\n//\nconst lastBlockCodec = zod_1.z.object({\n last: zod_1.z.object({\n seqno: zod_1.z.number(),\n shard: zod_1.z.string(),\n workchain: zod_1.z.number(),\n fileHash: zod_1.z.string(),\n rootHash: zod_1.z.string()\n }),\n init: zod_1.z.object({\n fileHash: zod_1.z.string(),\n rootHash: zod_1.z.string()\n }),\n stateRootHash: zod_1.z.string(),\n now: zod_1.z.number()\n});\nconst blockCodec = zod_1.z.union([zod_1.z.object({\n exist: zod_1.z.literal(false)\n }), zod_1.z.object({\n exist: zod_1.z.literal(true),\n block: zod_1.z.object({\n shards: zod_1.z.array(zod_1.z.object({\n workchain: zod_1.z.number(),\n seqno: zod_1.z.number(),\n shard: zod_1.z.string(),\n rootHash: zod_1.z.string(),\n fileHash: zod_1.z.string(),\n transactions: zod_1.z.array(zod_1.z.object({\n account: zod_1.z.string(),\n hash: zod_1.z.string(),\n lt: zod_1.z.string()\n }))\n }))\n })\n })]);\n// {\"lastPaid\":1653099243,\"duePayment\":null,\"used\":{\"bits\":119,\"cells\":1,\"publicCells\":0}}\nconst storageStatCodec = zod_1.z.object({\n lastPaid: zod_1.z.number(),\n duePayment: zod_1.z.union([zod_1.z.null(), zod_1.z.string()]),\n used: zod_1.z.object({\n bits: zod_1.z.number(),\n cells: zod_1.z.number(),\n publicCells: zod_1.z.number()\n })\n});\nconst accountCodec = zod_1.z.object({\n account: zod_1.z.object({\n state: zod_1.z.union([\n zod_1.z.object({ type: zod_1.z.literal('uninit') }),\n zod_1.z.object({ type: zod_1.z.literal('active'), code: zod_1.z.union([zod_1.z.string(), zod_1.z.null()]), data: zod_1.z.union([zod_1.z.string(), zod_1.z.null()]) }),\n zod_1.z.object({ type: zod_1.z.literal('frozen'), stateHash: zod_1.z.string() })\n ]),\n balance: zod_1.z.object({\n coins: zod_1.z.string(),\n currencies: zod_1.z.record(zod_1.z.string(), zod_1.z.string())\n }),\n last: zod_1.z.union([\n zod_1.z.null(),\n zod_1.z.object({\n lt: zod_1.z.string(),\n hash: zod_1.z.string()\n })\n ]),\n storageStat: zod_1.z.union([zod_1.z.null(), storageStatCodec])\n }),\n block: zod_1.z.object({\n workchain: zod_1.z.number(),\n seqno: zod_1.z.number(),\n shard: zod_1.z.string(),\n rootHash: zod_1.z.string(),\n fileHash: zod_1.z.string()\n })\n});\nconst accountLiteCodec = zod_1.z.object({\n account: zod_1.z.object({\n state: zod_1.z.union([\n zod_1.z.object({ type: zod_1.z.literal('uninit') }),\n zod_1.z.object({ type: zod_1.z.literal('active'), codeHash: zod_1.z.string(), dataHash: zod_1.z.string() }),\n zod_1.z.object({ type: zod_1.z.literal('frozen'), stateHash: zod_1.z.string() })\n ]),\n balance: zod_1.z.object({\n coins: zod_1.z.string(),\n currencies: zod_1.z.record(zod_1.z.string(), zod_1.z.string())\n }),\n last: zod_1.z.union([\n zod_1.z.null(),\n zod_1.z.object({\n lt: zod_1.z.string(),\n hash: zod_1.z.string()\n })\n ]),\n storageStat: zod_1.z.union([zod_1.z.null(), storageStatCodec])\n })\n});\nconst changedCodec = zod_1.z.object({\n changed: zod_1.z.boolean(),\n block: zod_1.z.object({\n workchain: zod_1.z.number(),\n seqno: zod_1.z.number(),\n shard: zod_1.z.string(),\n rootHash: zod_1.z.string(),\n fileHash: zod_1.z.string()\n })\n});\nconst runMethodCodec = zod_1.z.object({\n exitCode: zod_1.z.number(),\n resultRaw: zod_1.z.union([zod_1.z.string(), zod_1.z.null()]),\n block: zod_1.z.object({\n workchain: zod_1.z.number(),\n seqno: zod_1.z.number(),\n shard: zod_1.z.string(),\n rootHash: zod_1.z.string(),\n fileHash: zod_1.z.string()\n }),\n shardBlock: zod_1.z.object({\n workchain: zod_1.z.number(),\n seqno: zod_1.z.number(),\n shard: zod_1.z.string(),\n rootHash: zod_1.z.string(),\n fileHash: zod_1.z.string()\n })\n});\nconst configCodec = zod_1.z.object({\n config: zod_1.z.object({\n cell: zod_1.z.string(),\n address: zod_1.z.string(),\n globalBalance: zod_1.z.object({\n coins: zod_1.z.string()\n })\n })\n});\nconst sendCodec = zod_1.z.object({\n status: zod_1.z.number()\n});\nconst blocksCodec = zod_1.z.array(zod_1.z.object({\n workchain: zod_1.z.number(),\n seqno: zod_1.z.number(),\n shard: zod_1.z.string(),\n rootHash: zod_1.z.string(),\n fileHash: zod_1.z.string()\n}));\nconst transactionsCodec = zod_1.z.object({\n blocks: blocksCodec,\n boc: zod_1.z.string()\n});\nconst parsedAddressExternalCodec = zod_1.z.object({\n bits: zod_1.z.number(),\n data: zod_1.z.string()\n});\nconst parsedMessageInfoCodec = zod_1.z.union([\n zod_1.z.object({\n type: zod_1.z.literal('internal'),\n value: zod_1.z.string(),\n dest: zod_1.z.string(),\n src: zod_1.z.string(),\n bounced: zod_1.z.boolean(),\n bounce: zod_1.z.boolean(),\n ihrDisabled: zod_1.z.boolean(),\n createdAt: zod_1.z.number(),\n createdLt: zod_1.z.string(),\n fwdFee: zod_1.z.string(),\n ihrFee: zod_1.z.string()\n }),\n zod_1.z.object({\n type: zod_1.z.literal('external-in'),\n dest: zod_1.z.string(),\n src: zod_1.z.union([parsedAddressExternalCodec, zod_1.z.null()]),\n importFee: zod_1.z.string()\n }),\n zod_1.z.object({\n type: zod_1.z.literal('external-out'),\n dest: zod_1.z.union([parsedAddressExternalCodec, zod_1.z.null()])\n })\n]);\nconst parsedStateInitCodec = zod_1.z.object({\n splitDepth: zod_1.z.union([zod_1.z.number(), zod_1.z.null()]),\n code: zod_1.z.union([zod_1.z.string(), zod_1.z.null()]),\n data: zod_1.z.union([zod_1.z.string(), zod_1.z.null()]),\n special: zod_1.z.union([zod_1.z.object({ tick: zod_1.z.boolean(), tock: zod_1.z.boolean() }), zod_1.z.null()])\n});\nconst parsedMessageCodec = zod_1.z.object({\n body: zod_1.z.string(),\n info: parsedMessageInfoCodec,\n init: zod_1.z.union([parsedStateInitCodec, zod_1.z.null()])\n});\nconst accountStatusCodec = zod_1.z.union([zod_1.z.literal('uninitialized'), zod_1.z.literal('frozen'), zod_1.z.literal('active'), zod_1.z.literal('non-existing')]);\nconst txBodyCodec = zod_1.z.union([\n zod_1.z.object({ type: zod_1.z.literal('comment'), comment: zod_1.z.string() }),\n zod_1.z.object({ type: zod_1.z.literal('payload'), cell: zod_1.z.string() }),\n]);\nconst parsedOperationItemCodec = zod_1.z.union([\n zod_1.z.object({ kind: zod_1.z.literal('ton'), amount: zod_1.z.string() }),\n zod_1.z.object({ kind: zod_1.z.literal('token'), amount: zod_1.z.string() })\n]);\nconst supportedMessageTypeCodec = zod_1.z.union([\n zod_1.z.literal('jetton::excesses'),\n zod_1.z.literal('jetton::transfer'),\n zod_1.z.literal('jetton::transfer_notification'),\n zod_1.z.literal('deposit'),\n zod_1.z.literal('deposit::ok'),\n zod_1.z.literal('withdraw'),\n zod_1.z.literal('withdraw::all'),\n zod_1.z.literal('withdraw::delayed'),\n zod_1.z.literal('withdraw::ok'),\n zod_1.z.literal('airdrop')\n]);\nconst opCodec = zod_1.z.object({\n type: supportedMessageTypeCodec,\n options: zod_1.z.optional(zod_1.z.record(zod_1.z.string()))\n});\nconst parsedOperationCodec = zod_1.z.object({\n address: zod_1.z.string(),\n comment: zod_1.z.optional(zod_1.z.string()),\n items: zod_1.z.array(parsedOperationItemCodec),\n op: zod_1.z.optional(opCodec)\n});\nconst parsedTransactionCodec = zod_1.z.object({\n address: zod_1.z.string(),\n lt: zod_1.z.string(),\n hash: zod_1.z.string(),\n prevTransaction: zod_1.z.object({\n lt: zod_1.z.string(),\n hash: zod_1.z.string()\n }),\n time: zod_1.z.number(),\n outMessagesCount: zod_1.z.number(),\n oldStatus: accountStatusCodec,\n newStatus: accountStatusCodec,\n fees: zod_1.z.string(),\n update: zod_1.z.object({\n oldHash: zod_1.z.string(),\n newHash: zod_1.z.string()\n }),\n inMessage: zod_1.z.union([parsedMessageCodec, zod_1.z.null()]),\n outMessages: zod_1.z.array(parsedMessageCodec),\n parsed: zod_1.z.object({\n seqno: zod_1.z.union([zod_1.z.number(), zod_1.z.null()]),\n body: zod_1.z.union([txBodyCodec, zod_1.z.null()]),\n status: zod_1.z.union([zod_1.z.literal('success'), zod_1.z.literal('failed'), zod_1.z.literal('pending')]),\n dest: zod_1.z.union([zod_1.z.string(), zod_1.z.null()]),\n kind: zod_1.z.union([zod_1.z.literal('out'), zod_1.z.literal('in')]),\n amount: zod_1.z.string(),\n resolvedAddress: zod_1.z.string(),\n bounced: zod_1.z.boolean(),\n mentioned: zod_1.z.array(zod_1.z.string())\n }),\n operation: parsedOperationCodec\n});\nconst parsedTransactionsCodec = zod_1.z.object({\n blocks: blocksCodec,\n transactions: zod_1.z.array(parsedTransactionCodec)\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadWalletIdV5Beta = loadWalletIdV5Beta;\nexports.storeWalletIdV5Beta = storeWalletIdV5Beta;\nconst core_1 = require(\"@ton/core\");\nconst walletV5BetaVersionsSerialisation = {\n v5: 0\n};\nfunction loadWalletIdV5Beta(value) {\n const bitReader = new core_1.BitReader(new core_1.BitString(typeof value === 'bigint' ?\n Buffer.from(value.toString(16), 'hex') :\n value instanceof core_1.Slice ? value.loadBuffer(10) : value, 0, 80));\n const networkGlobalId = bitReader.loadInt(32);\n const workchain = bitReader.loadInt(8);\n const walletVersionRaw = bitReader.loadUint(8);\n const subwalletNumber = bitReader.loadUint(32);\n const walletVersion = Object.entries(walletV5BetaVersionsSerialisation).find(([_, value]) => value === walletVersionRaw)?.[0];\n if (walletVersion === undefined) {\n throw new Error(`Can't deserialize walletId: unknown wallet version ${walletVersionRaw}`);\n }\n return { networkGlobalId, workchain, walletVersion, subwalletNumber };\n}\nfunction storeWalletIdV5Beta(walletId) {\n return (builder) => {\n builder.storeInt(walletId.networkGlobalId, 32);\n builder.storeInt(walletId.workchain, 8);\n builder.storeUint(walletV5BetaVersionsSerialisation[walletId.walletVersion], 8);\n builder.storeUint(walletId.subwalletNumber, 32);\n };\n}\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletContractV5Beta = void 0;\nconst core_1 = require(\"@ton/core\");\nconst createWalletTransfer_1 = require(\"../signing/createWalletTransfer\");\nconst WalletV5BetaWalletId_1 = require(\"./WalletV5BetaWalletId\");\n/**\n * @deprecated\n * use WalletContractV5R1 instead\n */\nclass WalletContractV5Beta {\n static create(args) {\n const walletId = {\n networkGlobalId: args.walletId?.networkGlobalId ?? -239,\n workchain: args?.walletId?.workchain ?? 0,\n subwalletNumber: args?.walletId?.subwalletNumber ?? 0,\n walletVersion: args?.walletId?.walletVersion ?? 'v5'\n };\n return new WalletContractV5Beta(walletId, args.publicKey);\n }\n constructor(walletId, publicKey) {\n this.walletId = walletId;\n this.publicKey = publicKey;\n this.walletId = walletId;\n // https://github.com/tonkeeper/w5/commit/fa1b372a417a32af104fe1b949b6b31d29cee349 code with library\n let code = core_1.Cell.fromBoc(Buffer.from('te6cckEBAQEAIwAIQgLkzzsvTG1qYeoPK1RH0mZ4WyavNjfbLe7mvNGqgm80Eg3NjhE=', 'base64'))[0];\n let data = (0, core_1.beginCell)()\n .storeInt(0, 33) // Seqno\n .store((0, WalletV5BetaWalletId_1.storeWalletIdV5Beta)(this.walletId))\n .storeBuffer(this.publicKey, 32)\n .storeBit(0) // Empty plugins dict\n .endCell();\n this.init = { code, data };\n this.address = (0, core_1.contractAddress)(this.walletId.workchain, { code, data });\n }\n /**\n * Get Wallet Balance\n */\n async getBalance(provider) {\n let state = await provider.getState();\n return state.balance;\n }\n /**\n * Get Wallet Seqno\n */\n async getSeqno(provider) {\n let state = await provider.getState();\n if (state.state.type === 'active') {\n let res = await provider.get('seqno', []);\n return res.stack.readNumber();\n }\n else {\n return 0;\n }\n }\n /**\n * Get Wallet Extensions\n */\n async getExtensions(provider) {\n let state = await provider.getState();\n if (state.state.type === 'active') {\n const result = await provider.get('get_extensions', []);\n return result.stack.readCellOpt();\n }\n else {\n return null;\n }\n }\n /**\n * Get Wallet Extensions\n */\n async getExtensionsArray(provider) {\n const extensions = await this.getExtensions(provider);\n if (!extensions) {\n return [];\n }\n const dict = core_1.Dictionary.loadDirect(core_1.Dictionary.Keys.BigUint(256), core_1.Dictionary.Values.BigInt(8), extensions);\n return dict.keys().map(key => {\n const wc = dict.get(key);\n const addressHex = key ^ (wc + 1n);\n return core_1.Address.parseRaw(`${wc}:${addressHex.toString(16).padStart(64, \"0\")}`);\n });\n }\n /**\n * Get is secret-key authentication enabled\n */\n async getIsSecretKeyAuthEnabled(provider) {\n let res = await provider.get('get_is_signature_auth_allowed', []);\n const result = res.stack.readNumber();\n return result !== 0;\n }\n /**\n * Send signed transfer\n */\n async send(provider, message) {\n await provider.external(message);\n }\n /**\n * Sign and send transfer\n */\n async sendTransfer(provider, args) {\n const transfer = await this.createTransfer(args);\n await this.send(provider, transfer);\n }\n /**\n * Sign and send add extension request\n */\n async sendAddExtension(provider, args) {\n const request = await this.createAddExtension(args);\n await this.send(provider, request);\n }\n /**\n * Sign and send remove extension request\n */\n async sendRemoveExtension(provider, args) {\n const request = await this.createRemoveExtension(args);\n await this.send(provider, request);\n }\n /**\n * Sign and send actions batch\n */\n async sendActionsBatch(provider, args) {\n const request = await this.createRequest(args);\n await this.send(provider, request);\n }\n createActions(args) {\n const actions = args.messages.map(message => ({ type: 'sendMsg', mode: args.sendMode, outMsg: message }));\n return actions;\n }\n /**\n * Create signed transfer\n */\n createTransfer(args) {\n return this.createRequest({\n ...args,\n actions: this.createActions({ messages: args.messages, sendMode: args.sendMode })\n });\n }\n /**\n * Create signed add extension request\n */\n createAddExtension(args) {\n return this.createRequest({\n ...args,\n actions: [{\n type: 'addExtension',\n address: args.extensionAddress\n }]\n });\n }\n /**\n * Create signed remove extension request\n */\n createRemoveExtension(args) {\n return this.createRequest({\n ...args,\n actions: [{\n type: 'removeExtension',\n address: args.extensionAddress\n }]\n });\n }\n /**\n * Create signed request or extension auth request\n */\n createRequest(args) {\n if (args.authType === 'extension') {\n return (0, createWalletTransfer_1.createWalletTransferV5Beta)(args);\n }\n return (0, createWalletTransfer_1.createWalletTransferV5Beta)({\n ...args,\n walletId: (0, WalletV5BetaWalletId_1.storeWalletIdV5Beta)(this.walletId)\n });\n }\n /**\n * Create sender\n */\n sender(provider, secretKey) {\n return {\n send: async (args) => {\n let seqno = await this.getSeqno(provider);\n let transfer = this.createTransfer({\n seqno,\n secretKey,\n sendMode: args.sendMode ?? core_1.SendMode.PAY_GAS_SEPARATELY + core_1.SendMode.IGNORE_ERRORS,\n messages: [(0, core_1.internal)({\n to: args.to,\n value: args.value,\n extracurrency: args.extracurrency,\n init: args.init,\n body: args.body,\n bounce: args.bounce\n })]\n });\n await this.send(provider, transfer);\n }\n };\n }\n}\nexports.WalletContractV5Beta = WalletContractV5Beta;\nWalletContractV5Beta.OpCodes = {\n auth_extension: 0x6578746e,\n auth_signed_external: 0x7369676e,\n auth_signed_internal: 0x73696e74\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isOutActionExtended = isOutActionExtended;\nexports.isOutActionBasic = isOutActionBasic;\nfunction isOutActionExtended(action) {\n return (action.type === 'setIsPublicKeyEnabled' || action.type === 'addExtension' || action.type === 'removeExtension');\n}\nfunction isOutActionBasic(action) {\n return !isOutActionExtended(action);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeOutActionExtendedV5Beta = storeOutActionExtendedV5Beta;\nexports.loadOutActionV5BetaExtended = loadOutActionV5BetaExtended;\nexports.storeOutListExtendedV5Beta = storeOutListExtendedV5Beta;\nexports.loadOutListExtendedV5Beta = loadOutListExtendedV5Beta;\nconst core_1 = require(\"@ton/core\");\nconst WalletV5OutActions_1 = require(\"./WalletV5OutActions\");\nconst outActionSetIsPublicKeyEnabledTag = 0x20cbb95a;\nfunction storeOutActionSetIsPublicKeyEnabled(action) {\n return (builder) => {\n builder.storeUint(outActionSetIsPublicKeyEnabledTag, 32).storeUint(action.isEnabled ? 1 : 0, 1);\n };\n}\nconst outActionAddExtensionTag = 0x1c40db9f;\nfunction storeOutActionAddExtension(action) {\n return (builder) => {\n builder.storeUint(outActionAddExtensionTag, 32).storeAddress(action.address);\n };\n}\nconst outActionRemoveExtensionTag = 0x5eaef4a4;\nfunction storeOutActionRemoveExtension(action) {\n return (builder) => {\n builder.storeUint(outActionRemoveExtensionTag, 32).storeAddress(action.address);\n };\n}\nfunction storeOutActionExtendedV5Beta(action) {\n switch (action.type) {\n case 'setIsPublicKeyEnabled':\n return storeOutActionSetIsPublicKeyEnabled(action);\n case 'addExtension':\n return storeOutActionAddExtension(action);\n case 'removeExtension':\n return storeOutActionRemoveExtension(action);\n default:\n throw new Error('Unknown action type' + action?.type);\n }\n}\nfunction loadOutActionV5BetaExtended(slice) {\n const tag = slice.loadUint(32);\n switch (tag) {\n case outActionSetIsPublicKeyEnabledTag:\n return {\n type: 'setIsPublicKeyEnabled',\n isEnabled: !!slice.loadUint(1)\n };\n case outActionAddExtensionTag:\n return {\n type: 'addExtension',\n address: slice.loadAddress()\n };\n case outActionRemoveExtensionTag:\n return {\n type: 'removeExtension',\n address: slice.loadAddress()\n };\n default:\n throw new Error(`Unknown extended out action tag 0x${tag.toString(16)}`);\n }\n}\nfunction storeOutListExtendedV5Beta(actions) {\n const [action, ...rest] = actions;\n if (!action || !(0, WalletV5OutActions_1.isOutActionExtended)(action)) {\n if (actions.some(WalletV5OutActions_1.isOutActionExtended)) {\n throw new Error(\"Can't serialize actions list: all extended actions must be placed before out actions\");\n }\n return (builder) => {\n builder\n .storeUint(0, 1)\n .storeRef((0, core_1.beginCell)().store((0, core_1.storeOutList)(actions)).endCell());\n };\n }\n return (builder) => {\n builder.storeUint(1, 1)\n .store(storeOutActionExtendedV5Beta(action))\n .storeRef((0, core_1.beginCell)().store(storeOutListExtendedV5Beta(rest)).endCell());\n };\n}\nfunction loadOutListExtendedV5Beta(slice) {\n const actions = [];\n while (slice.loadUint(1)) {\n const action = loadOutActionV5BetaExtended(slice);\n actions.push(action);\n slice = slice.loadRef().beginParse();\n }\n const commonAction = (0, core_1.loadOutList)(slice.loadRef().beginParse());\n if (commonAction.some(i => i.type === 'setCode')) {\n throw new Error(\"Can't deserialize actions list: only sendMsg actions are allowed for wallet v5\");\n }\n return actions.concat(commonAction);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.signPayload = signPayload;\nconst crypto_1 = require(\"@ton/crypto\");\nfunction signPayload(args, signingMessage, packMessage) {\n if ('secretKey' in args) {\n /**\n * Client provider an secretKey to sign transaction.\n */\n return packMessage((0, crypto_1.sign)(signingMessage.endCell().hash(), args.secretKey), signingMessage);\n }\n else {\n /**\n * Client use external storage for secretKey.\n * In this case lib could create a request to external resource to sign transaction.\n */\n return args.signer(signingMessage.endCell())\n .then(signature => packMessage(signature, signingMessage));\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isWalletIdV5R1ClientContext = isWalletIdV5R1ClientContext;\nexports.loadWalletIdV5R1 = loadWalletIdV5R1;\nexports.storeWalletIdV5R1 = storeWalletIdV5R1;\nconst core_1 = require(\"@ton/core\");\nfunction isWalletIdV5R1ClientContext(context) {\n return typeof context !== 'number';\n}\nconst walletV5R1VersionsSerialisation = {\n v5r1: 0\n};\n/**\n * @param value serialized wallet id\n * @param networkGlobalId -239 is mainnet, -3 is testnet\n */\nfunction loadWalletIdV5R1(value, networkGlobalId) {\n const val = new core_1.BitReader(new core_1.BitString(typeof value === 'bigint' ?\n Buffer.from(value.toString(16), 'hex') :\n value instanceof core_1.Slice ? value.loadBuffer(4) : value, 0, 32)).loadInt(32);\n const context = BigInt(val) ^ BigInt(networkGlobalId);\n const bitReader = (0, core_1.beginCell)().storeInt(context, 32).endCell().beginParse();\n const isClientContext = bitReader.loadUint(1);\n if (isClientContext) {\n const workchain = bitReader.loadInt(8);\n const walletVersionRaw = bitReader.loadUint(8);\n const subwalletNumber = bitReader.loadUint(15);\n const walletVersion = Object.entries(walletV5R1VersionsSerialisation).find(([_, value]) => value === walletVersionRaw)?.[0];\n if (walletVersion === undefined) {\n throw new Error(`Can't deserialize walletId: unknown wallet version ${walletVersionRaw}`);\n }\n return {\n networkGlobalId,\n context: {\n walletVersion,\n workchain,\n subwalletNumber\n }\n };\n }\n else {\n const context = bitReader.loadUint(31);\n return {\n networkGlobalId,\n context\n };\n }\n}\nfunction storeWalletIdV5R1(walletId) {\n return (builder) => {\n let context;\n if (isWalletIdV5R1ClientContext(walletId.context)) {\n context = (0, core_1.beginCell)()\n .storeUint(1, 1)\n .storeInt(walletId.context.workchain, 8)\n .storeUint(walletV5R1VersionsSerialisation[walletId.context.walletVersion], 8)\n .storeUint(walletId.context.subwalletNumber, 15)\n .endCell().beginParse().loadInt(32);\n }\n else {\n context = (0, core_1.beginCell)()\n .storeUint(0, 1)\n .storeUint(walletId.context, 31)\n .endCell().beginParse().loadInt(32);\n }\n return builder.storeInt(BigInt(walletId.networkGlobalId) ^ BigInt(context), 32);\n };\n}\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletContractV5R1 = void 0;\nconst core_1 = require(\"@ton/core\");\nconst createWalletTransfer_1 = require(\"../signing/createWalletTransfer\");\nconst WalletV5R1WalletId_1 = require(\"./WalletV5R1WalletId\");\nclass WalletContractV5R1 {\n static create(args) {\n let workchain = 0;\n if ('workchain' in args && args.workchain != undefined) {\n workchain = args.workchain;\n }\n if (args.walletId?.context && (0, WalletV5R1WalletId_1.isWalletIdV5R1ClientContext)(args.walletId.context) && args.walletId.context.workchain != undefined) {\n workchain = args.walletId.context.workchain;\n }\n return new WalletContractV5R1(workchain, args.publicKey, {\n networkGlobalId: args.walletId?.networkGlobalId ?? -239,\n context: args.walletId?.context ?? {\n workchain: 0,\n walletVersion: 'v5r1',\n subwalletNumber: 0\n }\n });\n }\n constructor(workchain, publicKey, walletId) {\n this.publicKey = publicKey;\n this.walletId = walletId;\n this.walletId = walletId;\n // https://github.com/ton-blockchain/wallet-contract-v5/blob/4fab977f4fae3a37c1aac216ed2b7e611a9bc2af/build/wallet_v5.compiled.json\n let code = core_1.Cell.fromBoc(Buffer.from('b5ee9c7241021401000281000114ff00f4a413f4bcf2c80b01020120020d020148030402dcd020d749c120915b8f6320d70b1f2082106578746ebd21821073696e74bdb0925f03e082106578746eba8eb48020d72101d074d721fa4030fa44f828fa443058bd915be0ed44d0810141d721f4058307f40e6fa1319130e18040d721707fdb3ce03120d749810280b99130e070e2100f020120050c020120060902016e07080019adce76a2684020eb90eb85ffc00019af1df6a2684010eb90eb858fc00201480a0b0017b325fb51341c75c875c2c7e00011b262fb513435c280200019be5f0f6a2684080a0eb90fa02c0102f20e011e20d70b1f82107369676ebaf2e08a7f0f01e68ef0eda2edfb218308d722028308d723208020d721d31fd31fd31fed44d0d200d31f20d31fd3ffd70a000af90140ccf9109a28945f0adb31e1f2c087df02b35007b0f2d0845125baf2e0855036baf2e086f823bbf2d0882292f800de01a47fc8ca00cb1f01cf16c9ed542092f80fde70db3cd81003f6eda2edfb02f404216e926c218e4c0221d73930709421c700b38e2d01d72820761e436c20d749c008f2e09320d74ac002f2e09320d71d06c712c2005230b0f2d089d74cd7393001a4e86c128407bbf2e093d74ac000f2e093ed55e2d20001c000915be0ebd72c08142091709601d72c081c12e25210b1e30f20d74a111213009601fa4001fa44f828fa443058baf2e091ed44d0810141d718f405049d7fc8ca0040048307f453f2e08b8e14038307f45bf2e08c22d70a00216e01b3b0f2d090e2c85003cf1612f400c9ed54007230d72c08248e2d21f2e092d200ed44d0d2005113baf2d08f54503091319c01810140d721d70a00f2e08ee2c8ca0058cf16c9ed5493f2c08de20010935bdb31e1d74cd0b4d6c35e', 'hex'))[0];\n let data = (0, core_1.beginCell)()\n .storeUint(1, 1) // is signature auth allowed\n .storeUint(0, 32) // Seqno\n .store((0, WalletV5R1WalletId_1.storeWalletIdV5R1)(this.walletId))\n .storeBuffer(this.publicKey, 32)\n .storeBit(0) // Empty plugins dict\n .endCell();\n this.init = { code, data };\n this.address = (0, core_1.contractAddress)(workchain, { code, data });\n }\n /**\n * Get Wallet Balance\n */\n async getBalance(provider) {\n let state = await provider.getState();\n return state.balance;\n }\n /**\n * Get Wallet Seqno\n */\n async getSeqno(provider) {\n let state = await provider.getState();\n if (state.state.type === 'active') {\n let res = await provider.get('seqno', []);\n return res.stack.readNumber();\n }\n else {\n return 0;\n }\n }\n /**\n * Get Wallet Extensions\n */\n async getExtensions(provider) {\n let state = await provider.getState();\n if (state.state.type === 'active') {\n const result = await provider.get('get_extensions', []);\n return result.stack.readCellOpt();\n }\n else {\n return null;\n }\n }\n /**\n * Get Wallet Extensions\n */\n async getExtensionsArray(provider) {\n const extensions = await this.getExtensions(provider);\n if (!extensions) {\n return [];\n }\n const dict = core_1.Dictionary.loadDirect(core_1.Dictionary.Keys.BigUint(256), core_1.Dictionary.Values.BigInt(1), extensions);\n return dict.keys().map(addressHex => {\n const wc = this.address.workChain;\n return core_1.Address.parseRaw(`${wc}:${addressHex.toString(16).padStart(64, '0')}`);\n });\n }\n /**\n * Get is secret-key authentication enabled\n */\n async getIsSecretKeyAuthEnabled(provider) {\n let res = await provider.get('is_signature_allowed', []);\n return res.stack.readBoolean();\n }\n /**\n * Send signed transfer\n */\n async send(provider, message) {\n await provider.external(message);\n }\n /**\n * Sign and send transfer\n */\n async sendTransfer(provider, args) {\n const transfer = await this.createTransfer(args);\n await this.send(provider, transfer);\n }\n /**\n * Sign and send add extension request\n */\n async sendAddExtension(provider, args) {\n const request = await this.createAddExtension(args);\n await this.send(provider, request);\n }\n /**\n * Sign and send remove extension request\n */\n async sendRemoveExtension(provider, args) {\n const request = await this.createRemoveExtension(args);\n await this.send(provider, request);\n }\n createActions(args) {\n const actions = args.messages.map(message => ({ type: 'sendMsg', mode: args.sendMode, outMsg: message }));\n return actions;\n }\n /**\n * Create signed transfer\n */\n createTransfer(args) {\n return this.createRequest({\n actions: this.createActions({ messages: args.messages, sendMode: args.sendMode }),\n ...args\n });\n }\n /**\n * Create signed add extension request\n */\n createAddExtension(args) {\n return this.createRequest({\n actions: [{\n type: 'addExtension',\n address: args.extensionAddress\n }],\n ...args\n });\n }\n /**\n * Create signed remove extension request\n */\n createRemoveExtension(args) {\n return this.createRequest({\n actions: [{\n type: 'removeExtension',\n address: args.extensionAddress\n }],\n ...args\n });\n }\n /**\n * Create signed request or extension auth request\n */\n createRequest(args) {\n if (args.authType === 'extension') {\n return (0, createWalletTransfer_1.createWalletTransferV5R1)(args);\n }\n return (0, createWalletTransfer_1.createWalletTransferV5R1)({\n ...args,\n walletId: (0, WalletV5R1WalletId_1.storeWalletIdV5R1)(this.walletId)\n });\n }\n /**\n * Create sender\n */\n sender(provider, secretKey) {\n return {\n send: async (args) => {\n let seqno = await this.getSeqno(provider);\n let transfer = this.createTransfer({\n seqno,\n secretKey,\n sendMode: args.sendMode ?? core_1.SendMode.PAY_GAS_SEPARATELY + core_1.SendMode.IGNORE_ERRORS,\n messages: [(0, core_1.internal)({\n to: args.to,\n value: args.value,\n extracurrency: args.extracurrency,\n init: args.init,\n body: args.body,\n bounce: args.bounce\n })]\n });\n await this.send(provider, transfer);\n }\n };\n }\n}\nexports.WalletContractV5R1 = WalletContractV5R1;\nWalletContractV5R1.OpCodes = {\n auth_extension: 0x6578746e,\n auth_signed_external: 0x7369676e,\n auth_signed_internal: 0x73696e74\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeOutActionExtendedV5R1 = storeOutActionExtendedV5R1;\nexports.loadOutActionExtendedV5R1 = loadOutActionExtendedV5R1;\nexports.storeOutListExtendedV5R1 = storeOutListExtendedV5R1;\nexports.loadOutListExtendedV5R1 = loadOutListExtendedV5R1;\nexports.toSafeV5R1SendMode = toSafeV5R1SendMode;\nexports.patchV5R1ActionsSendMode = patchV5R1ActionsSendMode;\nconst core_1 = require(\"@ton/core\");\nconst WalletV5OutActions_1 = require(\"../v5beta/WalletV5OutActions\");\nconst outActionSetIsPublicKeyEnabledTag = 0x04;\nfunction storeOutActionSetIsPublicKeyEnabled(action) {\n return (builder) => {\n builder.storeUint(outActionSetIsPublicKeyEnabledTag, 8).storeUint(action.isEnabled ? 1 : 0, 1);\n };\n}\nconst outActionAddExtensionTag = 0x02;\nfunction storeOutActionAddExtension(action) {\n return (builder) => {\n builder.storeUint(outActionAddExtensionTag, 8).storeAddress(action.address);\n };\n}\nconst outActionRemoveExtensionTag = 0x03;\nfunction storeOutActionRemoveExtension(action) {\n return (builder) => {\n builder.storeUint(outActionRemoveExtensionTag, 8).storeAddress(action.address);\n };\n}\nfunction storeOutActionExtendedV5R1(action) {\n switch (action.type) {\n case 'setIsPublicKeyEnabled':\n return storeOutActionSetIsPublicKeyEnabled(action);\n case 'addExtension':\n return storeOutActionAddExtension(action);\n case 'removeExtension':\n return storeOutActionRemoveExtension(action);\n default:\n throw new Error('Unknown action type' + action?.type);\n }\n}\nfunction loadOutActionExtendedV5R1(slice) {\n const tag = slice.loadUint(8);\n switch (tag) {\n case outActionSetIsPublicKeyEnabledTag:\n return {\n type: 'setIsPublicKeyEnabled',\n isEnabled: !!slice.loadUint(1)\n };\n case outActionAddExtensionTag:\n return {\n type: 'addExtension',\n address: slice.loadAddress()\n };\n case outActionRemoveExtensionTag:\n return {\n type: 'removeExtension',\n address: slice.loadAddress()\n };\n default:\n throw new Error(`Unknown extended out action tag 0x${tag.toString(16)}`);\n }\n}\nfunction storeOutListExtendedV5R1(actions) {\n const extendedActions = actions.filter(WalletV5OutActions_1.isOutActionExtended);\n const basicActions = actions.filter(WalletV5OutActions_1.isOutActionBasic);\n return (builder) => {\n const outListPacked = basicActions.length ? (0, core_1.beginCell)().store((0, core_1.storeOutList)(basicActions.slice().reverse())) : null;\n builder.storeMaybeRef(outListPacked);\n if (extendedActions.length === 0) {\n builder.storeUint(0, 1);\n }\n else {\n const [first, ...rest] = extendedActions;\n builder\n .storeUint(1, 1)\n .store(storeOutActionExtendedV5R1(first));\n if (rest.length > 0) {\n builder.storeRef(packExtendedActionsRec(rest));\n }\n }\n };\n}\nfunction packExtendedActionsRec(extendedActions) {\n const [first, ...rest] = extendedActions;\n let builder = (0, core_1.beginCell)()\n .store(storeOutActionExtendedV5R1(first));\n if (rest.length > 0) {\n builder = builder.storeRef(packExtendedActionsRec(rest));\n }\n return builder.endCell();\n}\nfunction loadOutListExtendedV5R1(slice) {\n const actions = [];\n const outListPacked = slice.loadMaybeRef();\n if (outListPacked) {\n const loadedActions = (0, core_1.loadOutList)(outListPacked.beginParse());\n if (loadedActions.some(a => a.type !== 'sendMsg')) {\n throw new Error(\"Can't deserialize actions list: only sendMsg actions are allowed for wallet v5r1\");\n }\n actions.push(...loadedActions);\n }\n if (slice.loadBoolean()) {\n const action = loadOutActionExtendedV5R1(slice);\n actions.push(action);\n }\n while (slice.remainingRefs > 0) {\n slice = slice.loadRef().beginParse();\n const action = loadOutActionExtendedV5R1(slice);\n actions.push(action);\n }\n return actions;\n}\n/**\n * Safety rules -- actions of external messages must have +2 in the SendMode. Internal messages actions may have arbitrary SendMode.\n */\nfunction toSafeV5R1SendMode(sendMode, authType) {\n if (authType === 'internal' || authType === 'extension') {\n return sendMode;\n }\n return sendMode | core_1.SendMode.IGNORE_ERRORS;\n}\nfunction patchV5R1ActionsSendMode(actions, authType) {\n return actions.map(action => action.type === 'sendMsg' ? ({\n ...action,\n mode: toSafeV5R1SendMode(action.mode, authType)\n }) : action);\n}\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createWalletTransferV1 = createWalletTransferV1;\nexports.createWalletTransferV2 = createWalletTransferV2;\nexports.createWalletTransferV3 = createWalletTransferV3;\nexports.createWalletTransferV4 = createWalletTransferV4;\nexports.createWalletTransferV5Beta = createWalletTransferV5Beta;\nexports.createWalletTransferV5R1 = createWalletTransferV5R1;\nconst core_1 = require(\"@ton/core\");\nconst crypto_1 = require(\"@ton/crypto\");\nconst WalletContractV5Beta_1 = require(\"../v5beta/WalletContractV5Beta\");\nconst WalletV5BetaActions_1 = require(\"../v5beta/WalletV5BetaActions\");\nconst singer_1 = require(\"./singer\");\nconst WalletContractV5R1_1 = require(\"../v5r1/WalletContractV5R1\");\nconst WalletV5R1Actions_1 = require(\"../v5r1/WalletV5R1Actions\");\nfunction packSignatureToFront(signature, signingMessage) {\n const body = (0, core_1.beginCell)()\n .storeBuffer(signature)\n .storeBuilder(signingMessage)\n .endCell();\n return body;\n}\nfunction packSignatureToTail(signature, signingMessage) {\n const body = (0, core_1.beginCell)()\n .storeBuilder(signingMessage)\n .storeBuffer(signature)\n .endCell();\n return body;\n}\nfunction createWalletTransferV1(args) {\n // Create message\n let signingMessage = (0, core_1.beginCell)()\n .storeUint(args.seqno, 32);\n if (args.message) {\n signingMessage.storeUint(args.sendMode, 8);\n signingMessage.storeRef((0, core_1.beginCell)().store((0, core_1.storeMessageRelaxed)(args.message)));\n }\n // Sign message\n let signature = (0, crypto_1.sign)(signingMessage.endCell().hash(), args.secretKey);\n // Body\n const body = (0, core_1.beginCell)()\n .storeBuffer(signature)\n .storeBuilder(signingMessage)\n .endCell();\n return body;\n}\nfunction createWalletTransferV2(args) {\n // Check number of messages\n if (args.messages.length > 4) {\n throw Error(\"Maximum number of messages in a single transfer is 4\");\n }\n // Create message\n let signingMessage = (0, core_1.beginCell)()\n .storeUint(args.seqno, 32);\n if (args.seqno === 0) {\n for (let i = 0; i < 32; i++) {\n signingMessage.storeBit(1);\n }\n }\n else {\n signingMessage.storeUint(args.timeout || Math.floor(Date.now() / 1e3) + 60, 32); // Default timeout: 60 seconds\n }\n for (let m of args.messages) {\n signingMessage.storeUint(args.sendMode, 8);\n signingMessage.storeRef((0, core_1.beginCell)().store((0, core_1.storeMessageRelaxed)(m)));\n }\n // Sign message\n let signature = (0, crypto_1.sign)(signingMessage.endCell().hash(), args.secretKey);\n // Body\n const body = (0, core_1.beginCell)()\n .storeBuffer(signature)\n .storeBuilder(signingMessage)\n .endCell();\n return body;\n}\nfunction createWalletTransferV3(args) {\n // Check number of messages\n if (args.messages.length > 4) {\n throw Error(\"Maximum number of messages in a single transfer is 4\");\n }\n // Create message to sign\n let signingMessage = (0, core_1.beginCell)()\n .storeUint(args.walletId, 32);\n if (args.seqno === 0) {\n for (let i = 0; i < 32; i++) {\n signingMessage.storeBit(1);\n }\n }\n else {\n signingMessage.storeUint(args.timeout || Math.floor(Date.now() / 1e3) + 60, 32); // Default timeout: 60 seconds\n }\n signingMessage.storeUint(args.seqno, 32);\n for (let m of args.messages) {\n signingMessage.storeUint(args.sendMode, 8);\n signingMessage.storeRef((0, core_1.beginCell)().store((0, core_1.storeMessageRelaxed)(m)));\n }\n return (0, singer_1.signPayload)(args, signingMessage, packSignatureToFront);\n}\nfunction createWalletTransferV4(args) {\n // Check number of messages\n if (args.messages.length > 4) {\n throw Error(\"Maximum number of messages in a single transfer is 4\");\n }\n let signingMessage = (0, core_1.beginCell)()\n .storeUint(args.walletId, 32);\n if (args.seqno === 0) {\n for (let i = 0; i < 32; i++) {\n signingMessage.storeBit(1);\n }\n }\n else {\n signingMessage.storeUint(args.timeout || Math.floor(Date.now() / 1e3) + 60, 32); // Default timeout: 60 seconds\n }\n signingMessage.storeUint(args.seqno, 32);\n signingMessage.storeUint(0, 8); // Simple order\n for (let m of args.messages) {\n signingMessage.storeUint(args.sendMode, 8);\n signingMessage.storeRef((0, core_1.beginCell)().store((0, core_1.storeMessageRelaxed)(m)));\n }\n return (0, singer_1.signPayload)(args, signingMessage, packSignatureToFront);\n}\nfunction createWalletTransferV5Beta(args) {\n // Check number of actions\n if (args.actions.length > 255) {\n throw Error(\"Maximum number of OutActions in a single request is 255\");\n }\n if (args.authType === 'extension') {\n return (0, core_1.beginCell)()\n .storeUint(WalletContractV5Beta_1.WalletContractV5Beta.OpCodes.auth_extension, 32)\n .store((0, WalletV5BetaActions_1.storeOutListExtendedV5Beta)(args.actions))\n .endCell();\n }\n const signingMessage = (0, core_1.beginCell)()\n .storeUint(args.authType === 'internal'\n ? WalletContractV5Beta_1.WalletContractV5Beta.OpCodes.auth_signed_internal\n : WalletContractV5Beta_1.WalletContractV5Beta.OpCodes.auth_signed_external, 32)\n .store(args.walletId);\n if (args.seqno === 0) {\n for (let i = 0; i < 32; i++) {\n signingMessage.storeBit(1);\n }\n }\n else {\n signingMessage.storeUint(args.timeout || Math.floor(Date.now() / 1e3) + 60, 32); // Default timeout: 60 seconds\n }\n signingMessage\n .storeUint(args.seqno, 32)\n .store((0, WalletV5BetaActions_1.storeOutListExtendedV5Beta)(args.actions));\n return (0, singer_1.signPayload)(args, signingMessage, packSignatureToTail);\n}\nfunction createWalletTransferV5R1(args) {\n // Check number of actions\n if (args.actions.length > 255) {\n throw Error(\"Maximum number of OutActions in a single request is 255\");\n }\n args = { ...args };\n if (args.authType === 'extension') {\n return (0, core_1.beginCell)()\n .storeUint(WalletContractV5R1_1.WalletContractV5R1.OpCodes.auth_extension, 32)\n .storeUint(args.queryId ?? 0, 64)\n .store((0, WalletV5R1Actions_1.storeOutListExtendedV5R1)(args.actions))\n .endCell();\n }\n args.actions = (0, WalletV5R1Actions_1.patchV5R1ActionsSendMode)(args.actions, args.authType);\n const signingMessage = (0, core_1.beginCell)()\n .storeUint(args.authType === 'internal'\n ? WalletContractV5R1_1.WalletContractV5R1.OpCodes.auth_signed_internal\n : WalletContractV5R1_1.WalletContractV5R1.OpCodes.auth_signed_external, 32)\n .store(args.walletId);\n if (args.seqno === 0) {\n for (let i = 0; i < 32; i++) {\n signingMessage.storeBit(1);\n }\n }\n else {\n signingMessage.storeUint(args.timeout || Math.floor(Date.now() / 1e3) + 60, 32); // Default timeout: 60 seconds\n }\n signingMessage\n .storeUint(args.seqno, 32)\n .store((0, WalletV5R1Actions_1.storeOutListExtendedV5R1)(args.actions));\n return (0, singer_1.signPayload)(args, signingMessage, packSignatureToTail);\n}\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletContractV1R1 = void 0;\nconst core_1 = require(\"@ton/core\");\nconst createWalletTransfer_1 = require(\"./signing/createWalletTransfer\");\nclass WalletContractV1R1 {\n static create(args) {\n return new WalletContractV1R1(args.workchain, args.publicKey);\n }\n constructor(workchain, publicKey) {\n this.workchain = workchain;\n this.publicKey = publicKey;\n // Build initial code and data\n let code = core_1.Cell.fromBoc(Buffer.from('te6cckEBAQEARAAAhP8AIN2k8mCBAgDXGCDXCx/tRNDTH9P/0VESuvKhIvkBVBBE+RDyovgAAdMfMSDXSpbTB9QC+wDe0aTIyx/L/8ntVEH98Ik=', 'base64'))[0];\n let data = (0, core_1.beginCell)()\n .storeUint(0, 32) // Seqno\n .storeBuffer(publicKey)\n .endCell();\n this.init = { code, data };\n this.address = (0, core_1.contractAddress)(workchain, { code, data });\n }\n /**\n * Get Wallet Balance\n */\n async getBalance(provider) {\n let state = await provider.getState();\n return state.balance;\n }\n /**\n * Get Wallet Seqno\n */\n async getSeqno(provider) {\n let state = await provider.getState();\n if (state.state.type === 'active') {\n return core_1.Cell.fromBoc(state.state.data)[0].beginParse().loadUint(32);\n }\n else {\n return 0;\n }\n }\n /**\n * Send signed transfer\n */\n async send(provider, message) {\n await provider.external(message);\n }\n /**\n * Sign and send transfer\n */\n async sendTransfer(provider, args) {\n let transfer = this.createTransfer(args);\n await this.send(provider, transfer);\n }\n /**\n * Create signed transfer\n */\n createTransfer(args) {\n let sendMode = core_1.SendMode.PAY_GAS_SEPARATELY;\n if (args.sendMode !== null && args.sendMode !== undefined) {\n sendMode = args.sendMode;\n }\n return (0, createWalletTransfer_1.createWalletTransferV1)({\n seqno: args.seqno,\n sendMode,\n secretKey: args.secretKey,\n message: args.message\n });\n }\n /**\n * Create sender\n */\n sender(provider, secretKey) {\n return {\n send: async (args) => {\n let seqno = await this.getSeqno(provider);\n let transfer = this.createTransfer({\n seqno,\n secretKey,\n sendMode: args.sendMode,\n message: (0, core_1.internal)({\n to: args.to,\n value: args.value,\n extracurrency: args.extracurrency,\n init: args.init,\n body: args.body,\n bounce: args.bounce\n })\n });\n await this.send(provider, transfer);\n }\n };\n }\n}\nexports.WalletContractV1R1 = WalletContractV1R1;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletContractV1R2 = void 0;\nconst core_1 = require(\"@ton/core\");\nconst createWalletTransfer_1 = require(\"./signing/createWalletTransfer\");\nclass WalletContractV1R2 {\n static create(args) {\n return new WalletContractV1R2(args.workchain, args.publicKey);\n }\n constructor(workchain, publicKey) {\n this.workchain = workchain;\n this.publicKey = publicKey;\n // Build initial code and data\n let code = core_1.Cell.fromBoc(Buffer.from('te6cckEBAQEAUwAAov8AIN0gggFMl7qXMO1E0NcLH+Ck8mCBAgDXGCDXCx/tRNDTH9P/0VESuvKhIvkBVBBE+RDyovgAAdMfMSDXSpbTB9QC+wDe0aTIyx/L/8ntVNDieG8=', 'base64'))[0];\n let data = (0, core_1.beginCell)()\n .storeUint(0, 32) // Seqno\n .storeBuffer(publicKey)\n .endCell();\n this.init = { code, data };\n this.address = (0, core_1.contractAddress)(workchain, { code, data });\n }\n /**\n * Get Wallet Balance\n */\n async getBalance(provider) {\n let state = await provider.getState();\n return state.balance;\n }\n /**\n * Get Wallet Seqno\n */\n async getSeqno(provider) {\n let state = await provider.getState();\n if (state.state.type === 'active') {\n let res = await provider.get('seqno', []);\n return res.stack.readNumber();\n }\n else {\n return 0;\n }\n }\n /**\n * Send signed transfer\n */\n async send(provider, message) {\n await provider.external(message);\n }\n /**\n * Sign and send transfer\n */\n async sendTransfer(provider, args) {\n let transfer = this.createTransfer(args);\n await this.send(provider, transfer);\n }\n /**\n * Create signed transfer\n */\n createTransfer(args) {\n let sendMode = core_1.SendMode.PAY_GAS_SEPARATELY;\n if (args.sendMode !== null && args.sendMode !== undefined) {\n sendMode = args.sendMode;\n }\n return (0, createWalletTransfer_1.createWalletTransferV1)({\n seqno: args.seqno,\n sendMode,\n secretKey: args.secretKey,\n message: args.message\n });\n }\n /**\n * Create sender\n */\n sender(provider, secretKey) {\n return {\n send: async (args) => {\n let seqno = await this.getSeqno(provider);\n let transfer = this.createTransfer({\n seqno,\n secretKey,\n sendMode: args.sendMode,\n message: (0, core_1.internal)({\n to: args.to,\n value: args.value,\n extracurrency: args.extracurrency,\n init: args.init,\n body: args.body,\n bounce: args.bounce\n })\n });\n await this.send(provider, transfer);\n }\n };\n }\n}\nexports.WalletContractV1R2 = WalletContractV1R2;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletContractV1R3 = void 0;\nconst core_1 = require(\"@ton/core\");\nconst createWalletTransfer_1 = require(\"./signing/createWalletTransfer\");\nclass WalletContractV1R3 {\n static create(args) {\n return new WalletContractV1R3(args.workchain, args.publicKey);\n }\n constructor(workchain, publicKey) {\n this.workchain = workchain;\n this.publicKey = publicKey;\n // Build initial code and data\n let code = core_1.Cell.fromBoc(Buffer.from('te6cckEBAQEAXwAAuv8AIN0gggFMl7ohggEznLqxnHGw7UTQ0x/XC//jBOCk8mCBAgDXGCDXCx/tRNDTH9P/0VESuvKhIvkBVBBE+RDyovgAAdMfMSDXSpbTB9QC+wDe0aTIyx/L/8ntVLW4bkI=', 'base64'))[0];\n let data = (0, core_1.beginCell)()\n .storeUint(0, 32) // Seqno\n .storeBuffer(publicKey)\n .endCell();\n this.init = { code, data };\n this.address = (0, core_1.contractAddress)(workchain, { code, data });\n }\n /**\n * Get Wallet Balance\n */\n async getBalance(provider) {\n let state = await provider.getState();\n return state.balance;\n }\n /**\n * Get Wallet Seqno\n */\n async getSeqno(provider) {\n let state = await provider.getState();\n if (state.state.type === 'active') {\n let res = await provider.get('seqno', []);\n return res.stack.readNumber();\n }\n else {\n return 0;\n }\n }\n /**\n * Send signed transfer\n */\n async send(executor, message) {\n await executor.external(message);\n }\n /**\n * Sign and send transfer\n */\n async sendTransfer(provider, args) {\n let transfer = this.createTransfer(args);\n await this.send(provider, transfer);\n }\n /**\n * Create signed transfer\n */\n createTransfer(args) {\n let sendMode = core_1.SendMode.PAY_GAS_SEPARATELY;\n if (args.sendMode !== null && args.sendMode !== undefined) {\n sendMode = args.sendMode;\n }\n return (0, createWalletTransfer_1.createWalletTransferV1)({\n seqno: args.seqno,\n sendMode: sendMode,\n secretKey: args.secretKey,\n message: args.message\n });\n }\n /**\n * Create sender\n */\n sender(provider, secretKey) {\n return {\n send: async (args) => {\n let seqno = await this.getSeqno(provider);\n let transfer = this.createTransfer({\n seqno,\n secretKey,\n sendMode: args.sendMode,\n message: (0, core_1.internal)({\n to: args.to,\n value: args.value,\n init: args.init,\n body: args.body,\n bounce: args.bounce\n })\n });\n await this.send(provider, transfer);\n }\n };\n }\n}\nexports.WalletContractV1R3 = WalletContractV1R3;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletContractV2R1 = void 0;\nconst core_1 = require(\"@ton/core\");\nconst createWalletTransfer_1 = require(\"./signing/createWalletTransfer\");\nclass WalletContractV2R1 {\n static create(args) {\n return new WalletContractV2R1(args.workchain, args.publicKey);\n }\n constructor(workchain, publicKey) {\n this.workchain = workchain;\n this.publicKey = publicKey;\n // Build initial code and data\n let code = core_1.Cell.fromBoc(Buffer.from('te6cckEBAQEAVwAAqv8AIN0gggFMl7qXMO1E0NcLH+Ck8mCDCNcYINMf0x8B+CO78mPtRNDTH9P/0VExuvKhA/kBVBBC+RDyovgAApMg10qW0wfUAvsA6NGkyMsfy//J7VShNwu2', 'base64'))[0];\n let data = (0, core_1.beginCell)()\n .storeUint(0, 32) // Seqno\n .storeBuffer(publicKey)\n .endCell();\n this.init = { code, data };\n this.address = (0, core_1.contractAddress)(workchain, { code, data });\n }\n /**\n * Get Wallet Balance\n */\n async getBalance(provider) {\n let state = await provider.getState();\n return state.balance;\n }\n /**\n * Get Wallet Seqno\n */\n async getSeqno(provider) {\n let state = await provider.getState();\n if (state.state.type === 'active') {\n let res = await provider.get('seqno', []);\n return res.stack.readNumber();\n }\n else {\n return 0;\n }\n }\n /**\n * Send signed transfer\n */\n async send(provider, message) {\n await provider.external(message);\n }\n /**\n * Sign and send transfer\n */\n async sendTransfer(provider, args) {\n let transfer = this.createTransfer(args);\n await this.send(provider, transfer);\n }\n /**\n * Create signed transfer\n */\n createTransfer(args) {\n let sendMode = core_1.SendMode.PAY_GAS_SEPARATELY;\n if (args.sendMode !== null && args.sendMode !== undefined) {\n sendMode = args.sendMode;\n }\n return (0, createWalletTransfer_1.createWalletTransferV2)({\n seqno: args.seqno,\n sendMode,\n secretKey: args.secretKey,\n messages: args.messages,\n timeout: args.timeout\n });\n }\n /**\n * Create sender\n */\n sender(provider, secretKey) {\n return {\n send: async (args) => {\n let seqno = await this.getSeqno(provider);\n let transfer = this.createTransfer({\n seqno,\n secretKey,\n sendMode: args.sendMode,\n messages: [(0, core_1.internal)({\n to: args.to,\n value: args.value,\n extracurrency: args.extracurrency,\n init: args.init,\n body: args.body,\n bounce: args.bounce\n })]\n });\n await this.send(provider, transfer);\n }\n };\n }\n}\nexports.WalletContractV2R1 = WalletContractV2R1;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletContractV2R2 = void 0;\nconst core_1 = require(\"@ton/core\");\nconst createWalletTransfer_1 = require(\"./signing/createWalletTransfer\");\nclass WalletContractV2R2 {\n static create(args) {\n return new WalletContractV2R2(args.workchain, args.publicKey);\n }\n constructor(workchain, publicKey) {\n this.workchain = workchain;\n this.publicKey = publicKey;\n // Build initial code and data\n let code = core_1.Cell.fromBoc(Buffer.from('te6cckEBAQEAYwAAwv8AIN0gggFMl7ohggEznLqxnHGw7UTQ0x/XC//jBOCk8mCDCNcYINMf0x8B+CO78mPtRNDTH9P/0VExuvKhA/kBVBBC+RDyovgAApMg10qW0wfUAvsA6NGkyMsfy//J7VQETNeh', 'base64'))[0];\n let data = (0, core_1.beginCell)()\n .storeUint(0, 32) // Seqno\n .storeBuffer(publicKey)\n .endCell();\n this.init = { code, data };\n this.address = (0, core_1.contractAddress)(workchain, { code, data });\n }\n /**\n * Get Wallet Balance\n */\n async getBalance(provider) {\n let state = await provider.getState();\n return state.balance;\n }\n /**\n * Get Wallet Seqno\n */\n async getSeqno(provider) {\n let state = await provider.getState();\n if (state.state.type === 'active') {\n let res = await provider.get('seqno', []);\n return res.stack.readNumber();\n }\n else {\n return 0;\n }\n }\n /**\n * Send signed transfer\n */\n async send(provider, message) {\n await provider.external(message);\n }\n /**\n * Sign and send transfer\n */\n async sendTransfer(provider, args) {\n let transfer = this.createTransfer(args);\n await this.send(provider, transfer);\n }\n /**\n * Create signed transfer\n */\n createTransfer(args) {\n let sendMode = core_1.SendMode.PAY_GAS_SEPARATELY;\n if (args.sendMode !== null && args.sendMode !== undefined) {\n sendMode = args.sendMode;\n }\n return (0, createWalletTransfer_1.createWalletTransferV2)({\n seqno: args.seqno,\n sendMode,\n secretKey: args.secretKey,\n messages: args.messages,\n timeout: args.timeout\n });\n }\n /**\n * Create sender\n */\n sender(provider, secretKey) {\n return {\n send: async (args) => {\n let seqno = await this.getSeqno(provider);\n let transfer = this.createTransfer({\n seqno,\n secretKey,\n sendMode: args.sendMode,\n messages: [(0, core_1.internal)({\n to: args.to,\n value: args.value,\n extracurrency: args.extracurrency,\n init: args.init,\n body: args.body,\n bounce: args.bounce\n })]\n });\n await this.send(provider, transfer);\n }\n };\n }\n}\nexports.WalletContractV2R2 = WalletContractV2R2;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletContractV3R1 = void 0;\nconst core_1 = require(\"@ton/core\");\nconst createWalletTransfer_1 = require(\"./signing/createWalletTransfer\");\nclass WalletContractV3R1 {\n static create(args) {\n return new WalletContractV3R1(args.workchain, args.publicKey, args.walletId);\n }\n constructor(workchain, publicKey, walletId) {\n // Resolve parameters\n this.workchain = workchain;\n this.publicKey = publicKey;\n if (walletId !== null && walletId !== undefined) {\n this.walletId = walletId;\n }\n else {\n this.walletId = 698983191 + workchain;\n }\n // Build initial code and data\n let code = core_1.Cell.fromBoc(Buffer.from('te6cckEBAQEAYgAAwP8AIN0gggFMl7qXMO1E0NcLH+Ck8mCDCNcYINMf0x/TH/gjE7vyY+1E0NMf0x/T/9FRMrryoVFEuvKiBPkBVBBV+RDyo/gAkyDXSpbTB9QC+wDo0QGkyMsfyx/L/8ntVD++buA=', 'base64'))[0];\n let data = (0, core_1.beginCell)()\n .storeUint(0, 32) // Seqno\n .storeUint(this.walletId, 32)\n .storeBuffer(publicKey)\n .endCell();\n this.init = { code, data };\n this.address = (0, core_1.contractAddress)(workchain, { code, data });\n }\n /**\n * Get wallet balance\n */\n async getBalance(provider) {\n let state = await provider.getState();\n return state.balance;\n }\n /**\n * Get Wallet Seqno\n */\n async getSeqno(provider) {\n let state = await provider.getState();\n if (state.state.type === 'active') {\n let res = await provider.get('seqno', []);\n return res.stack.readNumber();\n }\n else {\n return 0;\n }\n }\n /**\n * Send signed transfer\n */\n async send(provider, message) {\n await provider.external(message);\n }\n /**\n * Sign and send transfer\n */\n async sendTransfer(provider, args) {\n let transfer = this.createTransfer(args);\n await this.send(provider, transfer);\n }\n /**\n * Create transfer\n */\n createTransfer(args) {\n return (0, createWalletTransfer_1.createWalletTransferV3)({\n ...args,\n sendMode: args.sendMode ?? core_1.SendMode.PAY_GAS_SEPARATELY,\n walletId: this.walletId\n });\n }\n /**\n * Create sender\n */\n sender(provider, secretKey) {\n return {\n send: async (args) => {\n let seqno = await this.getSeqno(provider);\n let transfer = this.createTransfer({\n seqno,\n secretKey,\n sendMode: args.sendMode,\n messages: [(0, core_1.internal)({\n to: args.to,\n value: args.value,\n extracurrency: args.extracurrency,\n init: args.init,\n body: args.body,\n bounce: args.bounce\n })]\n });\n await this.send(provider, transfer);\n }\n };\n }\n}\nexports.WalletContractV3R1 = WalletContractV3R1;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletContractV3R2 = void 0;\nconst core_1 = require(\"@ton/core\");\nconst createWalletTransfer_1 = require(\"./signing/createWalletTransfer\");\nclass WalletContractV3R2 {\n static create(args) {\n return new WalletContractV3R2(args.workchain, args.publicKey, args.walletId);\n }\n constructor(workchain, publicKey, walletId) {\n // Resolve parameters\n this.workchain = workchain;\n this.publicKey = publicKey;\n if (walletId !== null && walletId !== undefined) {\n this.walletId = walletId;\n }\n else {\n this.walletId = 698983191 + workchain;\n }\n // Build initial code and data\n let code = core_1.Cell.fromBoc(Buffer.from('te6cckEBAQEAcQAA3v8AIN0gggFMl7ohggEznLqxn3Gw7UTQ0x/THzHXC//jBOCk8mCDCNcYINMf0x/TH/gjE7vyY+1E0NMf0x/T/9FRMrryoVFEuvKiBPkBVBBV+RDyo/gAkyDXSpbTB9QC+wDo0QGkyMsfyx/L/8ntVBC9ba0=', 'base64'))[0];\n let data = (0, core_1.beginCell)()\n .storeUint(0, 32) // Seqno\n .storeUint(this.walletId, 32)\n .storeBuffer(publicKey)\n .endCell();\n this.init = { code, data };\n this.address = (0, core_1.contractAddress)(workchain, { code, data });\n }\n /**\n * Get wallet balance\n */\n async getBalance(provider) {\n let state = await provider.getState();\n return state.balance;\n }\n /**\n * Get Wallet Seqno\n */\n async getSeqno(provider) {\n let state = await provider.getState();\n if (state.state.type === 'active') {\n let res = await provider.get('seqno', []);\n return res.stack.readNumber();\n }\n else {\n return 0;\n }\n }\n /**\n * Send signed transfer\n */\n async send(provider, message) {\n await provider.external(message);\n }\n /**\n * Sign and send transfer\n */\n async sendTransfer(provider, args) {\n let transfer = this.createTransfer(args);\n await this.send(provider, transfer);\n }\n /**\n * Create transfer\n */\n createTransfer(args) {\n return (0, createWalletTransfer_1.createWalletTransferV3)({\n ...args,\n sendMode: args.sendMode ?? core_1.SendMode.PAY_GAS_SEPARATELY,\n walletId: this.walletId\n });\n }\n /**\n * Create sender\n */\n sender(provider, secretKey) {\n return {\n send: async (args) => {\n let seqno = await this.getSeqno(provider);\n let transfer = this.createTransfer({\n seqno,\n secretKey,\n sendMode: args.sendMode,\n messages: [(0, core_1.internal)({\n to: args.to,\n value: args.value,\n extracurrency: args.extracurrency,\n init: args.init,\n body: args.body,\n bounce: args.bounce\n })]\n });\n await this.send(provider, transfer);\n }\n };\n }\n}\nexports.WalletContractV3R2 = WalletContractV3R2;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletContractV4 = void 0;\nconst core_1 = require(\"@ton/core\");\nconst createWalletTransfer_1 = require(\"./signing/createWalletTransfer\");\nclass WalletContractV4 {\n static create(args) {\n return new WalletContractV4(args.workchain, args.publicKey, args.walletId);\n }\n constructor(workchain, publicKey, walletId) {\n // Resolve parameters\n this.workchain = workchain;\n this.publicKey = publicKey;\n if (walletId !== null && walletId !== undefined) {\n this.walletId = walletId;\n }\n else {\n this.walletId = 698983191 + workchain;\n }\n // Build initial code and data\n let code = core_1.Cell.fromBoc(Buffer.from('te6ccgECFAEAAtQAART/APSkE/S88sgLAQIBIAIDAgFIBAUE+PKDCNcYINMf0x/THwL4I7vyZO1E0NMf0x/T//QE0VFDuvKhUVG68qIF+QFUEGT5EPKj+AAkpMjLH1JAyx9SMMv/UhD0AMntVPgPAdMHIcAAn2xRkyDXSpbTB9QC+wDoMOAhwAHjACHAAuMAAcADkTDjDQOkyMsfEssfy/8QERITAubQAdDTAyFxsJJfBOAi10nBIJJfBOAC0x8hghBwbHVnvSKCEGRzdHK9sJJfBeAD+kAwIPpEAcjKB8v/ydDtRNCBAUDXIfQEMFyBAQj0Cm+hMbOSXwfgBdM/yCWCEHBsdWe6kjgw4w0DghBkc3RyupJfBuMNBgcCASAICQB4AfoA9AQw+CdvIjBQCqEhvvLgUIIQcGx1Z4MesXCAGFAEywUmzxZY+gIZ9ADLaRfLH1Jgyz8gyYBA+wAGAIpQBIEBCPRZMO1E0IEBQNcgyAHPFvQAye1UAXKwjiOCEGRzdHKDHrFwgBhQBcsFUAPPFiP6AhPLassfyz/JgED7AJJfA+ICASAKCwBZvSQrb2omhAgKBrkPoCGEcNQICEekk30pkQzmkD6f+YN4EoAbeBAUiYcVnzGEAgFYDA0AEbjJftRNDXCx+AA9sp37UTQgQFA1yH0BDACyMoHy//J0AGBAQj0Cm+hMYAIBIA4PABmtznaiaEAga5Drhf/AABmvHfaiaEAQa5DrhY/AAG7SB/oA1NQi+QAFyMoHFcv/ydB3dIAYyMsFywIizxZQBfoCFMtrEszMyXP7AMhAFIEBCPRR8qcCAHCBAQjXGPoA0z/IVCBHgQEI9FHyp4IQbm90ZXB0gBjIywXLAlAGzxZQBPoCFMtqEssfyz/Jc/sAAgBsgQEI1xj6ANM/MFIkgQEI9Fnyp4IQZHN0cnB0gBjIywXLAlAFzxZQA/oCE8tqyx8Syz/Jc/sAAAr0AMntVA==', 'base64'))[0];\n let data = (0, core_1.beginCell)()\n .storeUint(0, 32) // Seqno\n .storeUint(this.walletId, 32)\n .storeBuffer(this.publicKey)\n .storeBit(0) // Empty plugins dict\n .endCell();\n this.init = { code, data };\n this.address = (0, core_1.contractAddress)(workchain, { code, data });\n }\n /**\n * Get Wallet Balance\n */\n async getBalance(provider) {\n let state = await provider.getState();\n return state.balance;\n }\n /**\n * Get Wallet Seqno\n */\n async getSeqno(provider) {\n let state = await provider.getState();\n if (state.state.type === 'active') {\n let res = await provider.get('seqno', []);\n return res.stack.readNumber();\n }\n else {\n return 0;\n }\n }\n /**\n * Send signed transfer\n */\n async send(provider, message) {\n await provider.external(message);\n }\n /**\n * Sign and send transfer\n */\n async sendTransfer(provider, args) {\n let transfer = this.createTransfer(args);\n await this.send(provider, transfer);\n }\n /**\n * Create signed transfer\n */\n createTransfer(args) {\n return (0, createWalletTransfer_1.createWalletTransferV4)({\n ...args,\n sendMode: args.sendMode ?? core_1.SendMode.PAY_GAS_SEPARATELY,\n walletId: this.walletId\n });\n }\n /**\n * Create sender\n */\n sender(provider, secretKey) {\n return {\n send: async (args) => {\n let seqno = await this.getSeqno(provider);\n let transfer = this.createTransfer({\n seqno,\n secretKey,\n sendMode: args.sendMode,\n messages: [(0, core_1.internal)({\n to: args.to,\n value: args.value,\n extracurrency: args.extracurrency,\n init: args.init,\n body: args.body,\n bounce: args.bounce\n })]\n });\n await this.send(provider, transfer);\n }\n };\n }\n}\nexports.WalletContractV4 = WalletContractV4;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./v5beta/WalletContractV5Beta\"), exports);\n__exportStar(require(\"./v5beta/WalletV5BetaActions\"), exports);\n__exportStar(require(\"./v5beta/WalletV5BetaWalletId\"), exports);\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./v5r1/WalletContractV5R1\"), exports);\n__exportStar(require(\"./v5r1/WalletV5R1Actions\"), exports);\n__exportStar(require(\"./v5r1/WalletV5R1WalletId\"), exports);\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JettonMaster = void 0;\nconst core_1 = require(\"@ton/core\");\nclass JettonMaster {\n static create(address) {\n return new JettonMaster(address);\n }\n constructor(address) {\n this.address = address;\n }\n async getWalletAddress(provider, owner) {\n let res = await provider.get('get_wallet_address', [{ type: 'slice', cell: (0, core_1.beginCell)().storeAddress(owner).endCell() }]);\n return res.stack.readAddress();\n }\n async getJettonData(provider) {\n let res = await provider.get('get_jetton_data', []);\n let totalSupply = res.stack.readBigNumber();\n let mintable = res.stack.readBoolean();\n let adminAddress = res.stack.readAddress();\n let content = res.stack.readCell();\n let walletCode = res.stack.readCell();\n return {\n totalSupply,\n mintable,\n adminAddress,\n content,\n walletCode\n };\n }\n}\nexports.JettonMaster = JettonMaster;\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JettonWallet = void 0;\nclass JettonWallet {\n static create(address) {\n return new JettonWallet(address);\n }\n constructor(address) {\n this.address = address;\n }\n async getBalance(provider) {\n let state = await provider.getState();\n if (state.state.type !== 'active') {\n return 0n;\n }\n let res = await provider.get('get_wallet_data', []);\n return res.stack.readBigNumber();\n }\n}\nexports.JettonWallet = JettonWallet;\n","\"use strict\";\n/* Made by @Gusarich and @Miandic */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MultisigOrder = void 0;\nconst crypto_1 = require(\"@ton/crypto\");\nconst core_1 = require(\"@ton/core\");\nclass MultisigOrder {\n constructor(payload) {\n this.signatures = {};\n this.payload = payload;\n }\n static fromCell(cell) {\n let s = cell.beginParse();\n let signatures = s.loadMaybeRef()?.beginParse();\n const messagesCell = s.asCell();\n let order = new MultisigOrder(messagesCell);\n if (signatures) {\n while (signatures.remainingBits > 0) {\n const signature = signatures.loadBuffer(64);\n const ownerId = signatures.loadUint(8);\n order.signatures[ownerId] = signature;\n if (signatures.remainingRefs > 0) {\n signatures = signatures.loadRef().asSlice();\n }\n else {\n signatures.skip(1);\n }\n }\n signatures.endParse();\n }\n return order;\n }\n static fromPayload(payload) {\n return new MultisigOrder(payload);\n }\n addSignature(ownerId, signature, multisig) {\n const signingHash = this.payload.hash();\n if (!(0, crypto_1.signVerify)(signingHash, signature, multisig.owners.get(ownerId).slice(0, -1))) {\n throw Error('invalid signature');\n }\n this.signatures[ownerId] = signature;\n }\n sign(ownerId, secretKey) {\n const signingHash = this.payload.hash();\n this.signatures[ownerId] = (0, crypto_1.sign)(signingHash, secretKey);\n return signingHash;\n }\n unionSignatures(other) {\n this.signatures = Object.assign({}, this.signatures, other.signatures);\n }\n clearSignatures() {\n this.signatures = {};\n }\n toCell(ownerId) {\n let b = (0, core_1.beginCell)().storeBit(0);\n for (const ownerId in this.signatures) {\n const signature = this.signatures[ownerId];\n b = (0, core_1.beginCell)()\n .storeBit(1)\n .storeRef((0, core_1.beginCell)()\n .storeBuffer(signature)\n .storeUint(parseInt(ownerId), 8)\n .storeBuilder(b)\n .endCell());\n }\n return (0, core_1.beginCell)()\n .storeUint(ownerId, 8)\n .storeBuilder(b)\n .storeBuilder(this.payload.asBuilder())\n .endCell();\n }\n}\nexports.MultisigOrder = MultisigOrder;\n","\"use strict\";\n/* Made by @Gusarich and @Miandic */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MultisigOrderBuilder = void 0;\nconst core_1 = require(\"@ton/core\");\nconst MultisigOrder_1 = require(\"./MultisigOrder\");\nclass MultisigOrderBuilder {\n constructor(walletId, offset) {\n this.messages = (0, core_1.beginCell)();\n this.queryId = 0n;\n this.walletId = walletId;\n this.queryOffset = offset || 7200;\n }\n addMessage(message, mode) {\n if (this.messages.refs >= 4) {\n throw Error('only 4 refs are allowed');\n }\n this.updateQueryId();\n this.messages.storeUint(mode, 8);\n this.messages.storeRef((0, core_1.beginCell)().store((0, core_1.storeMessageRelaxed)(message)).endCell());\n }\n clearMessages() {\n this.messages = (0, core_1.beginCell)();\n }\n build() {\n return MultisigOrder_1.MultisigOrder.fromPayload((0, core_1.beginCell)()\n .storeUint(this.walletId, 32)\n .storeUint(this.queryId, 64)\n .storeBuilder(this.messages)\n .endCell());\n }\n updateQueryId() {\n const time = BigInt(Math.floor(Date.now() / 1000 + this.queryOffset));\n this.queryId = time << 32n;\n }\n}\nexports.MultisigOrderBuilder = MultisigOrderBuilder;\n","\"use strict\";\n/* Made by @Gusarich and @Miandic */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MultisigWallet = void 0;\nconst crypto_1 = require(\"@ton/crypto\");\nconst core_1 = require(\"@ton/core\");\nconst MULTISIG_CODE = core_1.Cell.fromBase64('te6ccgECKwEABBgAART/APSkE/S88sgLAQIBIAIDAgFIBAUE2vIgxwCOgzDbPOCDCNcYIPkBAdMH2zwiwAAToVNxePQOb6Hyn9s8VBq6+RDyoAb0BCD5AQHTH1EYuvKq0z9wUwHwCgHCCAGDCryx8mhTFYBA9A5voSCYDqQgwgryZw7f+COqH1NAufJhVCOjU04gIyEiAgLMBgcCASAMDQIBIAgJAgFmCgsAA9GEAiPymAvHoHN9CYbZ5S7Z4BPHohwhJQAtAKkItdJEqCTItdKlwLUAdAT8ArobBKAATwhbpEx4CBukTDgAdAg10rDAJrUAvALyFjPFszJ4HHXI8gBzxb0AMmACASAODwIBIBQVARW77ZbVA0cFUg2zyCoCAUgQEQIBIBITAXOxHXQgwjXGCD5AQHTB4IB1MTtQ9hTIHj0Dm+h8p/XC/9eMfkQ8qCuAfQEIW6TW3Ey4PkBWNs8AaQBgJwA9rtqA6ADoAPoCAXoCEfyAgPyA3XlP+AXkegAA54tkwAAXrhlXP8EA1WZ2oexAAgEgFhcCASAYGQFRtyVbZ4YmRmpGEAgegc30McJNhFpAADMaYeYuAFrgJhwLb+4cC3d0bhAjAYm1WZtnhqvgb+2xxsoicAgej430pBHEoFpAADHDhBACGuQkuuBk9kUWE5kAOeLKhACQCB6IYFImHFImHFImXEA2YlzNijAjAgEgGhsAF7UGtc4QQDVZnah7EAIBIBwdAgOZOB4fARGsGm2eL4G2CUAjABWt+UEAzJV2oewYQAENqTbPBVfBYCMAFa3f3CCAarM7UPYgAiDbPALyZfgAUENxQxPbPO1UIyoACtP/0wcwBKDbPC+uUyCw8mISsQKkJbNTHLmwJYEA4aojoCi8sPJpggGGoPgBBZcCERACPj4wjo0REB/bPEDXePRDEL0F4lQWW1Rz51YQU9zbPFRxClR6vCQlKCYAIO1E0NMf0wfTB9M/9AT0BNEAXgGOGjDSAAHyo9MH0wdQA9cBIPkBBfkBFbrypFAD4GwhIddKqgIi10m68qtwVCATAAwByMv/ywcE1ts87VT4D3AlblOJvrGYEG4QLVDHXwePGzBUJANQTds8UFWgRlAQSRA6SwlTuds8UFQWf+L4AAeDJaGOLCaAQPSWb6UglDBTA7neII4WODk5CNIAAZfTBzAW8AcFkTDifwgHBZJsMeKz5jAGKicoKQBgcI4pA9CDCNcY0wf0BDBTFnj0Dm+h8qXXC/9URUT5EPKmrlIgsVIDvRShI27mbCIyAH5SML6OIF8D+ACTItdKmALTB9QC+wAC6DJwyMoAQBSAQPRDAvAHjhdxyMsAFMsHEssHWM8BWM8WQBOAQPRDAeIBII6KEEUQNEMA2zztVJJfBuIqABzIyx/LB8sHyz/0APQAyQ==');\nclass MultisigWallet {\n constructor(publicKeys, workchain, walletId, k, opts) {\n this.provider = null;\n this.owners = core_1.Dictionary.empty();\n this.workchain = workchain;\n this.walletId = walletId;\n this.k = k;\n for (let i = 0; i < publicKeys.length; i += 1) {\n this.owners.set(i, Buffer.concat([publicKeys[i], Buffer.alloc(1)]));\n }\n this.init = {\n code: MULTISIG_CODE,\n data: (0, core_1.beginCell)()\n .storeUint(this.walletId, 32)\n .storeUint(this.owners.size, 8)\n .storeUint(this.k, 8)\n .storeUint(0, 64)\n .storeDict(this.owners, core_1.Dictionary.Keys.Uint(8), core_1.Dictionary.Values.Buffer(33))\n .storeBit(0)\n .endCell(),\n };\n this.address = opts?.address || (0, core_1.contractAddress)(workchain, this.init);\n if (opts?.provider) {\n this.provider = opts.provider;\n }\n else if (opts?.client) {\n this.provider = opts.client.provider(this.address, {\n code: this.init.code,\n data: this.init.data,\n });\n }\n }\n static async fromAddress(address, opts) {\n let provider;\n if (opts.provider) {\n provider = opts.provider;\n }\n else {\n if (!opts.client) {\n throw Error('Either provider or client must be specified');\n }\n provider = opts.client.provider(address, {\n code: null,\n data: null,\n });\n }\n const contractState = (await provider.getState()).state;\n if (contractState.type !== 'active') {\n throw Error('Contract must be active');\n }\n const data = core_1.Cell.fromBoc(contractState.data)[0].beginParse();\n const walletId = data.loadUint(32);\n data.skip(8);\n const k = data.loadUint(8);\n data.skip(64);\n const owners = data.loadDict(core_1.Dictionary.Keys.Uint(8), core_1.Dictionary.Values.Buffer(33));\n let publicKeys = [];\n for (const [key, value] of owners) {\n const publicKey = value.subarray(0, 32);\n publicKeys.push(publicKey);\n }\n return new MultisigWallet(publicKeys, address.workChain, walletId, k, {\n address,\n provider,\n client: opts.client,\n });\n }\n async deployExternal(provider) {\n if (!provider && !this.provider) {\n throw Error('you must specify provider if there is no such property in MultisigWallet instance');\n }\n if (!provider) {\n provider = this.provider;\n }\n await provider.external(core_1.Cell.EMPTY);\n }\n async deployInternal(sender, value = 1000000000n) {\n await sender.send({\n sendMode: core_1.SendMode.PAY_GAS_SEPARATELY + core_1.SendMode.IGNORE_ERRORS,\n to: this.address,\n value: value,\n init: this.init,\n body: core_1.Cell.EMPTY,\n bounce: true,\n });\n }\n async sendOrder(order, secretKey, provider) {\n if (!provider && !this.provider) {\n throw Error('you must specify provider if there is no such property in MultisigWallet instance');\n }\n if (!provider) {\n provider = this.provider;\n }\n let publicKey = (0, crypto_1.keyPairFromSecretKey)(secretKey).publicKey;\n let ownerId = this.getOwnerIdByPubkey(publicKey);\n let cell = order.toCell(ownerId);\n let signature = (0, crypto_1.sign)(cell.hash(), secretKey);\n cell = (0, core_1.beginCell)()\n .storeBuffer(signature)\n .storeSlice(cell.asSlice())\n .endCell();\n await provider.external(cell);\n }\n async sendOrderWithoutSecretKey(order, signature, ownerId, provider) {\n if (!provider && !this.provider) {\n throw Error('you must specify provider if there is no such property in MultisigWallet instance');\n }\n if (!provider) {\n provider = this.provider;\n }\n let cell = order.toCell(ownerId);\n cell = (0, core_1.beginCell)()\n .storeBuffer(signature)\n .storeSlice(cell.asSlice())\n .endCell();\n await provider.external(cell);\n }\n getOwnerIdByPubkey(publicKey) {\n for (const [key, value] of this.owners) {\n if (value.subarray(0, 32).equals(publicKey)) {\n return key;\n }\n }\n throw Error('public key is not an owner');\n }\n}\nexports.MultisigWallet = MultisigWallet;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ElectorContract = void 0;\nconst core_1 = require(\"@ton/core\");\nconst FrozenDictValue = {\n serialize(src, builder) {\n throw Error(\"not implemented\");\n },\n parse(src) {\n const address = new core_1.Address(-1, src.loadBuffer(32));\n const weight = src.loadUintBig(64);\n const stake = src.loadCoins();\n return { address, weight, stake };\n }\n};\nconst EntitiesDictValue = {\n serialize(src, builder) {\n throw Error(\"not implemented\");\n },\n parse(src) {\n const stake = src.loadCoins();\n // skip time and maxFactor\n src.skip(64);\n const address = new core_1.Address(-1, src.loadBuffer(32));\n const adnl = src.loadBuffer(32);\n return { stake, address, adnl };\n }\n};\nclass ElectorContract {\n //readonly source: ContractSource = new UnknownContractSource('org.ton.elector', -1, 'Elector Contract');\n static create() {\n return new ElectorContract();\n }\n constructor() {\n // Please note that we are NOT loading address from config to avoid mistake and send validator money to a wrong contract\n this.address = core_1.Address.parseRaw('-1:3333333333333333333333333333333333333333333333333333333333333333');\n }\n async getReturnedStake(provider, address) {\n if (address.workChain !== -1) {\n throw Error('Only masterchain addresses could have stake');\n }\n const res = await provider.get('compute_returned_stake', [{ type: 'int', value: BigInt('0x' + address.hash.toString('hex')) }]);\n return res.stack.readBigNumber();\n }\n async getPastElectionsList(provider) {\n const res = await provider.get('past_elections_list', []);\n const electionsListRaw = new core_1.TupleReader(res.stack.readLispList());\n const elections = [];\n while (electionsListRaw.remaining > 0) {\n const electionsListEntry = electionsListRaw.readTuple();\n const id = electionsListEntry.readNumber();\n const unfreezeAt = electionsListEntry.readNumber();\n electionsListEntry.pop(); // Ignore vset_hash\n const stakeHeld = electionsListEntry.readNumber();\n elections.push({ id, unfreezeAt, stakeHeld });\n }\n return elections;\n }\n async getPastElections(provider) {\n const res = await provider.get('past_elections', []);\n const electionsRaw = new core_1.TupleReader(res.stack.readLispList());\n const elections = [];\n while (electionsRaw.remaining > 0) {\n const electionsEntry = electionsRaw.readTuple();\n const id = electionsEntry.readNumber();\n const unfreezeAt = electionsEntry.readNumber();\n const stakeHeld = electionsEntry.readNumber();\n electionsEntry.pop(); // Ignore vset_hash\n const frozenDict = electionsEntry.readCell();\n const totalStake = electionsEntry.readBigNumber();\n const bonuses = electionsEntry.readBigNumber();\n let frozen = new Map();\n const frozenData = frozenDict.beginParse().loadDictDirect(core_1.Dictionary.Keys.Buffer(32), FrozenDictValue);\n for (const [key, value] of frozenData) {\n frozen.set(BigInt(\"0x\" + key.toString(\"hex\")).toString(10), { address: value[\"address\"], weight: value[\"weight\"], stake: value[\"stake\"] });\n }\n elections.push({ id, unfreezeAt, stakeHeld, totalStake, bonuses, frozen });\n }\n return elections;\n }\n async getElectionEntities(provider) {\n //\n // NOTE: this method doesn't call get method since for some reason it doesn't work\n //\n const account = await provider.getState();\n if (account.state.type !== 'active') {\n throw Error('Unexpected error');\n }\n const cell = core_1.Cell.fromBoc(account.state.data)[0];\n const cs = cell.beginParse();\n if (!cs.loadBit()) {\n return null;\n }\n // (es~load_uint(32), es~load_uint(32), es~load_grams(), es~load_grams(), es~load_dict(), es~load_int(1), es~load_int(1));\n const sc = cs.loadRef().beginParse();\n const startWorkTime = sc.loadUint(32);\n const endElectionsTime = sc.loadUint(32);\n const minStake = sc.loadCoins();\n const allStakes = sc.loadCoins();\n // var (stake, time, max_factor, addr, adnl_addr) = (cs~load_grams(), cs~load_uint(32), cs~load_uint(32), cs~load_uint(256), cs~load_uint(256));\n const entitiesData = sc.loadDict(core_1.Dictionary.Keys.Buffer(32), EntitiesDictValue);\n let entities = [];\n // const failed = sc.loadBit();\n // const finished = sc.loadBit();\n if (entitiesData) {\n for (const [key, value] of entitiesData) {\n entities.push({ pubkey: key, stake: value[\"stake\"], address: value[\"address\"], adnl: value[\"adnl\"] });\n }\n }\n return { minStake, allStakes, endElectionsTime, startWorkTime, entities };\n }\n // possible code for fetching data via get method if it is possible to set gas limit by request\n // async getElectionEntities(block: number) {\n // const res = await this.client.runMethod(block, this.address, 'participant_list_extended');\n // if (res.exitCode !== 0 && res.exitCode !== 1) {\n // throw Error('Exit code: ' + res.exitCode);\n // }\n // let tuple = new TupleReader(res.result);\n // const startWorkTime = tuple.readNumber();\n // const endElectionsTime = tuple.readNumber();\n // const minStake = tuple.readBigNumber();\n // const allStakes = tuple.readBigNumber();\n // let entriesTuple = tuple.readTuple();\n // const entriesRaw = new TupleReader(entriesTuple.readLispList());\n // let entities: { pubkey: Buffer, stake: bigint, address: Address, adnl: Buffer }[] = [];\n // while (entriesRaw.remaining > 0) {\n // const electionsEntry = entriesRaw.readTuple();\n // const pubkey = electionsEntry.readBuffer();\n // const stake = electionsEntry.readBigNumber();\n // const address = electionsEntry.readAddress();\n // const adnl = electionsEntry.readBuffer();\n // entities.push({ pubkey, stake, address, adnl });\n // }\n // return { minStake, allStakes, endElectionsTime, startWorkTime, entities };\n // }\n async getActiveElectionId(provider) {\n const res = await provider.get('active_election_id', []);\n const electionId = res.stack.readNumber();\n return electionId > 0 ? electionId : null;\n }\n async getComplaints(provider, electionId) {\n const b = new core_1.TupleBuilder();\n b.writeNumber(electionId);\n const res = await provider.get('list_complaints', b.build());\n if (res.stack.peek().type === 'null') {\n return [];\n }\n //let tuple = new TupleReader(res.result);\n const complaintsRaw = new core_1.TupleReader(res.stack.readLispList());\n const results = [];\n while (complaintsRaw.remaining > 0) {\n const complaintsEntry = complaintsRaw.readTuple();\n const id = complaintsEntry.readBigNumber();\n const completeUnpackedComplaint = complaintsEntry.readTuple();\n const unpackedComplaints = completeUnpackedComplaint.readTuple();\n const publicKey = Buffer.from(unpackedComplaints.readBigNumber().toString(16), 'hex');\n // prod_info#34 utime:uint32 mc_blk_ref:ExtBlkRef state_proof:^(MERKLE_PROOF Block)\n // prod_proof:^(MERKLE_PROOF ShardState) = ProducerInfo;\n // no_blk_gen from_utime:uint32 prod_info:^ProducerInfo = ComplaintDescr;\n // no_blk_gen_diff prod_info_old:^ProducerInfo prod_info_new:^ProducerInfo = ComplaintDescr;\n const description = unpackedComplaints.readCell();\n const createdAt = unpackedComplaints.readNumber();\n const severity = unpackedComplaints.readNumber();\n const rewardAddress = new core_1.Address(-1, Buffer.from(unpackedComplaints.readBigNumber().toString(16), 'hex'));\n const paid = unpackedComplaints.readBigNumber();\n const suggestedFine = unpackedComplaints.readBigNumber();\n const suggestedFinePart = unpackedComplaints.readBigNumber();\n const votes = [];\n const votersListRaw = new core_1.TupleReader(completeUnpackedComplaint.readLispList());\n while (votersListRaw.remaining > 0) {\n votes.push(votersListRaw.readNumber());\n }\n const vsetId = completeUnpackedComplaint.readBigNumber();\n const remainingWeight = completeUnpackedComplaint.readBigNumber();\n results.push({\n id,\n publicKey,\n createdAt,\n severity,\n paid,\n suggestedFine,\n suggestedFinePart,\n rewardAddress,\n votes,\n remainingWeight,\n vsetId\n });\n }\n return results;\n }\n}\nexports.ElectorContract = ElectorContract;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.configParseMasterAddress = configParseMasterAddress;\nexports.parseValidatorSet = parseValidatorSet;\nexports.parseBridge = parseBridge;\nexports.configParseMasterAddressRequired = configParseMasterAddressRequired;\nexports.configParse5 = configParse5;\nexports.configParse13 = configParse13;\nexports.configParse15 = configParse15;\nexports.configParse16 = configParse16;\nexports.configParse17 = configParse17;\nexports.configParse18 = configParse18;\nexports.configParse8 = configParse8;\nexports.configParse40 = configParse40;\nexports.configParseWorkchainDescriptor = configParseWorkchainDescriptor;\nexports.configParse12 = configParse12;\nexports.configParseValidatorSet = configParseValidatorSet;\nexports.configParseBridge = configParseBridge;\nexports.configParseGasLimitsPrices = configParseGasLimitsPrices;\nexports.configParseMsgPrices = configParseMsgPrices;\nexports.configParse28 = configParse28;\nexports.configParse29 = configParse29;\nexports.parseProposalSetup = parseProposalSetup;\nexports.parseVotingSetup = parseVotingSetup;\nexports.loadConfigParamById = loadConfigParamById;\nexports.loadConfigParamsAsSlice = loadConfigParamsAsSlice;\nexports.parseFullConfig = parseFullConfig;\nconst core_1 = require(\"@ton/core\");\nfunction configParseMasterAddress(slice) {\n if (slice) {\n return new core_1.Address(-1, slice.loadBuffer(32));\n }\n else {\n return null;\n }\n}\nfunction readPublicKey(slice) {\n // 8e81278a\n if (slice.loadUint(32) !== 0x8e81278a) {\n throw Error('Invalid config');\n }\n return slice.loadBuffer(32);\n}\nconst ValidatorDescriptionDictValue = {\n serialize(src, builder) {\n throw Error(\"not implemented\");\n },\n parse(src) {\n const header = src.loadUint(8);\n if (header === 0x53) {\n return {\n publicKey: readPublicKey(src),\n weight: src.loadUintBig(64),\n adnlAddress: null\n };\n }\n else if (header === 0x73) {\n return {\n publicKey: readPublicKey(src),\n weight: src.loadUintBig(64),\n adnlAddress: src.loadBuffer(32)\n };\n }\n else {\n throw Error('Invalid config');\n }\n }\n};\nfunction parseValidatorSet(slice) {\n const header = slice.loadUint(8);\n if (header === 0x11) {\n const timeSince = slice.loadUint(32);\n const timeUntil = slice.loadUint(32);\n const total = slice.loadUint(16);\n const main = slice.loadUint(16);\n const list = slice.loadDictDirect(core_1.Dictionary.Keys.Uint(16), ValidatorDescriptionDictValue);\n return {\n timeSince,\n timeUntil,\n total,\n main,\n totalWeight: null,\n list\n };\n }\n else if (header === 0x12) {\n const timeSince = slice.loadUint(32);\n const timeUntil = slice.loadUint(32);\n const total = slice.loadUint(16);\n const main = slice.loadUint(16);\n const totalWeight = slice.loadUintBig(64);\n const list = slice.loadDict(core_1.Dictionary.Keys.Uint(16), ValidatorDescriptionDictValue);\n return {\n timeSince,\n timeUntil,\n total,\n main,\n totalWeight,\n list\n };\n }\n}\nfunction parseBridge(slice) {\n const bridgeAddress = new core_1.Address(-1, slice.loadBuffer(32));\n const oracleMultisigAddress = new core_1.Address(-1, slice.loadBuffer(32));\n const oraclesDict = slice.loadDict(core_1.Dictionary.Keys.Buffer(32), core_1.Dictionary.Values.Buffer(32));\n const oracles = new Map();\n for (const [local, remote] of oraclesDict) {\n oracles.set(new core_1.Address(-1, local).toString(), remote);\n }\n const externalChainAddress = slice.loadBuffer(32);\n return {\n bridgeAddress,\n oracleMultisigAddress,\n oracles,\n externalChainAddress\n };\n}\nfunction configParseMasterAddressRequired(slice) {\n if (!slice) {\n throw Error('Invalid config');\n }\n return configParseMasterAddress(slice);\n}\nfunction configParse5(slice) {\n if (!slice) {\n throw Error('Invalid config');\n }\n const magic = slice.loadUint(8);\n if (magic === 0x01) {\n const blackholeAddr = slice.loadBit() ? new core_1.Address(-1, slice.loadBuffer(32)) : null;\n const feeBurnNominator = slice.loadUint(32);\n const feeBurnDenominator = slice.loadUint(32);\n return {\n blackholeAddr,\n feeBurnNominator,\n feeBurnDenominator\n };\n }\n throw new Error('Invalid config');\n}\nfunction configParse13(slice) {\n if (!slice) {\n throw Error('Invalid config');\n }\n const magic = slice.loadUint(8);\n if (magic === 0x1a) {\n const deposit = slice.loadCoins();\n const bitPrice = slice.loadCoins();\n const cellPrice = slice.loadCoins();\n return {\n deposit,\n bitPrice,\n cellPrice\n };\n }\n throw new Error('Invalid config');\n}\nfunction configParse15(slice) {\n if (!slice) {\n throw Error('Invalid config');\n }\n const validatorsElectedFor = slice.loadUint(32);\n const electorsStartBefore = slice.loadUint(32);\n const electorsEndBefore = slice.loadUint(32);\n const stakeHeldFor = slice.loadUint(32);\n return {\n validatorsElectedFor,\n electorsStartBefore,\n electorsEndBefore,\n stakeHeldFor\n };\n}\nfunction configParse16(slice) {\n if (!slice) {\n throw Error('Invalid config');\n }\n const maxValidators = slice.loadUint(16);\n const maxMainValidators = slice.loadUint(16);\n const minValidators = slice.loadUint(16);\n return {\n maxValidators,\n maxMainValidators,\n minValidators\n };\n}\nfunction configParse17(slice) {\n if (!slice) {\n throw Error('Invalid config');\n }\n const minStake = slice.loadCoins();\n const maxStake = slice.loadCoins();\n const minTotalStake = slice.loadCoins();\n const maxStakeFactor = slice.loadUint(32);\n return {\n minStake,\n maxStake,\n minTotalStake,\n maxStakeFactor\n };\n}\nconst StoragePricesDictValue = {\n serialize(src, builder) {\n throw Error(\"not implemented\");\n },\n parse(src) {\n const header = src.loadUint(8);\n if (header !== 0xcc) {\n throw Error('Invalid config');\n }\n const utime_since = src.loadUint(32);\n const bit_price_ps = src.loadUintBig(64);\n const cell_price_ps = src.loadUintBig(64);\n const mc_bit_price_ps = src.loadUintBig(64);\n const mc_cell_price_ps = src.loadUintBig(64);\n return {\n utime_since,\n bit_price_ps,\n cell_price_ps,\n mc_bit_price_ps,\n mc_cell_price_ps\n };\n }\n};\nfunction configParse18(slice) {\n if (!slice) {\n throw Error('Invalid config');\n }\n return slice.loadDictDirect(core_1.Dictionary.Keys.Buffer(4), StoragePricesDictValue).values();\n}\nfunction configParse8(slice) {\n if (!slice) {\n return {\n version: 0,\n capabilities: 0n\n };\n }\n const version = slice.loadUint(32);\n const capabilities = slice.loadUintBig(64);\n return {\n version,\n capabilities\n };\n}\nfunction configParse40(slice) {\n if (!slice) {\n return null;\n }\n const header = slice.loadUint(8);\n if (header !== 1) {\n throw Error('Invalid config');\n }\n const defaultFlatFine = slice.loadCoins();\n const defaultProportionaFine = slice.loadCoins();\n const severityFlatMult = slice.loadUint(16);\n const severityProportionalMult = slice.loadUint(16);\n const unfunishableInterval = slice.loadUint(16);\n const longInterval = slice.loadUint(16);\n const longFlatMult = slice.loadUint(16);\n const longProportionalMult = slice.loadUint(16);\n const mediumInterval = slice.loadUint(16);\n const mediumFlatMult = slice.loadUint(16);\n const mediumProportionalMult = slice.loadUint(16);\n return {\n defaultFlatFine,\n defaultProportionaFine,\n severityFlatMult,\n severityProportionalMult,\n unfunishableInterval,\n longInterval,\n longFlatMult,\n longProportionalMult,\n mediumInterval,\n mediumFlatMult,\n mediumProportionalMult\n };\n}\nfunction configParseWorkchainDescriptor(slice) {\n if (slice.loadUint(8) !== 0xA6) {\n throw Error('Invalid config');\n }\n const enabledSince = slice.loadUint(32);\n const actialMinSplit = slice.loadUint(8);\n const min_split = slice.loadUint(8);\n const max_split = slice.loadUint(8);\n const basic = slice.loadBit();\n const active = slice.loadBit();\n const accept_msgs = slice.loadBit();\n const flags = slice.loadUint(13);\n const zerostateRootHash = slice.loadBuffer(32);\n const zerostateFileHash = slice.loadBuffer(32);\n const version = slice.loadUint(32);\n // Only basic format supported\n if (slice.loadBit()) {\n throw Error('Invalid config');\n }\n const vmVersion = slice.loadUint(32);\n const vmMode = slice.loadUintBig(64);\n return {\n enabledSince,\n actialMinSplit,\n min_split,\n max_split,\n basic,\n active,\n accept_msgs,\n flags,\n zerostateRootHash,\n zerostateFileHash,\n version,\n format: {\n vmVersion,\n vmMode\n }\n };\n}\nconst WorkchainDescriptorDictValue = {\n serialize(src, builder) {\n throw Error(\"not implemented\");\n },\n parse(src) {\n if (src.loadUint(8) !== 0xA6) {\n throw Error('Invalid config');\n }\n const enabledSince = src.loadUint(32);\n const actialMinSplit = src.loadUint(8);\n const min_split = src.loadUint(8);\n const max_split = src.loadUint(8);\n const basic = src.loadBit();\n const active = src.loadBit();\n const accept_msgs = src.loadBit();\n const flags = src.loadUint(13);\n const zerostateRootHash = src.loadBuffer(32);\n const zerostateFileHash = src.loadBuffer(32);\n const version = src.loadUint(32);\n // Only basic format supported\n if (src.loadBit()) {\n throw Error('Invalid config');\n }\n const vmVersion = src.loadUint(32);\n const vmMode = src.loadUintBig(64);\n return {\n enabledSince,\n actialMinSplit,\n min_split,\n max_split,\n basic,\n active,\n accept_msgs,\n flags,\n zerostateRootHash,\n zerostateFileHash,\n version,\n format: {\n vmVersion,\n vmMode\n }\n };\n }\n};\nfunction configParse12(slice) {\n if (!slice) {\n throw Error('Invalid config');\n }\n const wd = slice.loadDict(core_1.Dictionary.Keys.Uint(32), WorkchainDescriptorDictValue);\n if (wd) {\n return wd;\n }\n throw Error('No workchains exist');\n}\nfunction configParseValidatorSet(slice) {\n if (!slice) {\n return null;\n }\n return parseValidatorSet(slice);\n}\nfunction configParseBridge(slice) {\n if (!slice) {\n return null;\n }\n return parseBridge(slice);\n}\nfunction parseGasLimitsInternal(slice) {\n const tag = slice.loadUint(8);\n if (tag === 0xde) {\n const gasPrice = slice.loadUintBig(64);\n const gasLimit = slice.loadUintBig(64);\n const specialGasLimit = slice.loadUintBig(64);\n const gasCredit = slice.loadUintBig(64);\n const blockGasLimit = slice.loadUintBig(64);\n const freezeDueLimit = slice.loadUintBig(64);\n const deleteDueLimit = slice.loadUintBig(64);\n return {\n gasPrice,\n gasLimit,\n specialGasLimit,\n gasCredit,\n blockGasLimit,\n freezeDueLimit,\n deleteDueLimit\n };\n }\n else if (tag === 0xdd) {\n const gasPrice = slice.loadUintBig(64);\n const gasLimit = slice.loadUintBig(64);\n const gasCredit = slice.loadUintBig(64);\n const blockGasLimit = slice.loadUintBig(64);\n const freezeDueLimit = slice.loadUintBig(64);\n const deleteDueLimit = slice.loadUintBig(64);\n return {\n gasPrice,\n gasLimit,\n gasCredit,\n blockGasLimit,\n freezeDueLimit,\n deleteDueLimit\n };\n }\n else {\n throw Error('Invalid config');\n }\n}\nfunction configParseGasLimitsPrices(slice) {\n if (!slice) {\n throw Error('Invalid config');\n }\n const tag = slice.loadUint(8);\n if (tag === 0xd1) {\n const flatLimit = slice.loadUintBig(64);\n const flatGasPrice = slice.loadUintBig(64);\n const other = parseGasLimitsInternal(slice);\n return {\n flatLimit,\n flatGasPrice,\n other\n };\n }\n else {\n throw Error('Invalid config');\n }\n}\nfunction configParseMsgPrices(slice) {\n if (!slice) {\n throw new Error('Invalid config');\n }\n const magic = slice.loadUint(8);\n if (magic !== 0xea) {\n throw new Error('Invalid msg prices param');\n }\n return {\n lumpPrice: slice.loadUintBig(64),\n bitPrice: slice.loadUintBig(64),\n cellPrice: slice.loadUintBig(64),\n ihrPriceFactor: slice.loadUint(32),\n firstFrac: slice.loadUint(16),\n nextFrac: slice.loadUint(16)\n };\n}\n// catchain_config#c1 mc_catchain_lifetime:uint32 shard_catchain_lifetime:uint32 \n// shard_validators_lifetime:uint32 shard_validators_num:uint32 = CatchainConfig;\n// catchain_config_new#c2 flags:(## 7) { flags = 0 } shuffle_mc_validators:Bool\n// mc_catchain_lifetime:uint32 shard_catchain_lifetime:uint32\n// shard_validators_lifetime:uint32 shard_validators_num:uint32 = CatchainConfig;\nfunction configParse28(slice) {\n if (!slice) {\n throw new Error('Invalid config');\n }\n const magic = slice.loadUint(8);\n if (magic === 0xc1) {\n const masterCatchainLifetime = slice.loadUint(32);\n const shardCatchainLifetime = slice.loadUint(32);\n const shardValidatorsLifetime = slice.loadUint(32);\n const shardValidatorsCount = slice.loadUint(32);\n return {\n masterCatchainLifetime,\n shardCatchainLifetime,\n shardValidatorsLifetime,\n shardValidatorsCount\n };\n }\n if (magic === 0xc2) {\n const flags = slice.loadUint(7);\n const suffleMasterValidators = slice.loadBit();\n const masterCatchainLifetime = slice.loadUint(32);\n const shardCatchainLifetime = slice.loadUint(32);\n const shardValidatorsLifetime = slice.loadUint(32);\n const shardValidatorsCount = slice.loadUint(32);\n return {\n flags,\n suffleMasterValidators,\n masterCatchainLifetime,\n shardCatchainLifetime,\n shardValidatorsLifetime,\n shardValidatorsCount\n };\n }\n throw new Error('Invalid config');\n}\n// consensus_config#d6 round_candidates:# { round_candidates >= 1 }\n// next_candidate_delay_ms:uint32 consensus_timeout_ms:uint32\n// fast_attempts:uint32 attempt_duration:uint32 catchain_max_deps:uint32\n// max_block_bytes:uint32 max_collated_bytes:uint32 = ConsensusConfig;\n// consensus_config_new#d7 flags:(## 7) { flags = 0 } new_catchain_ids:Bool\n// round_candidates:(## 8) { round_candidates >= 1 }\n// next_candidate_delay_ms:uint32 consensus_timeout_ms:uint32\n// fast_attempts:uint32 attempt_duration:uint32 catchain_max_deps:uint32\n// max_block_bytes:uint32 max_collated_bytes:uint32 = ConsensusConfig;\n// consensus_config_v3#d8 flags:(## 7) { flags = 0 } new_catchain_ids:Bool\n// round_candidates:(## 8) { round_candidates >= 1 }\n// next_candidate_delay_ms:uint32 consensus_timeout_ms:uint32\n// fast_attempts:uint32 attempt_duration:uint32 catchain_max_deps:uint32\n// max_block_bytes:uint32 max_collated_bytes:uint32 \n// proto_version:uint16 = ConsensusConfig;\nfunction configParse29(slice) {\n if (!slice) {\n throw new Error('Invalid config');\n }\n const magic = slice.loadUint(8);\n if (magic === 0xd6) {\n const roundCandidates = slice.loadUint(32);\n const nextCandidateDelay = slice.loadUint(32);\n const consensusTimeout = slice.loadUint(32);\n const fastAttempts = slice.loadUint(32);\n const attemptDuration = slice.loadUint(32);\n const catchainMaxDeps = slice.loadUint(32);\n const maxBlockBytes = slice.loadUint(32);\n const maxColaltedBytes = slice.loadUint(32);\n return {\n roundCandidates,\n nextCandidateDelay,\n consensusTimeout,\n fastAttempts,\n attemptDuration,\n catchainMaxDeps,\n maxBlockBytes,\n maxColaltedBytes\n };\n }\n else if (magic === 0xd7) {\n const flags = slice.loadUint(7);\n const newCatchainIds = slice.loadBit();\n const roundCandidates = slice.loadUint(8);\n const nextCandidateDelay = slice.loadUint(32);\n const consensusTimeout = slice.loadUint(32);\n const fastAttempts = slice.loadUint(32);\n const attemptDuration = slice.loadUint(32);\n const catchainMaxDeps = slice.loadUint(32);\n const maxBlockBytes = slice.loadUint(32);\n const maxColaltedBytes = slice.loadUint(32);\n return {\n flags,\n newCatchainIds,\n roundCandidates,\n nextCandidateDelay,\n consensusTimeout,\n fastAttempts,\n attemptDuration,\n catchainMaxDeps,\n maxBlockBytes,\n maxColaltedBytes\n };\n }\n else if (magic === 0xd8) {\n const flags = slice.loadUint(7);\n const newCatchainIds = slice.loadBit();\n const roundCandidates = slice.loadUint(8);\n const nextCandidateDelay = slice.loadUint(32);\n const consensusTimeout = slice.loadUint(32);\n const fastAttempts = slice.loadUint(32);\n const attemptDuration = slice.loadUint(32);\n const catchainMaxDeps = slice.loadUint(32);\n const maxBlockBytes = slice.loadUint(32);\n const maxColaltedBytes = slice.loadUint(32);\n const protoVersion = slice.loadUint(16);\n return {\n flags,\n newCatchainIds,\n roundCandidates,\n nextCandidateDelay,\n consensusTimeout,\n fastAttempts,\n attemptDuration,\n catchainMaxDeps,\n maxBlockBytes,\n maxColaltedBytes,\n protoVersion\n };\n }\n else if (magic === 0xd9) {\n const flags = slice.loadUint(7);\n const newCatchainIds = slice.loadBit();\n const roundCandidates = slice.loadUint(8);\n const nextCandidateDelay = slice.loadUint(32);\n const consensusTimeout = slice.loadUint(32);\n const fastAttempts = slice.loadUint(32);\n const attemptDuration = slice.loadUint(32);\n const catchainMaxDeps = slice.loadUint(32);\n const maxBlockBytes = slice.loadUint(32);\n const maxColaltedBytes = slice.loadUint(32);\n const protoVersion = slice.loadUint(16);\n const catchainMaxBlocksCoeff = slice.loadUint(32);\n return {\n flags,\n newCatchainIds,\n roundCandidates,\n nextCandidateDelay,\n consensusTimeout,\n fastAttempts,\n attemptDuration,\n catchainMaxDeps,\n maxBlockBytes,\n maxColaltedBytes,\n protoVersion,\n catchainMaxBlocksCoeff\n };\n }\n throw new Error('Invalid config');\n}\n// cfg_vote_cfg#36 min_tot_rounds:uint8 max_tot_rounds:uint8 min_wins:uint8 max_losses:uint8 min_store_sec:uint32 max_store_sec:uint32 bit_price:uint32 cell_price:uint32 = ConfigProposalSetup;\nfunction parseProposalSetup(slice) {\n const magic = slice.loadUint(8);\n if (magic !== 0x36) {\n throw new Error('Invalid config');\n }\n const minTotalRounds = slice.loadUint(8);\n const maxTotalRounds = slice.loadUint(8);\n const minWins = slice.loadUint(8);\n const maxLoses = slice.loadUint(8);\n const minStoreSec = slice.loadUint(32);\n const maxStoreSec = slice.loadUint(32);\n const bitPrice = slice.loadUint(32);\n const cellPrice = slice.loadUint(32);\n return { minTotalRounds, maxTotalRounds, minWins, maxLoses, minStoreSec, maxStoreSec, bitPrice, cellPrice };\n}\n// cfg_vote_setup#91 normal_params:^ConfigProposalSetup critical_params:^ConfigProposalSetup = ConfigVotingSetup;\nfunction parseVotingSetup(slice) {\n if (!slice) {\n throw new Error('Invalid config');\n }\n const magic = slice.loadUint(8);\n if (magic !== 0x91) {\n throw new Error('Invalid config');\n }\n const normalParams = parseProposalSetup(slice.loadRef().beginParse());\n const criticalParams = parseProposalSetup(slice.loadRef().beginParse());\n return { normalParams, criticalParams };\n}\nfunction loadConfigParams(configBase64) {\n const comfigMap = core_1.Cell.fromBase64(configBase64).beginParse().loadDictDirect(core_1.Dictionary.Keys.Int(32), core_1.Dictionary.Values.Cell());\n return comfigMap;\n}\nfunction loadConfigParamById(configBase64, id) {\n return loadConfigParams(configBase64).get(id);\n}\nfunction loadConfigParamsAsSlice(configBase64) {\n const pramsAsCells = loadConfigParams(configBase64);\n const params = new Map();\n for (const [key, value] of pramsAsCells) {\n params.set(key, value.beginParse());\n }\n return params;\n}\nfunction parseFullConfig(configs) {\n return {\n configAddress: configParseMasterAddressRequired(configs.get(0)),\n electorAddress: configParseMasterAddressRequired(configs.get(1)),\n minterAddress: configParseMasterAddress(configs.get(2)),\n feeCollectorAddress: configParseMasterAddress(configs.get(3)),\n dnsRootAddress: configParseMasterAddress(configs.get(4)),\n burningConfig: configParse5(configs.get(5)),\n globalVersion: configParse8(configs.get(8)),\n workchains: configParse12(configs.get(12)),\n voting: parseVotingSetup(configs.get(11)),\n validators: {\n ...configParse15(configs.get(15)),\n ...configParse16(configs.get(16)),\n ...configParse17(configs.get(17))\n },\n storagePrices: configParse18(configs.get(18)),\n gasPrices: {\n masterchain: configParseGasLimitsPrices(configs.get(20)),\n workchain: configParseGasLimitsPrices(configs.get(21)),\n },\n msgPrices: {\n masterchain: configParseMsgPrices(configs.get(24)),\n workchain: configParseMsgPrices(configs.get(25)),\n },\n validatorSets: {\n prevValidators: configParseValidatorSet(configs.get(32)),\n prevTempValidators: configParseValidatorSet(configs.get(33)),\n currentValidators: configParseValidatorSet(configs.get(34)),\n currentTempValidators: configParseValidatorSet(configs.get(35)),\n nextValidators: configParseValidatorSet(configs.get(36)),\n nextTempValidators: configParseValidatorSet(configs.get(37))\n },\n validatorsPunish: configParse40(configs.get(40)),\n bridges: {\n ethereum: configParseBridge(configs.get(71)),\n binance: configParseBridge(configs.get(72)),\n polygon: configParseBridge(configs.get(73))\n },\n catchain: configParse28(configs.get(28)),\n consensus: configParse29(configs.get(29))\n // TODO: mint_new_price:Grams mint_add_price:Grams = ConfigParam 6;\n // TODO: to_mint:ExtraCurrencyCollection = ConfigParam 7\n // TODO: mandatory_params:(Hashmap 32 True) = ConfigParam 9\n // TODO: critical_params:(Hashmap 32 True) = ConfigParam 10\n // TODO: BlockCreateFees = ConfigParam 14\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.computeStorageFees = computeStorageFees;\nexports.computeFwdFees = computeFwdFees;\nexports.computeGasPrices = computeGasPrices;\nexports.computeExternalMessageFees = computeExternalMessageFees;\nexports.computeMessageForwardFees = computeMessageForwardFees;\nconst core_1 = require(\"@ton/core\");\n//\n// Source: https://github.com/ton-foundation/ton/blob/ae5c0720143e231c32c3d2034cfe4e533a16d969/crypto/block/transaction.cpp#L425\n//\nfunction computeStorageFees(data) {\n const { lastPaid, now, storagePrices, storageStat, special, masterchain } = data;\n if (now <= lastPaid || storagePrices.length === 0 || now < storagePrices[0].utime_since || special) {\n return BigInt(0);\n }\n let upto = Math.max(lastPaid, storagePrices[0].utime_since);\n let total = BigInt(0);\n for (let i = 0; i < storagePrices.length && upto < now; i++) {\n let valid_until = (i < storagePrices.length - 1 ? Math.min(now, storagePrices[i + 1].utime_since) : now);\n let payment = BigInt(0);\n if (upto < valid_until) {\n let delta = valid_until - upto;\n payment += (BigInt(storageStat.cells) * (masterchain ? storagePrices[i].mc_cell_price_ps : storagePrices[i].cell_price_ps));\n payment += (BigInt(storageStat.bits) * (masterchain ? storagePrices[i].mc_bit_price_ps : storagePrices[i].bit_price_ps));\n payment = payment * BigInt(delta);\n }\n upto = valid_until;\n total += payment;\n }\n return shr16ceil(total);\n}\n//\n// Source: https://github.com/ton-foundation/ton/blob/ae5c0720143e231c32c3d2034cfe4e533a16d969/crypto/block/transaction.cpp#L1218\n//\nfunction computeFwdFees(msgPrices, cells, bits) {\n return msgPrices.lumpPrice + (shr16ceil(msgPrices.bitPrice * bits + (msgPrices.cellPrice * cells)));\n}\n//\n// Source: https://github.com/ton-foundation/ton/blob/ae5c0720143e231c32c3d2034cfe4e533a16d969/crypto/block/transaction.cpp#L761\n//\nfunction computeGasPrices(gasUsed, prices) {\n if (gasUsed <= prices.flatLimit) {\n return prices.flatPrice;\n }\n else {\n // td::rshift(gas_price256 * (gas_used - cfg.flat_gas_limit), 16, 1) + cfg.flat_gas_price\n return prices.flatPrice + ((prices.price * (gasUsed - prices.flatLimit)) >> 16n);\n }\n}\n//\n// Source: https://github.com/ton-foundation/ton/blob/ae5c0720143e231c32c3d2034cfe4e533a16d969/crypto/block/transaction.cpp#L530\n//\nfunction computeExternalMessageFees(msgPrices, cell) {\n // Collect stats\n let storageStats = collectCellStats(cell);\n storageStats.bits -= cell.bits.length;\n storageStats.cells -= 1;\n return computeFwdFees(msgPrices, BigInt(storageStats.cells), BigInt(storageStats.bits));\n}\nfunction computeMessageForwardFees(msgPrices, cell) {\n let msg = (0, core_1.loadMessageRelaxed)(cell.beginParse());\n let storageStats = { bits: 0, cells: 0 };\n // Init\n if (msg.init) {\n const rawBuilder = new core_1.Cell().asBuilder();\n (0, core_1.storeStateInit)(msg.init)(rawBuilder);\n const raw = rawBuilder.endCell();\n let c = collectCellStats(raw);\n c.bits -= raw.bits.length;\n c.cells -= 1;\n storageStats.bits += c.bits;\n storageStats.cells += c.cells;\n }\n // Body\n let bc = collectCellStats(msg.body);\n bc.bits -= msg.body.bits.length;\n bc.cells -= 1;\n storageStats.bits += bc.bits;\n storageStats.cells += bc.cells;\n // NOTE: Extra currencies are ignored for now\n let fees = computeFwdFees(msgPrices, BigInt(storageStats.cells), BigInt(storageStats.bits));\n let res = (fees * BigInt(msgPrices.firstFrac)) >> 16n;\n let remaining = fees - res;\n return { fees: res, remaining };\n}\nfunction collectCellStats(cell) {\n let bits = cell.bits.length;\n let cells = 1;\n for (let ref of cell.refs) {\n let r = collectCellStats(ref);\n cells += r.cells;\n bits += r.bits;\n }\n return { bits, cells };\n}\nfunction shr16ceil(src) {\n let rem = src % 65536n;\n let res = src >> 16n;\n if (rem !== 0n) {\n res += 1n;\n }\n return res;\n}\n","\"use strict\";\n/**\n * Copyright (c) Whales Corp.\n * All Rights Reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.computeStorageFees = exports.computeMessageForwardFees = exports.computeGasPrices = exports.computeFwdFees = exports.computeExternalMessageFees = exports.loadConfigParamsAsSlice = exports.loadConfigParamById = exports.parseFullConfig = exports.parseVotingSetup = exports.parseValidatorSet = exports.parseProposalSetup = exports.parseBridge = exports.configParseWorkchainDescriptor = exports.configParseValidatorSet = exports.configParseMsgPrices = exports.configParseMasterAddressRequired = exports.configParseMasterAddress = exports.configParseGasLimitsPrices = exports.configParseBridge = exports.configParse40 = exports.configParse29 = exports.configParse28 = exports.configParse18 = exports.configParse17 = exports.configParse16 = exports.configParse15 = exports.configParse13 = exports.configParse12 = exports.configParse8 = exports.configParse5 = exports.ElectorContract = exports.MultisigWallet = exports.MultisigOrderBuilder = exports.MultisigOrder = exports.JettonWallet = exports.JettonMaster = exports.WalletContractV5R1 = exports.WalletContractV5Beta = exports.WalletContractV4 = exports.WalletContractV3R2 = exports.WalletContractV3R1 = exports.WalletContractV2R2 = exports.WalletContractV2R1 = exports.WalletContractV1R3 = exports.WalletContractV1R2 = exports.WalletContractV1R1 = exports.TonClient4 = exports.TonClient = exports.HttpApi = void 0;\n__exportStar(require(\"@ton/core\"), exports);\n//\n// toncenter Client\n//\nvar HttpApi_1 = require(\"./client/api/HttpApi\");\nObject.defineProperty(exports, \"HttpApi\", { enumerable: true, get: function () { return HttpApi_1.HttpApi; } });\nvar TonClient_1 = require(\"./client/TonClient\");\nObject.defineProperty(exports, \"TonClient\", { enumerable: true, get: function () { return TonClient_1.TonClient; } });\n//\n// API V4 Client\n//\nvar TonClient4_1 = require(\"./client/TonClient4\");\nObject.defineProperty(exports, \"TonClient4\", { enumerable: true, get: function () { return TonClient4_1.TonClient4; } });\n//\n// Wallets\n//\nvar WalletContractV1R1_1 = require(\"./wallets/WalletContractV1R1\");\nObject.defineProperty(exports, \"WalletContractV1R1\", { enumerable: true, get: function () { return WalletContractV1R1_1.WalletContractV1R1; } });\nvar WalletContractV1R2_1 = require(\"./wallets/WalletContractV1R2\");\nObject.defineProperty(exports, \"WalletContractV1R2\", { enumerable: true, get: function () { return WalletContractV1R2_1.WalletContractV1R2; } });\nvar WalletContractV1R3_1 = require(\"./wallets/WalletContractV1R3\");\nObject.defineProperty(exports, \"WalletContractV1R3\", { enumerable: true, get: function () { return WalletContractV1R3_1.WalletContractV1R3; } });\nvar WalletContractV2R1_1 = require(\"./wallets/WalletContractV2R1\");\nObject.defineProperty(exports, \"WalletContractV2R1\", { enumerable: true, get: function () { return WalletContractV2R1_1.WalletContractV2R1; } });\nvar WalletContractV2R2_1 = require(\"./wallets/WalletContractV2R2\");\nObject.defineProperty(exports, \"WalletContractV2R2\", { enumerable: true, get: function () { return WalletContractV2R2_1.WalletContractV2R2; } });\nvar WalletContractV3R1_1 = require(\"./wallets/WalletContractV3R1\");\nObject.defineProperty(exports, \"WalletContractV3R1\", { enumerable: true, get: function () { return WalletContractV3R1_1.WalletContractV3R1; } });\nvar WalletContractV3R2_1 = require(\"./wallets/WalletContractV3R2\");\nObject.defineProperty(exports, \"WalletContractV3R2\", { enumerable: true, get: function () { return WalletContractV3R2_1.WalletContractV3R2; } });\nvar WalletContractV4_1 = require(\"./wallets/WalletContractV4\");\nObject.defineProperty(exports, \"WalletContractV4\", { enumerable: true, get: function () { return WalletContractV4_1.WalletContractV4; } });\nvar WalletContractV5Beta_1 = require(\"./wallets/WalletContractV5Beta\");\nObject.defineProperty(exports, \"WalletContractV5Beta\", { enumerable: true, get: function () { return WalletContractV5Beta_1.WalletContractV5Beta; } });\nvar WalletContractV5R1_1 = require(\"./wallets/WalletContractV5R1\");\nObject.defineProperty(exports, \"WalletContractV5R1\", { enumerable: true, get: function () { return WalletContractV5R1_1.WalletContractV5R1; } });\n//\n// Jettons\n//\nvar JettonMaster_1 = require(\"./jetton/JettonMaster\");\nObject.defineProperty(exports, \"JettonMaster\", { enumerable: true, get: function () { return JettonMaster_1.JettonMaster; } });\nvar JettonWallet_1 = require(\"./jetton/JettonWallet\");\nObject.defineProperty(exports, \"JettonWallet\", { enumerable: true, get: function () { return JettonWallet_1.JettonWallet; } });\n//\n// Multisig\n//\nvar MultisigOrder_1 = require(\"./multisig/MultisigOrder\");\nObject.defineProperty(exports, \"MultisigOrder\", { enumerable: true, get: function () { return MultisigOrder_1.MultisigOrder; } });\nvar MultisigOrderBuilder_1 = require(\"./multisig/MultisigOrderBuilder\");\nObject.defineProperty(exports, \"MultisigOrderBuilder\", { enumerable: true, get: function () { return MultisigOrderBuilder_1.MultisigOrderBuilder; } });\nvar MultisigWallet_1 = require(\"./multisig/MultisigWallet\");\nObject.defineProperty(exports, \"MultisigWallet\", { enumerable: true, get: function () { return MultisigWallet_1.MultisigWallet; } });\n//\n// Elector\n//\nvar ElectorContract_1 = require(\"./elector/ElectorContract\");\nObject.defineProperty(exports, \"ElectorContract\", { enumerable: true, get: function () { return ElectorContract_1.ElectorContract; } });\n//\n// Config\n//\nvar ConfigParser_1 = require(\"./config/ConfigParser\");\nObject.defineProperty(exports, \"configParse5\", { enumerable: true, get: function () { return ConfigParser_1.configParse5; } });\nObject.defineProperty(exports, \"configParse8\", { enumerable: true, get: function () { return ConfigParser_1.configParse8; } });\nObject.defineProperty(exports, \"configParse12\", { enumerable: true, get: function () { return ConfigParser_1.configParse12; } });\nObject.defineProperty(exports, \"configParse13\", { enumerable: true, get: function () { return ConfigParser_1.configParse13; } });\nObject.defineProperty(exports, \"configParse15\", { enumerable: true, get: function () { return ConfigParser_1.configParse15; } });\nObject.defineProperty(exports, \"configParse16\", { enumerable: true, get: function () { return ConfigParser_1.configParse16; } });\nObject.defineProperty(exports, \"configParse17\", { enumerable: true, get: function () { return ConfigParser_1.configParse17; } });\nObject.defineProperty(exports, \"configParse18\", { enumerable: true, get: function () { return ConfigParser_1.configParse18; } });\nObject.defineProperty(exports, \"configParse28\", { enumerable: true, get: function () { return ConfigParser_1.configParse28; } });\nObject.defineProperty(exports, \"configParse29\", { enumerable: true, get: function () { return ConfigParser_1.configParse29; } });\nObject.defineProperty(exports, \"configParse40\", { enumerable: true, get: function () { return ConfigParser_1.configParse40; } });\nObject.defineProperty(exports, \"configParseBridge\", { enumerable: true, get: function () { return ConfigParser_1.configParseBridge; } });\nObject.defineProperty(exports, \"configParseGasLimitsPrices\", { enumerable: true, get: function () { return ConfigParser_1.configParseGasLimitsPrices; } });\nObject.defineProperty(exports, \"configParseMasterAddress\", { enumerable: true, get: function () { return ConfigParser_1.configParseMasterAddress; } });\nObject.defineProperty(exports, \"configParseMasterAddressRequired\", { enumerable: true, get: function () { return ConfigParser_1.configParseMasterAddressRequired; } });\nObject.defineProperty(exports, \"configParseMsgPrices\", { enumerable: true, get: function () { return ConfigParser_1.configParseMsgPrices; } });\nObject.defineProperty(exports, \"configParseValidatorSet\", { enumerable: true, get: function () { return ConfigParser_1.configParseValidatorSet; } });\nObject.defineProperty(exports, \"configParseWorkchainDescriptor\", { enumerable: true, get: function () { return ConfigParser_1.configParseWorkchainDescriptor; } });\nObject.defineProperty(exports, \"parseBridge\", { enumerable: true, get: function () { return ConfigParser_1.parseBridge; } });\nObject.defineProperty(exports, \"parseProposalSetup\", { enumerable: true, get: function () { return ConfigParser_1.parseProposalSetup; } });\nObject.defineProperty(exports, \"parseValidatorSet\", { enumerable: true, get: function () { return ConfigParser_1.parseValidatorSet; } });\nObject.defineProperty(exports, \"parseVotingSetup\", { enumerable: true, get: function () { return ConfigParser_1.parseVotingSetup; } });\nObject.defineProperty(exports, \"parseFullConfig\", { enumerable: true, get: function () { return ConfigParser_1.parseFullConfig; } });\nObject.defineProperty(exports, \"loadConfigParamById\", { enumerable: true, get: function () { return ConfigParser_1.loadConfigParamById; } });\nObject.defineProperty(exports, \"loadConfigParamsAsSlice\", { enumerable: true, get: function () { return ConfigParser_1.loadConfigParamsAsSlice; } });\n//\n// Fees\n//\nvar fees_1 = require(\"./utils/fees\");\nObject.defineProperty(exports, \"computeExternalMessageFees\", { enumerable: true, get: function () { return fees_1.computeExternalMessageFees; } });\nObject.defineProperty(exports, \"computeFwdFees\", { enumerable: true, get: function () { return fees_1.computeFwdFees; } });\nObject.defineProperty(exports, \"computeGasPrices\", { enumerable: true, get: function () { return fees_1.computeGasPrices; } });\nObject.defineProperty(exports, \"computeMessageForwardFees\", { enumerable: true, get: function () { return fees_1.computeMessageForwardFees; } });\nObject.defineProperty(exports, \"computeStorageFees\", { enumerable: true, get: function () { return fees_1.computeStorageFees; } });\n","import { beginCell, Cell, DictionaryValue, Slice } from \"@ton/ton\";\n\nexport const unpackPublicKeys = (cs: Slice): Buffer => {\n return cs.loadBuffer(32);\n}\n\nexport const packPublicKeys = (publicKeys: Buffer): Cell => {\n return beginCell().storeBuffer(publicKeys, 32).endCell();\n}\n\nexport const PublicKeysValue: DictionaryValue<Buffer> = {\n serialize: (src: Buffer, builder) => {\n builder.storeBuilder(packPublicKeys(src).asBuilder());\n },\n parse: (src) => {\n return unpackPublicKeys(src);\n },\n};\n","import { Address, beginCell, Dictionary, toNano, TonClient } from \"@ton/ton\";\nimport { PublicKeysValue } from \"./utils/packers\";\n\ntype StormWalletConfig = {\n smartAccountMasterAddress: string;\n}\n\nexport class StormWallet {\n constructor(private readonly tonClient: TonClient, private readonly config: StormWalletConfig) {\n }\n\n async getSmartAccountAddress(walletAddress: string): Promise<Address> {\n const result = await this.tonClient.runMethod(Address.parse(this.config.smartAccountMasterAddress), 'get_nft_address_by_index', [\n {\n type: 'int',\n value: BigInt(`0x${Address.parse(walletAddress).hash.toString('hex')}`)\n }\n ])\n return result.stack.readAddress()\n }\n\n async getSmartAccountData(smartAccountAddress: string) {\n const address = Address.parse(smartAccountAddress)\n try {\n const result = await this.tonClient.runMethod(address, 'get_storage_data')\n const stack = result.stack\n\n const index = stack.readBigNumber();\n const collectionAddress = stack.readAddress();\n const masterWalletAddress = stack.readAddress();\n\n const publicKeys = Dictionary.loadDirect(\n Dictionary.Keys.Uint(8),\n PublicKeysValue,\n stack.readCell()\n ).values();\n\n const adminAddress = stack.readAddress();\n const backendPublicKeys = Dictionary.loadDirect(\n Dictionary.Keys.Uint(8),\n PublicKeysValue,\n stack.readCell()\n ).values();\n\n const seqno = stack.readNumber();\n\n return {\n index,\n collectionAddress,\n masterWalletAddress,\n publicKeys,\n adminAddress,\n backendPublicKeys,\n seqno,\n }\n } catch (e) {\n if ((e as Error).message.endsWith('-13')) {\n return null\n }\n throw e\n }\n }\n\n createDeploySmartAccountTx(publicKey: Buffer, transferAmount: bigint) {\n const publicKeys: Dictionary<number, Buffer> = Dictionary.empty(Dictionary.Keys.Uint(8), PublicKeysValue);\n publicKeys.set(0, publicKey);\n const payload = beginCell()\n .storeUint(0x8bb43aa7, 32)\n .storeUint(0, 64)\n .storeDict(publicKeys)\n .endCell();\n\n return {\n address: this.config.smartAccountMasterAddress,\n payload: payload.toBoc().toString('base64'),\n amount: transferAmount,\n }\n }\n\n createAddPublicKeyTx(smartAccountAddress: string, publicKey: Buffer) {\n const payload = beginCell()\n .storeUint(0x99a0fdaf, 32)\n .storeUint(0, 64)\n .storeBuffer(publicKey)\n .endCell();\n return {\n address: smartAccountAddress,\n payload: payload.toBoc().toString('base64'),\n amount: toNano('0.05')\n }\n }\n\n}\n"],"names":["IframeAdapter","props","__publicField","e","waiter","resolve","reject","payload","timeout","_a","_b","messageId","response","_","root","masterAddress","message","symbol_inspect","crc16_1","crc16","data","reg","byte","mask","__importDefault","this","mod","Address_1","symbol_inspect_1","require$$0","require$$1","bounceable_tag","non_bounceable_tag","test_flag","parseFriendlyAddress","src","Address","addr","crc","calcedCrc","tag","isTestOnly","isBounceable","workchain","hashPart","Address$1","source","wc","hash","workChain","r","addressWithChecksum","args","testOnly","urlSafe","buffer","address","ExternalAddress_1","ExternalAddress$1","ExternalAddress","value","bits","base32","alphabet","base32Encode","length","output","i","readChar","char","idx","base32Decode","input","cleanedInput","index","ADNLAddress_1","base32_1","require$$2","ADNLAddress$1","ADNLAddress","decoded","gotHash","b","paddedBits","BitBuilder_1","BitString_1","bitsToPaddedBuffer","builder","padding","paddedBufferToBits","buff","bitLen","testByte","bitPos","paddedBits_1","BitString$1","BitString","offset","byteIndex","bitIndex","start","end","padded","s","hex","BitBuilder$1","size","n","v","vBits","tillByte","bidx","wb","sizeBytes","sizeBits","v2","amount","BitBuilder","CellType_1","CellType","readUnaryLength_1","readUnaryLength","slice","res","BitReader_1","BitReader$1","BitReader","bytes","buf","loaded","type","sign","fastBuffer","alt","exoticMerkleProof_1","Builder_1","exoticMerkleProof","refs","reader","proofHash","proofDepth","refHash","refDepth","convertToMerkleProof","c","generateMerkleProof_1","convertToPrunedBranch","doGenerateMerkleProof","prefix","keys","originalCell","lb0","prefixLength","pp","bit","sl","left","right","leftKeys","key","rightKeys","generateMerkleProofDirect","dict","keyObject","generateMerkleProof","generateMerkleUpdate_1","convertToMerkleUpdate","c1","c2","generateMerkleUpdate","newValue","oldProof","newProof","parseDict_1","doParse","extractor","parseDict","sc","keySize","findCommonPrefix_1","findCommonPrefix","startPos","serializeDict_1","pad","forkMap","prefixLen","k","d","buildNode","buildEdge","label","buildTree","keyLength","converted","writeLabelShort","to","labelShortLength","writeLabelLong","labelLongLength","writeLabelSame","lenLen","labelSameLength","isSame","detectLabelType","kind","kindLength","longLength","sameLength","writeLabel","writeNode","serializer","leftCell","rightCell","writeEdge","serializeDict","tree","internalKeySerializer","serializeInternalKey","deserializeInternalKey","lastDash","charLen","Dictionary_1","Cell_1","require$$3","require$$4","require$$5","require$$6","require$$7","internalKeySerializer_1","require$$8","Dictionary$1","Dictionary","cell","values","prepare","resolvedKey","resolvedValue","prepared","dd","createAddressKey","createBigIntKey","createIntKey","createBigUintKey","createUintKey","createBufferKey","createBitStringKey","createBigIntValue","createIntValue","createBigVarIntValue","createBigUintValue","createUintValue","createBigVarUintValue","createBooleanValue","createAddressValue","createCellValue","createBufferValue","createBitStringValue","createDictionaryValue","buidler","strings","readBuffer","readString","writeBuffer","a","t","bb","stringToCell","writeString","Slice_1","strings_1","Slice$1","Slice","ref","fromStart","exoticLibrary_1","exoticLibrary","exoticMerkleUpdate_1","exoticMerkleUpdate","proofHash1","proofHash2","proofDepth1","proofDepth2","LevelMask_1","LevelMask$1","LevelMask","countSetBits","level","exoticPruned_1","exoticPruned","pruned","hashes","depths","resolveExotic_1","resolvePruned","resolveLibrary","resolveMerkleProof","resolveMerkleUpdate","resolveExotic","descriptor","getRefsDescriptor","levelMask","getBitsDescriptor","len","getRepr","originalBits","bitsLen","repr","reprCursor","childDepth","childHash","module","o","u","f","w","h","A","E","l","H","S","p","m","y","R","U","T","C","F","K","B","L","g","Y","N","I","M","X","z","O","j","P","x","V","Z","q","D","G","J","Q","W","$","nn","rn","tn","en","on","getSecureRandom","getSecureRandomBytes","getSecureRandomWords","hmac_sha512_1","hmac_sha512","keyBuffer","dataBuffer","hmacAlgo","hmacKey","pbkdf2_sha512_1","pbkdf2_sha512","salt","iterations","keyLen","saltBuffer","pbkdf2_key","derivedBits","sha256_1","sha256","sha512_1","sha512","exports","getSecureRandom_1","jssha_1","crypto_primitives_1","sha256_sync","hasher","sha256_fallback","sha512_sync","sha512_fallback","hmac_sha512_fallback","shaObj","hmac","getSecureRandomNumber","min","max","range","bitsNeeded","bytesNeeded","power","numberValue","wordlist","newSecureWords_1","wordlist_1","newSecureWords","words","newSecurePassphrase_1","__1","newSecurePassphrase","__viteBrowserExternal","nacl","gf","init","randombytes","_0","_9","gf0","gf1","_121665","D2","ts64","vn","xi","yi","crypto_verify_16","crypto_verify_32","core_salsa20","j0","j1","j2","j3","j4","j5","j6","j7","j8","j9","j10","j11","j12","j13","j14","j15","x0","x1","x2","x3","x4","x5","x6","x7","x8","x9","x10","x11","x12","x13","x14","x15","core_hsalsa20","crypto_core_salsa20","out","inp","crypto_core_hsalsa20","sigma","crypto_stream_salsa20_xor","cpos","mpos","crypto_stream_salsa20","crypto_stream","sn","crypto_stream_xor","poly1305","t0","t1","t2","t3","t4","t5","t6","t7","hibit","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","h0","h1","h2","h3","h4","h5","h6","h7","h8","h9","r0","r1","r2","r3","r4","r5","r6","r7","r8","r9","mac","macpos","want","crypto_onetimeauth","outpos","crypto_onetimeauth_verify","hpos","crypto_secretbox","crypto_secretbox_open","set25519","car25519","sel25519","pack25519","neq25519","par25519","unpack25519","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","b10","b11","b12","b13","b14","b15","inv25519","pow2523","crypto_scalarmult","x32","x16","crypto_scalarmult_base","crypto_box_keypair","crypto_box_beforenm","crypto_box_afternm","crypto_box_open_afternm","crypto_box","crypto_box_open","crypto_hashblocks_hl","hh","hl","wh","wl","bh0","bh1","bh2","bh3","bh4","bh5","bh6","bh7","bl0","bl1","bl2","bl3","bl4","bl5","bl6","bl7","th","tl","ah0","ah1","ah2","ah3","ah4","ah5","ah6","ah7","al0","al1","al2","al3","al4","al5","al6","al7","pos","crypto_hash","add","cswap","pack","tx","ty","zi","scalarmult","scalarbase","crypto_sign_keypair","pk","sk","seeded","modL","carry","reduce","crypto_sign","sm","smlen","unpackneg","chk","num","den","den2","den4","den6","crypto_sign_open","crypto_secretbox_KEYBYTES","crypto_secretbox_NONCEBYTES","crypto_secretbox_ZEROBYTES","crypto_secretbox_BOXZEROBYTES","crypto_scalarmult_BYTES","crypto_scalarmult_SCALARBYTES","crypto_box_PUBLICKEYBYTES","crypto_box_SECRETKEYBYTES","crypto_box_BEFORENMBYTES","crypto_box_NONCEBYTES","crypto_box_ZEROBYTES","crypto_box_BOXZEROBYTES","crypto_sign_BYTES","crypto_sign_PUBLICKEYBYTES","crypto_sign_SECRETKEYBYTES","crypto_sign_SEEDBYTES","crypto_hash_BYTES","checkLengths","checkBoxLengths","checkArrayTypes","cleanup","arr","msg","nonce","box","publicKey","secretKey","signedMsg","tmp","mlen","sig","seed","fn","crypto","QUOTA","require","binary","lpad","str","padString","bytesToBits","bitsToBytes","EN","mnemonic","tweetnacl_1","binary_1","PBKDF_ITERATIONS","isPasswordNeeded","mnemonicArray","passlessEntropy","mnemonicToEntropy","isPasswordSeed","isBasicSeed","normalizeMnemonic","entropy","password","mnemonicToSeed","mnemonicToPrivateKey","keyPair","mnemonicToWalletKey","seedSecret","mnemonicToHDSeed","mnemonicValidate","word","mnemonicNew","wordsCount","ind","bytesToMnemonicIndexes","indexes","bytesToMnemonics","mnemonics","mnemonicIndexesToBytes","mnemonicFromRandomSeed","bytesLength","currentSeed","keyPairFromSecretKey","keyPairFromSeed","signVerify","signature","sealBox","openBox","ed25519","ED25519_CURVE","HARDENED_OFFSET","getED25519MasterKeyFromSeed","IL","IR","deriveED25519HardenedKey","parent","indexBuffer","deriveEd25519Path","path","state","remaining","symmetric","SYMMETRIC_SEED","getSymmetricMasterKeyFromSeed","deriveSymmetricHardenedKey","deriveSymmetricPath","mnemonic_1","MNEMONICS_SEED","getMnemonicsMasterKeyFromSeed","deriveMnemonicHardenedKey","deriveMnemonicsPath","nacl_1","require$$9","nacl_2","ed25519_1","require$$10","symmetric_1","require$$11","mnemonics_1","require$$12","wonderCalculator_1","descriptor_1","crypto_1","wonderCalculator","hashCount","hashIOffset","levelI","hashI","currentBits","currentDepth","destI","resolvedHashes","resolvedDepths","hashIndex","thisHashIndex","topologicalSort_1","topologicalSort","pending","allCells","notPermCells","sorted","cells","tempMark","visit","ci","id","result","ent","rrr","bitsForNumber_1","bitsForNumber","mode","crc32c_1","POLY","crc32c","serialization","getHashesCount","getHashesCountFromMask","readCell","refsCount","exotic","dataBytesize","paddingAdded","hasHashes","hashesSize","depthSize","calcCellSize","parseBoc","magic","offBytes","roots","absent","totalCellSize","cellData","crc32","hasIdx","hasCrc32c","deserializeBoc","boc","cll","writeCellToBuilder","serializeBoc","opts","cellsNum","has_idx","has_crc32c","has_cache_bits","flags","sz","offsetBytes","totalSize","serialization_1","Cell$1","Cell","parsed","allowExotic","other","resolved","wonders","indent","beginCell","Builder","Builder$1","writer","SimpleLibrary","loadSimpleLibrary","storeSimpleLibrary","TickTock","loadTickTock","storeTickTock","StateInit","SimpleLibrary_1","TickTock_1","loadStateInit","splitDepth","special","code","libraries","storeStateInit","contractAddress_1","StateInit_1","contractAddress","tuple","INT64_MIN","INT64_MAX","serializeTupleItem","head","tail","bc","parseStackItem","cs","startBits","endBits","startRefs","endRefs","rs","dt","items","ohead","serializeTupleTail","serializeTuple","parseTuple","next","TupleReader","popped","TupleBuilder","convert","toNano","neg","parts","whole","frac","fromNano","facStr","ExtraCurrency","loadExtraCurrency","ecDict","ecMap","loadMaybeExtraCurrency","ecData","storeExtraCurrency","extracurrency","packExtraCurrencyDict","resEc","packExtraCurrencyCell","_helpers","convert_1","ExtraCurrency_1","internal","bounce","body","external","comment","AccountState","loadAccountState","storeAccountState","CurrencyCollection","loadCurrencyCollection","coins","storeCurrencyCollection","collection","AccountStorage","AccountState_1","CurrencyCollection_1","loadAccountStorage","storeAccountStorage","StorageUsed","loadStorageUsed","storeStorageUsed","StorageInto","StorageUsed_1","loadStorageInfo","storeStorageInfo","Account","AccountStorage_1","StorageInto_1","loadAccount","storeAccount","AccountStatus","loadAccountStatus","status","storeAccountStatus","AccountStatusChange","loadAccountStatusChange","storeAccountStatusChange","CommonMessageInfoRelaxed","loadCommonMessageInfoRelaxed","ihrDisabled","bounced","dest","ihrFee","forwardFee","createdLt","createdAt","storeCommonMessageInfoRelaxed","MessageRelaxed","CommonMessageInfoRelaxed_1","loadMessageRelaxed","info","storeMessageRelaxed","initCell","needRef","LibRef","loadLibRef","storeLibRef","OutList","MessageRelaxed_1","LibRef_1","storeOutAction","action","storeOutActionSendMsg","storeOutActionSetCode","storeOutActionReserve","storeOutActionChangeLibrary","outActionSendMsgTag","outActionSetCodeTag","outActionReserveTag","outActionChangeLibraryTag","loadOutAction","outMsg","currency","libRef","storeOutList","actions","loadOutList","nextCell","CommonMessageInfo","loadCommonMessageInfo","importFee","storeCommonMessageInfo","ComputeSkipReason","loadComputeSkipReason","reason","storeComputeSkipReason","DepthBalanceInfo","loadDepthBalanceInfo","storeDepthBalanceInfo","HashUpdate","loadHashUpdate","oldHash","newHash","storeHashUpdate","MasterchainStateExtra","loadMasterchainStateExtra","configAddress","config","globalBalance","Message","CommonMessageInfo_1","loadMessage","storeMessage","SendMode_1","SendMode","ReserveMode_1","ReserveMode","ShardAccount","Account_1","loadShardAccount","accountRef","account","accountSlice","storeShardAccount","DepthBalanceInfo_1","ShardAccount_1","depthBalanceInfo","shardAccount","loadShardAccounts","storeShardAccounts","ShardIdent","loadShardIdent","storeShardIdent","ShardStateUnsplit","MasterchainStateExtra_1","ShardAccounts_1","ShardIdent_1","loadShardStateUnsplit","globalId","shardId","seqno","vertSeqNo","genUtime","genLt","minRefMcSeqno","beforeSplit","shardAccountsRef","accounts","mcStateExtra","extras","SplitMergeInfo","loadSplitMergeInfo","currentShardPrefixLength","accountSplitDepth","thisAddress","siblingAddress","storeSplitMergeInfo","StorageUsedShort","loadStorageUsedShort","storeStorageUsedShort","TransactionActionPhase","AccountStatusChange_1","StorageUsedShort_1","loadTransactionActionPhase","success","valid","noFunds","statusChange","totalFwdFees","totalActionFees","resultCode","resultArg","totalActions","specActions","skippedActions","messagesCreated","actionListHash","totalMessageSize","storeTransactionActionPhase","TransactionBouncePhase","loadTransactionBouncePhase","messageSize","messageFees","forwardFees","requiredForwardFees","storeTransactionBouncePhase","TransactionComputePhase","ComputeSkipReason_1","loadTransactionComputePhase","messageStateUsed","accountActivated","gasFees","vmState","gasUsed","gasLimit","gasCredit","exitCode","exitArg","vmSteps","vmInitStateHash","vmFinalStateHash","storeTransactionComputePhase","TransactionCreditPhase","loadTransactionCreditPhase","dueFeesColelcted","credit","storeTransactionCreditPhase","TransactionStoragePhase","loadTransactionStoragePhase","storageFeesCollected","storageFeesDue","storeTransactionsStoragePhase","TransactionDescription","SplitMergeInfo_1","Transaction_1","TransactionActionPhase_1","TransactionBouncePhase_1","TransactionComputePhase_1","TransactionCreditPhase_1","TransactionStoragePhase_1","loadTransactionDescription","creditFirst","storagePhase","creditPhase","computePhase","actionPhase","aborted","bouncePhase","destroyed","isTock","splitInfo","prepareTransaction","installed","storeTransactionDescription","Transaction","AccountStatus_1","HashUpdate_1","Message_1","TransactionDescription_1","loadTransaction","raw","lt","prevTransactionHash","prevTransactionLt","now","outMessagesCount","oldStatus","endStatus","msgSlice","inMessage","outMessages","totalFees","stateUpdate","description","storeTransaction","msgBuilder","_helpers_1","OutList_1","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","require$$21","ShardStateUnsplit_1","require$$22","require$$23","require$$24","require$$25","require$$26","require$$27","require$$28","require$$29","require$$30","require$$31","require$$32","require$$33","require$$34","require$$35","require$$36","require$$37","openContract_1","openContract","factory","executor","target","prop","ComputeError_1","ComputeError","getMethodId_1","TABLE","getMethodId","name","safeSign_1","MIN_SEED_LENGTH","MAX_SEED_LENGTH","createSafeSignHash","seedData","safeSign","safeSignVerify","__createBinding","k2","desc","__exportStar","tuple_1","reader_1","builder_1","TonCache","InMemoryCache","namespace","DataLoader","batchLoadFn","options","getValidMaxBatchSize","getValidBatchScheduleFn","getValidCacheKeyFn","getValidCacheMap","getValidName","_proto","batch","getCurrentBatch","cacheMap","cacheKey","cachedPromise","cacheHits","promise","isArrayLike","loadPromises","error","enqueuePostPromiseJob","resolvedPromise","loader","existingBatch","newBatch","dispatchBatch","resolveCacheHits","batchPromise","failedDispatch","_value","shouldBatch","maxBatchSize","batchScheduleFn","cacheKeyFn","shouldCache","cacheFunctions","missingFunctions","fnName","dataloader","bind","thisArg","toString","getPrototypeOf","kindOf","cache","thing","kindOfTest","typeOfTest","isArray","isUndefined","isBuffer","val","isFunction","isArrayBuffer","isArrayBufferView","isString","isNumber","isObject","isBoolean","isPlainObject","prototype","isDate","isFile","isBlob","isFileList","isStream","isFormData","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","trim","forEach","obj","allOwnKeys","findKey","_key","_global","global","isContextDefined","context","merge","caseless","assignValue","targetKey","extend","stripBOM","content","inherits","constructor","superConstructor","descriptors","toFlatObject","sourceObj","destObj","filter","propFilter","merged","endsWith","searchString","position","lastIndex","toArray","isTypedArray","TypedArray","forEachEntry","iterator","pair","matchAll","regExp","matches","isHTMLForm","toCamelCase","p1","p2","hasOwnProperty","isRegExp","reduceDescriptors","reducer","reducedDescriptors","ret","freezeMethods","toObjectSet","arrayOrString","delimiter","define","noop","toFiniteNumber","defaultValue","ALPHA","DIGIT","ALPHABET","generateString","isSpecCompliantForm","toJSONObject","stack","reducedValue","isAsyncFn","isThenable","_setImmediate","setImmediateSupported","postMessageSupported","token","callbacks","cb","asap","utils$1","AxiosError","request","prototype$1","customProps","axiosError","httpAdapter","isVisitable","removeBrackets","renderKey","dots","isFlatArray","predicates","toFormData","formData","option","metaTokens","visitor","defaultVisitor","useBlob","convertValue","el","exposedHelpers","build","encode$1","charMap","match","AxiosURLSearchParams","params","encoder","_encode","encode","buildURL","url","serializeFn","serializedParams","hashmarkIndex","InterceptorManager","fulfilled","rejected","InterceptorManager$1","transitionalDefaults","URLSearchParams$1","FormData$1","Blob$1","platform$1","hasBrowserEnv","_navigator","hasStandardBrowserEnv","hasStandardBrowserWebWorkerEnv","origin","utils","platform","toURLEncodedForm","helpers","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","stringifySafely","rawValue","parser","defaults","headers","contentType","hasJSONContentType","isObjectPayload","_FormData","transitional","forcedJSONParsing","JSONRequested","strictJSONParsing","method","defaults$1","ignoreDuplicateOf","parseHeaders","rawHeaders","line","$internals","normalizeHeader","header","normalizeValue","parseTokens","tokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","buildAccessors","accessorName","methodName","arg1","arg2","arg3","AxiosHeaders","valueOrRewrite","rewrite","self","setHeader","_header","_rewrite","lHeader","setHeaders","matcher","deleted","deleteHeader","format","normalized","targets","asStrings","first","computed","accessors","defineAccessor","mapped","headerValue","AxiosHeaders$1","transformData","fns","isCancel","CanceledError","settle","validateStatus","parseProtocol","speedometer","samplesCount","timestamps","firstSampleTS","chunkLength","startedAt","bytesCount","passed","throttle","freq","timestamp","threshold","lastArgs","timer","invoke","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","total","progressBytes","rate","inRange","progressEventDecorator","throttled","lengthComputable","asyncDecorator","isURLSameOrigin","isMSIE","cookies","expires","domain","secure","cookie","isAbsoluteURL","combineURLs","baseURL","relativeURL","buildFullPath","requestedURL","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","resolveConfig","newConfig","withXSRFToken","xsrfHeaderName","xsrfCookieName","auth","xsrfValue","xhrAdapter","_config","requestData","requestHeaders","responseType","onUploadProgress","onDownloadProgress","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","done","onloadend","responseHeaders","err","timeoutErrorMessage","cancel","protocol","composeSignals$1","signals","controller","onabort","unsubscribe","signal","streamChunk","chunk","chunkSize","readBytes","iterable","readStream","stream","trackStream","onProgress","onFinish","_onFinish","loadedBytes","isFetchSupported","isReadableStreamSupported","encodeText","test","supportsRequestStream","duplexAccessed","hasContentType","DEFAULT_CHUNK_SIZE","supportsResponseStream","resolvers","getBodyLength","resolveBodyLength","fetchAdapter","cancelToken","withCredentials","fetchOptions","composedSignal","requestContentLength","_request","contentTypeHeader","flush","isCredentialsSupported","isStreamResponse","responseContentLength","responseData","knownAdapters","renderReason","isResolvedHandle","adapter","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","dispatchRequest","VERSION","validators$1","deprecatedWarnings","validator","version","formatMessage","opt","correctSpelling","assertOptions","schema","allowUnknown","validators","Axios","instanceConfig","configOrUrl","dummy","paramsSerializer","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","chain","onFulfilled","onRejected","fullPath","generateHTTPMethod","isForm","Axios$1","CancelToken","resolvePromise","onfulfilled","_resolve","abort","CancelToken$1","spread","callback","isAxiosError","HttpStatusCode","HttpStatusCode$1","createInstance","defaultConfig","instance","axios","promises","axios_1","util","assertIs","_arg","assertNever","_x","item","validKeys","filtered","object","checker","joinValues","array","separator","objectUtil","second","getParsedType","ZodError_1","util_1","quotelessJson","ZodError","issues","sub","subs","actualProto","_mapper","mapper","issue","fieldErrors","processError","curr","formErrors","errorMap","_ctx","errors","en_1","overrideErrorMap","setErrorMap","map","getErrorMap","errors_1","makeIssue","errorMaps","issueData","fullIssue","errorMessage","maps","addIssueToContext","ctx","overrideMap","ParseStatus","results","arrayValue","pairs","syncPairs","finalObject","DIRTY","OK","isAborted","isDirty","isValid","isAsync","typeAliases","errorUtil_1","errorUtil","__classPrivateFieldGet","receiver","__classPrivateFieldSet","_ZodEnum_cache","_ZodNativeEnum_cache","types","parseUtil_1","ParseInputLazyPath","handleResult","processCreateParams","invalid_type_error","required_error","iss","ZodType","maybeAsyncResult","check","getIssueProperties","setError","refinementData","refinement","ZodEffects","ZodFirstPartyTypeKind","def","ZodOptional","ZodNullable","ZodArray","ZodPromise","ZodUnion","incoming","ZodIntersection","transform","defaultValueFunc","ZodDefault","ZodBranded","catchValueFunc","ZodCatch","This","ZodPipeline","ZodReadonly","cuidRegex","cuid2Regex","ulidRegex","uuidRegex","nanoidRegex","jwtRegex","durationRegex","emailRegex","_emojiRegex","emojiRegex","ipv4Regex","ipv4CidrRegex","ipv6Regex","ipv6CidrRegex","base64Regex","base64urlRegex","dateRegexSource","dateRegex","timeRegexSource","regex","timeRegex","datetimeRegex","isValidIP","ip","isValidJWT","jwt","alg","base64","isValidCidr","ZodString","tooBig","tooSmall","validation","minLength","maxLength","ch","floatSafeRemainder","step","valDecCount","stepDecCount","decCount","valInt","stepInt","ZodNumber","inclusive","ZodBigInt","ZodBoolean","ZodDate","minDate","maxDate","ZodSymbol","ZodUndefined","ZodNull","ZodAny","ZodUnknown","ZodNever","ZodVoid","deepPartialify","ZodObject","newShape","fieldSchema","ZodTuple","shape","shapeKeys","extraKeys","keyValidator","unknownKeys","catchall","_c","_d","defaultError","augmentation","merging","newField","createZodEnum","handleResults","unionErrors","childCtx","dirty","getDiscriminator","ZodLazy","ZodLiteral","ZodEnum","ZodNativeEnum","ZodDiscriminatedUnion","discriminator","discriminatorValue","optionsMap","discriminatorValues","mergeValues","aType","bType","bKeys","sharedKeys","newObj","sharedValue","newArray","itemA","itemB","handleParsed","parsedLeft","parsedRight","itemIndex","rest","schemas","ZodRecord","keyType","valueType","third","ZodMap","finalMap","ZodSet","finalizeSet","elements","parsedSet","element","minSize","maxSize","ZodFunction","makeArgsIssue","makeReturnsIssue","returns","me","parsedArgs","parsedReturns","returnType","func","getter","expectedValues","enumValues","newDef","nativeEnumValues","promisified","effect","checkCtx","arg","processed","executeRefinement","acc","inner","base","preprocess","newCtx","ZodNaN","inResult","freeze","cleanParams","custom","_params","fatal","_fatal","instanceOfType","cls","stringType","numberType","nanType","bigIntType","booleanType","dateType","symbolType","undefinedType","nullType","anyType","unknownType","neverType","voidType","arrayType","objectType","strictObjectType","unionType","discriminatedUnionType","intersectionType","tupleType","recordType","mapType","setType","functionType","lazyType","literalType","enumType","nativeEnumType","promiseType","effectsType","optionalType","nullableType","preprocessType","pipelineType","ostring","onumber","oboolean","__setModuleDefault","__importStar","HttpApi_1","TonCache_1","dataloader_1","zod_1","blockIdExt","addressInformation","bocResponse","feeResponse","callGetMethod","messageData","transaction","getTransactions","getMasterchain","getShards","blockShortTxt","getBlockTransactions","TypedCache","codec","keyEncoder","ex","HttpApi$1","endpoint","parameters","cached","limit","shard","convHash","serializeStack","destination","created_lt","HttpApi","TonClient_1","core_1","TonClient$1","parseStack","contract","balance","createProvider","TonClient","parseStackEntry","typeName","client","last","storage","ec","neededInit","ext","via","toUrlSafe_1","toUrlSafe","_TonClient4_endpoint","_TonClient4_timeout","_TonClient4_adapter","_TonClient4_axios","TonClient4_1","TonClient4$1","lastBlock","lastBlockCodec","block","blockCodec","ts","accountCodec","accountLiteCodec","changed","changedCodec","transactions","transactionsCodec","count","parsedTransactionsRes","parsedTransactionsCodec","ids","configCodec","runMethod","runMethodCodec","resultTuple","sendCodec","TonClient4","sq","currencies","pkg","useLimit","txs","firstTx","firstLt","firstHash","lastTx","lastLt","lastHash","storageStatCodec","blocksCodec","parsedAddressExternalCodec","parsedMessageInfoCodec","parsedStateInitCodec","parsedMessageCodec","accountStatusCodec","txBodyCodec","parsedOperationItemCodec","supportedMessageTypeCodec","opCodec","parsedOperationCodec","parsedTransactionCodec","WalletV5BetaWalletId","loadWalletIdV5Beta","storeWalletIdV5Beta","walletV5BetaVersionsSerialisation","bitReader","networkGlobalId","walletVersionRaw","subwalletNumber","walletVersion","walletId","WalletContractV5Beta_1","createWalletTransfer_1","WalletV5BetaWalletId_1","WalletContractV5Beta","provider","extensions","addressHex","transfer","WalletV5OutActions","isOutActionExtended","isOutActionBasic","WalletV5BetaActions","storeOutActionExtendedV5Beta","loadOutActionV5BetaExtended","storeOutListExtendedV5Beta","loadOutListExtendedV5Beta","WalletV5OutActions_1","outActionSetIsPublicKeyEnabledTag","storeOutActionSetIsPublicKeyEnabled","outActionAddExtensionTag","storeOutActionAddExtension","outActionRemoveExtensionTag","storeOutActionRemoveExtension","commonAction","singer","signPayload","signingMessage","packMessage","WalletV5R1WalletId","isWalletIdV5R1ClientContext","loadWalletIdV5R1","storeWalletIdV5R1","walletV5R1VersionsSerialisation","WalletContractV5R1_1","WalletV5R1WalletId_1","WalletContractV5R1","WalletV5R1Actions","storeOutActionExtendedV5R1","loadOutActionExtendedV5R1","storeOutListExtendedV5R1","loadOutListExtendedV5R1","toSafeV5R1SendMode","patchV5R1ActionsSendMode","extendedActions","basicActions","outListPacked","packExtendedActionsRec","loadedActions","sendMode","authType","createWalletTransfer","createWalletTransferV1","createWalletTransferV2","createWalletTransferV3","createWalletTransferV4","createWalletTransferV5Beta","createWalletTransferV5R1","WalletV5BetaActions_1","singer_1","WalletV5R1Actions_1","packSignatureToFront","packSignatureToTail","WalletContractV1R1_1","WalletContractV1R1$1","WalletContractV1R1","WalletContractV1R2_1","WalletContractV1R2$1","WalletContractV1R2","WalletContractV1R3_1","WalletContractV1R3$1","WalletContractV1R3","WalletContractV2R1_1","WalletContractV2R1$1","WalletContractV2R1","WalletContractV2R2_1","WalletContractV2R2$1","WalletContractV2R2","WalletContractV3R1_1","WalletContractV3R1$1","WalletContractV3R1","WalletContractV3R2_1","WalletContractV3R2$1","WalletContractV3R2","WalletContractV4_1","WalletContractV4$1","WalletContractV4","JettonMaster_1","JettonMaster$1","JettonMaster","owner","totalSupply","mintable","adminAddress","walletCode","JettonWallet_1","JettonWallet$1","JettonWallet","MultisigOrder_1","MultisigOrder$1","MultisigOrder","signatures","messagesCell","order","ownerId","multisig","signingHash","MultisigOrderBuilder_1","MultisigOrderBuilder$1","time","MultisigOrderBuilder","MultisigWallet_1","MULTISIG_CODE","MultisigWallet$1","MultisigWallet","publicKeys","contractState","owners","sender","ElectorContract_1","FrozenDictValue","weight","stake","EntitiesDictValue","adnl","ElectorContract$1","ElectorContract","electionsListRaw","elections","electionsListEntry","unfreezeAt","stakeHeld","electionsRaw","electionsEntry","frozenDict","totalStake","bonuses","frozen","frozenData","startWorkTime","endElectionsTime","minStake","allStakes","entitiesData","entities","electionId","complaintsRaw","complaintsEntry","completeUnpackedComplaint","unpackedComplaints","severity","rewardAddress","paid","suggestedFine","suggestedFinePart","votes","votersListRaw","vsetId","remainingWeight","ConfigParser","configParseMasterAddress","parseValidatorSet","parseBridge","configParseMasterAddressRequired","configParse5","configParse13","configParse15","configParse16","configParse17","configParse18","configParse8","configParse40","configParseWorkchainDescriptor","configParse12","configParseValidatorSet","configParseBridge","configParseGasLimitsPrices","configParseMsgPrices","configParse28","configParse29","parseProposalSetup","parseVotingSetup","loadConfigParamById","loadConfigParamsAsSlice","parseFullConfig","readPublicKey","ValidatorDescriptionDictValue","timeSince","timeUntil","main","list","totalWeight","bridgeAddress","oracleMultisigAddress","oraclesDict","oracles","local","remote","externalChainAddress","blackholeAddr","feeBurnNominator","feeBurnDenominator","deposit","bitPrice","cellPrice","validatorsElectedFor","electorsStartBefore","electorsEndBefore","stakeHeldFor","maxValidators","maxMainValidators","minValidators","maxStake","minTotalStake","maxStakeFactor","StoragePricesDictValue","utime_since","bit_price_ps","cell_price_ps","mc_bit_price_ps","mc_cell_price_ps","capabilities","defaultFlatFine","defaultProportionaFine","severityFlatMult","severityProportionalMult","unfunishableInterval","longInterval","longFlatMult","longProportionalMult","mediumInterval","mediumFlatMult","mediumProportionalMult","enabledSince","actialMinSplit","min_split","max_split","basic","active","accept_msgs","zerostateRootHash","zerostateFileHash","vmVersion","vmMode","WorkchainDescriptorDictValue","wd","parseGasLimitsInternal","gasPrice","specialGasLimit","blockGasLimit","freezeDueLimit","deleteDueLimit","flatLimit","flatGasPrice","masterCatchainLifetime","shardCatchainLifetime","shardValidatorsLifetime","shardValidatorsCount","suffleMasterValidators","roundCandidates","nextCandidateDelay","consensusTimeout","fastAttempts","attemptDuration","catchainMaxDeps","maxBlockBytes","maxColaltedBytes","newCatchainIds","protoVersion","catchainMaxBlocksCoeff","minTotalRounds","maxTotalRounds","minWins","maxLoses","minStoreSec","maxStoreSec","normalParams","criticalParams","loadConfigParams","configBase64","pramsAsCells","configs","fees","computeStorageFees","computeFwdFees","computeGasPrices","computeExternalMessageFees","computeMessageForwardFees","lastPaid","storagePrices","storageStat","masterchain","upto","valid_until","payment","delta","shr16ceil","msgPrices","prices","storageStats","collectCellStats","rawBuilder","rem","ConfigParser_1","fees_1","unpackPublicKeys","packPublicKeys","PublicKeysValue","StormWallet","tonClient","walletAddress","smartAccountAddress","collectionAddress","masterWalletAddress","backendPublicKeys","transferAmount"],"mappings":"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EAAEvH,EAAE,CAAC,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,CAAC,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,CAAC,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,SAAS,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,SAAS,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,SAAS,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,SAAS,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,SAAS,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,SAAS,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,SAAS,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,SAAS,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,SAAS,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,SAAS,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAEvH,EAAE,EAAE,GAAE,UAAU,GAAE,IAAIuH,EAAE,YAAW,UAAU,GAAE,IAAIA,EAAE,YAAW,SAAS,GAAE,IAAIA,EAAE,YAAW,UAAU,GAAE,IAAIA,EAAE,YAAW,UAAU,GAAE,IAAIA,EAAE,WAAU,UAAU,GAAE,IAAIA,EAAE,WAAU,UAAU,GAAE,IAAIA,EAAE,WAAU,UAAU,GAAE,IAAIA,EAAE,WAAU,SAAS,GAAE,IAAIA,EAAE,WAAU,SAAS,GAAE,IAAIA,EAAE,WAAU,UAAU,GAAE,IAAIA,EAAE,YAAW,SAAS,GAAE,IAAIA,EAAE,YAAW,UAAU,GAAE,IAAIA,EAAE,YAAW,UAAU,GAAE,IAAIA,EAAE,YAAW,UAAU,GAAE,IAAIA,EAAE,YAAW,SAAS,GAAE,IAAIA,EAAE,YAAW,UAAU,CAAC;AAAE,eAAS+J,GAAE9O,GAAE;AAAC,eAAkBA,MAAZ,YAAc,CAAC,IAAI+E,EAAE,YAAW,EAAE,CAAC,CAAC,GAAE,IAAIA,EAAE,YAAW,EAAE,CAAC,CAAC,GAAE,IAAIA,EAAE,YAAW,EAAE,CAAC,CAAC,GAAE,IAAIA,EAAE,WAAU,EAAE,CAAC,CAAC,GAAE,IAAIA,EAAE,YAAW,EAAE,CAAC,CAAC,GAAE,IAAIA,EAAE,aAAY,EAAE,CAAC,CAAC,GAAE,IAAIA,EAAE,YAAW,EAAE,CAAC,CAAC,GAAE,IAAIA,EAAE,YAAW,EAAE,CAAC,CAAC,CAAC,IAAE,CAAC,IAAIA,EAAE8H,EAAE,CAAC,GAAE,UAAU,GAAE,IAAI9H,EAAE8H,EAAE,CAAC,GAAE,UAAU,GAAE,IAAI9H,EAAE8H,EAAE,CAAC,GAAE,UAAU,GAAE,IAAI9H,EAAE8H,EAAE,CAAC,GAAE,UAAU,GAAE,IAAI9H,EAAE8H,EAAE,CAAC,GAAE,UAAU,GAAE,IAAI9H,EAAE8H,EAAE,CAAC,GAAE,SAAS,GAAE,IAAI9H,EAAE8H,EAAE,CAAC,GAAE,UAAU,GAAE,IAAI9H,EAAE8H,EAAE,CAAC,GAAE,SAAS,CAAC;AAAA,MAAC;AAAC,eAASkC,GAAE/O,GAAEzD,GAAE;AAAC,YAAIsN,GAAErQ,GAAEgE,GAAEoP,GAAEC,IAAEC,IAAEC,IAAEnN,IAAEgK,IAAEoD,IAAE3K,IAAEpC,IAAEgN,IAAEC,IAAEC,IAAE5O,IAAE6O,KAAE;AAAG,aAAIvD,IAAEtN,EAAE,CAAC,GAAE/C,IAAE+C,EAAE,CAAC,GAAEiB,IAAEjB,EAAE,CAAC,GAAEqQ,IAAErQ,EAAE,CAAC,GAAEsQ,KAAEtQ,EAAE,CAAC,GAAEuQ,KAAEvQ,EAAE,CAAC,GAAEwQ,KAAExQ,EAAE,CAAC,GAAEqD,KAAErD,EAAE,CAAC,GAAE8F,KAAE,GAAEA,KAAE,IAAGA,MAAG,EAAE,CAAAA,KAAE,MAAIpC,KAAE,IAAEoC,IAAE+K,GAAE/K,EAAC,IAAE,IAAI0C,EAAE/E,EAAEC,EAAC,GAAED,EAAEC,KAAE,CAAC,CAAC,KAAGmN,GAAE/K,EAAC,IAAEoM,IAAGxB,KAAEG,GAAE/K,KAAE,CAAC,GAAE6K,KAAE,QAAOC,KAAE,QAAO5O,KAAE,QAAO2O,KAAEiB,GAAElB,IAAE,EAAE,GAAEE,KAAEgB,GAAElB,IAAE,EAAE,GAAE1O,KAAE6P,GAAEnB,IAAE,CAAC,GAAE,IAAIlI,EAAEmI,GAAE,IAAEC,GAAE,IAAE5O,GAAE,GAAE2O,GAAE,IAAEC,GAAE,IAAE5O,GAAE,CAAC,IAAG6O,GAAE/K,KAAE,CAAC,GAAEsM,GAAEvB,GAAE/K,KAAE,EAAE,CAAC,GAAE+K,GAAE/K,KAAE,EAAE,CAAC,GAAEuH,KAAE1P,GAAE0F,IAAEgP,GAAE/B,EAAC,GAAEwB,GAAExB,IAAEC,IAAEC,EAAC,GAAE8B,GAAExM,EAAC,GAAE+K,GAAE/K,EAAC,CAAC,GAAE2K,KAAEwB,GAAED,GAAE1E,CAAC,GAAEyE,GAAEzE,GAAErQ,GAAEgE,CAAC,CAAC,GAAEoC,KAAEmN,IAAEA,KAAED,IAAEA,KAAED,IAAEA,KAAE2B,GAAE5B,GAAEhD,EAAC,GAAEgD,IAAEpP,GAAEA,IAAEhE,GAAEA,IAAEqQ,GAAEA,IAAE2E,GAAE5E,IAAEoD,EAAC;AAAE,eAAOzQ,EAAE,CAAC,IAAEiS,GAAE3E,GAAEtN,EAAE,CAAC,CAAC,GAAEA,EAAE,CAAC,IAAEiS,GAAEhV,GAAE+C,EAAE,CAAC,CAAC,GAAEA,EAAE,CAAC,IAAEiS,GAAEhR,GAAEjB,EAAE,CAAC,CAAC,GAAEA,EAAE,CAAC,IAAEiS,GAAE5B,GAAErQ,EAAE,CAAC,CAAC,GAAEA,EAAE,CAAC,IAAEiS,GAAE3B,IAAEtQ,EAAE,CAAC,CAAC,GAAEA,EAAE,CAAC,IAAEiS,GAAE1B,IAAEvQ,EAAE,CAAC,CAAC,GAAEA,EAAE,CAAC,IAAEiS,GAAEzB,IAAExQ,EAAE,CAAC,CAAC,GAAEA,EAAE,CAAC,IAAEiS,GAAE5O,IAAErD,EAAE,CAAC,CAAC,GAAEA;AAAA,MAAC;AAAC,UAAIyS,KAAE,SAAShP,GAAE;AAAC,iBAASzD,EAAEA,GAAE/C,GAAEgE,GAAE;AAAC,cAAIoP,IAAE;AAAK,cAAerQ,MAAZ,aAA2BA,MAAZ,UAAc,OAAM,IAAI,MAAM,CAAC;AAAE,cAAIsQ,KAAErP,KAAG,CAAE;AAAC,kBAAOoP,IAAE5M,EAAE,KAAK,MAAKzD,GAAE/C,GAAEgE,CAAC,KAAG,MAAM,IAAEoP,EAAE,GAAEA,EAAE,IAAE,IAAGA,EAAE,IAAE,IAAGA,EAAE,IAAE,EAAEA,EAAE,GAAEA,EAAE,GAAEA,EAAE,CAAC,GAAEA,EAAE,IAAEmC,IAAEnC,EAAE,IAAE,SAAS5M,IAAE;AAAC,mBAAOA,GAAE,MAAO;AAAA,UAAA,GAAE4M,EAAE,IAAEkC,IAAElC,EAAE,IAAE,SAAS5M,IAAE6J,IAAErQ,IAAEgE,IAAE;AAAC,mBAAO,SAASwC,IAAEzD,IAAEsN,IAAErQ,IAAEgE,IAAE;AAAC,uBAAQoP,IAAEC,KAAE,MAAItQ,KAAE,QAAM,MAAI,IAAGuQ,KAAEvQ,KAAEsN,IAAE7J,GAAE,UAAQ6M,KAAG,CAAA7M,GAAE,KAAK,CAAC;AAAE,mBAAIA,GAAEzD,OAAI,CAAC,KAAG,OAAK,KAAGA,KAAE,IAAGyD,GAAE6M,EAAC,IAAE,aAAWC,IAAE9M,GAAE6M,KAAE,CAAC,IAAEC,KAAE,aAAW,GAAEF,KAAE,GAAEA,KAAE5M,GAAE,QAAO4M,MAAG,GAAG,CAAApT,KAAEuV,GAAE/O,GAAE,MAAM4M,IAAEA,KAAE,EAAE,GAAEpT,EAAC;AAAE,qBAAkBgE,OAAZ,YAAc,EAAEhE,KAAEA,IAAG,CAAC,EAAE,GAAEA,GAAE,CAAC,EAAE,GAAEA,GAAE,CAAC,EAAE,GAAEA,GAAE,CAAC,EAAE,GAAEA,GAAE,CAAC,EAAE,GAAEA,GAAE,CAAC,EAAE,GAAEA,GAAE,CAAC,EAAE,GAAEA,GAAE,CAAC,EAAE,GAAEA,GAAE,CAAC,EAAE,GAAEA,GAAE,CAAC,EAAE,GAAEA,GAAE,CAAC,EAAE,GAAEA,GAAE,CAAC,EAAE,CAAC,IAAE,CAACA,GAAE,CAAC,EAAE,GAAEA,GAAE,CAAC,EAAE,GAAEA,GAAE,CAAC,EAAE,GAAEA,GAAE,CAAC,EAAE,GAAEA,GAAE,CAAC,EAAE,GAAEA,GAAE,CAAC,EAAE,GAAEA,GAAE,CAAC,EAAE,GAAEA,GAAE,CAAC,EAAE,GAAEA,GAAE,CAAC,EAAE,GAAEA,GAAE,CAAC,EAAE,GAAEA,GAAE,CAAC,EAAE,GAAEA,GAAE,CAAC,EAAE,GAAEA,GAAE,CAAC,EAAE,GAAEA,GAAE,CAAC,EAAE,GAAEA,GAAE,CAAC,EAAE,GAAEA,GAAE,CAAC,EAAE,CAAC;AAAA,YAAC,EAAEwG,IAAE6J,IAAErQ,IAAEgE,IAAEjB,CAAC;AAAA,UAAC,GAAEqQ,EAAE,IAAEkC,GAAEvS,CAAC,GAAEqQ,EAAE,IAAE,MAAKA,EAAE,IAAcrQ,MAAZ,YAAc,MAAI,KAAIqQ,EAAE,IAAE,IAAGC,GAAE,WAASD,EAAE,EAAEhD,EAAE,WAAUiD,GAAE,SAAQD,EAAE,CAAC,CAAC,GAAEA;AAAA,QAAC;AAAC,eAAO3M,EAAE1D,GAAEyD,CAAC,GAAEzD;AAAA,MAAC,EAAEyQ,CAAC,GAAEiC,KAAE,CAAC,IAAIlK,EAAE,GAAE,CAAC,GAAE,IAAIA,EAAE,GAAE,KAAK,GAAE,IAAIA,EAAE,YAAW,KAAK,GAAE,IAAIA,EAAE,YAAW,UAAU,GAAE,IAAIA,EAAE,GAAE,KAAK,GAAE,IAAIA,EAAE,GAAE,UAAU,GAAE,IAAIA,EAAE,YAAW,UAAU,GAAE,IAAIA,EAAE,YAAW,KAAK,GAAE,IAAIA,EAAE,GAAE,GAAG,GAAE,IAAIA,EAAE,GAAE,GAAG,GAAE,IAAIA,EAAE,GAAE,UAAU,GAAE,IAAIA,EAAE,GAAE,UAAU,GAAE,IAAIA,EAAE,GAAE,UAAU,GAAE,IAAIA,EAAE,YAAW,GAAG,GAAE,IAAIA,EAAE,YAAW,KAAK,GAAE,IAAIA,EAAE,YAAW,KAAK,GAAE,IAAIA,EAAE,YAAW,KAAK,GAAE,IAAIA,EAAE,YAAW,GAAG,GAAE,IAAIA,EAAE,GAAE,KAAK,GAAE,IAAIA,EAAE,YAAW,UAAU,GAAE,IAAIA,EAAE,YAAW,UAAU,GAAE,IAAIA,EAAE,YAAW,KAAK,GAAE,IAAIA,EAAE,GAAE,UAAU,GAAE,IAAIA,EAAE,YAAW,UAAU,CAAC,GAAEmK,KAAE,CAAC,CAAC,GAAE,IAAG,GAAE,IAAG,EAAE,GAAE,CAAC,GAAE,IAAG,IAAG,IAAG,CAAC,GAAE,CAAC,IAAG,GAAE,IAAG,IAAG,EAAE,GAAE,CAAC,IAAG,IAAG,IAAG,IAAG,EAAE,GAAE,CAAC,IAAG,IAAG,IAAG,GAAE,EAAE,CAAC;AAAE,eAASC,GAAEnP,GAAE;AAAC,YAAIzD,GAAEsN,IAAE,CAAE;AAAC,aAAItN,IAAE,GAAEA,IAAE,GAAEA,KAAG,EAAE,CAAAsN,EAAEtN,CAAC,IAAE,CAAC,IAAIwI,EAAE,GAAE,CAAC,GAAE,IAAIA,EAAE,GAAE,CAAC,GAAE,IAAIA,EAAE,GAAE,CAAC,GAAE,IAAIA,EAAE,GAAE,CAAC,GAAE,IAAIA,EAAE,GAAE,CAAC,CAAC;AAAE,eAAO8E;AAAA,MAAC;AAAC,eAASuF,GAAEpP,GAAE;AAAC,YAAIzD,GAAEsN,IAAE;AAAG,aAAItN,IAAE,GAAEA,IAAE,GAAEA,KAAG,EAAE,CAAAsN,EAAEtN,CAAC,IAAEyD,EAAEzD,CAAC,EAAE,MAAO;AAAC,eAAOsN;AAAA,MAAC;AAAC,eAASwF,GAAGrP,GAAEzD,GAAE;AAAC,YAAIsN,GAAErQ,GAAEgE,GAAEoP,GAAEC,IAAEC,IAAEC,IAAEnN,IAAEgK,IAAEoD,KAAE,CAAE,GAAC3K,KAAE,CAAA;AAAG,YAAUrC,MAAP,KAAS,MAAIxG,IAAE,GAAEA,IAAEwG,EAAE,QAAOxG,KAAG,EAAE,CAAA+C,GAAG/C,MAAI,KAAG,CAAC,GAAGA,MAAI,KAAG,IAAE,CAAC,IAAEkV,GAAEnS,GAAG/C,MAAI,KAAG,CAAC,GAAGA,MAAI,KAAG,IAAE,CAAC,GAAE,IAAIuL,EAAE/E,EAAExG,IAAE,CAAC,GAAEwG,EAAExG,CAAC,CAAC,CAAC;AAAE,aAAIqQ,IAAE,GAAEA,IAAE,IAAGA,KAAG,GAAE;AAAC,eAAI+C,IAAEuC,GAAC,GAAG3V,IAAE,GAAEA,IAAE,GAAEA,KAAG,EAAE,CAAAwT,GAAExT,CAAC,KAAGqT,KAAEtQ,EAAE/C,CAAC,EAAE,CAAC,GAAEsT,KAAEvQ,EAAE/C,CAAC,EAAE,CAAC,GAAEuT,KAAExQ,EAAE/C,CAAC,EAAE,CAAC,GAAEoG,KAAErD,EAAE/C,CAAC,EAAE,CAAC,GAAEoQ,KAAErN,EAAE/C,CAAC,EAAE,CAAC,GAAE,IAAIuL,EAAE8H,GAAE,IAAEC,GAAE,IAAEC,GAAE,IAAEnN,GAAE,IAAEgK,GAAE,GAAEiD,GAAE,IAAEC,GAAE,IAAEC,GAAE,IAAEnN,GAAE,IAAEgK,GAAE,CAAC;AAAG,eAAIpQ,IAAE,GAAEA,IAAE,GAAEA,KAAG,EAAE,CAAA6I,GAAE7I,CAAC,IAAEkV,GAAE1B,IAAGxT,IAAE,KAAG,CAAC,GAAE0U,GAAElB,IAAGxT,IAAE,KAAG,CAAC,GAAE,CAAC,CAAC;AAAE,eAAIA,IAAE,GAAEA,IAAE,GAAEA,KAAG,EAAE,MAAIgE,IAAE,GAAEA,IAAE,GAAEA,KAAG,EAAE,CAAAjB,EAAE/C,CAAC,EAAEgE,CAAC,IAAEkR,GAAEnS,EAAE/C,CAAC,EAAEgE,CAAC,GAAE6E,GAAE7I,CAAC,CAAC;AAAE,eAAIA,IAAE,GAAEA,IAAE,GAAEA,KAAG,EAAE,MAAIgE,IAAE,GAAEA,IAAE,GAAEA,KAAG,EAAE,CAAAoP,EAAEpP,CAAC,GAAG,IAAEhE,IAAE,IAAEgE,KAAG,CAAC,IAAE0Q,GAAE3R,EAAE/C,CAAC,EAAEgE,CAAC,GAAE0R,GAAE1V,CAAC,EAAEgE,CAAC,CAAC;AAAE,eAAIhE,IAAE,GAAEA,IAAE,GAAEA,KAAG,EAAE,MAAIgE,IAAE,GAAEA,IAAE,GAAEA,KAAG,EAAE,CAAAjB,EAAE/C,CAAC,EAAEgE,CAAC,IAAEkR,GAAE9B,EAAEpT,CAAC,EAAEgE,CAAC,GAAE,IAAIuH,EAAE,CAAC6H,GAAGpT,IAAE,KAAG,CAAC,EAAEgE,CAAC,EAAE,IAAEoP,GAAGpT,IAAE,KAAG,CAAC,EAAEgE,CAAC,EAAE,GAAE,CAACoP,GAAGpT,IAAE,KAAG,CAAC,EAAEgE,CAAC,EAAE,IAAEoP,GAAGpT,IAAE,KAAG,CAAC,EAAEgE,CAAC,EAAE,CAAC,CAAC;AAAE,UAAAjB,EAAE,CAAC,EAAE,CAAC,IAAEmS,GAAEnS,EAAE,CAAC,EAAE,CAAC,GAAE0S,GAAEpF,CAAC,CAAC;AAAA,QAAC;AAAC,eAAOtN;AAAA,MAAC;AAAC,eAAS+S,GAAGtP,GAAE;AAAC,YAAIzD,GAAEsN,GAAErQ,IAAE,GAAEgE,IAAE,CAAC,GAAE,CAAC,GAAEoP,IAAE,CAAC,aAAW5M,GAAEA,IAAE,aAAW,OAAO;AAAE,aAAIzD,IAAE,GAAEA,KAAG,GAAEA,IAAI,EAAKsN,IAAE+C,EAAErQ,KAAG,CAAC,MAAI,IAAEA,IAAE,SAArB,KAA+B/C,MAAJ,MAAQgE,EAAEhE,IAAE,KAAG,CAAC,KAAGqQ,KAAG,KAAGrQ,IAAE,IAAGA,KAAG;AAAG,eAAOA,IAAMA,MAAJ,IAAMA,IAAE,GAAEgE,EAAE,CAAC,KAAGhE,GAAE,EAAC,OAAMA,IAAE,IAAE,IAAEgE,IAAE,CAACA,EAAE,CAAC,CAAC,GAAE,QAAO,IAAE,IAAEhE,EAAC;AAAA,MAAC;AAAC,eAAS+V,GAAGvP,GAAE;AAAC,eAAO+M,EAAEuC,GAAGtP,EAAE,MAAM,GAAEA,CAAC;AAAA,MAAC;AAAC,eAASwP,GAAGxP,GAAEzD,GAAE;AAAC,YAAIsN,GAAErQ,IAAE8V,GAAG/S,CAAC,GAAEiB,IAAEjB,MAAI,GAAEqQ,KAAGpP,KAAGhE,IAAEuT,EAAEvT,GAAEwG,CAAC,GAAG,MAAM,SAAOxC,KAAGA;AAAE,aAAIqM,IAAE,GAAEA,IAAE+C,GAAE/C,IAAI,CAAArQ,EAAE,MAAM,KAAK,CAAC;AAAE,eAAOA,EAAE;AAAA,MAAK;AAAC,UAAIiW,KAAG,SAASzP,GAAE;AAAC,iBAASzD,EAAEA,GAAE/C,GAAEgE,GAAE;AAAC,cAAIoP,IAAE,MAAKC,KAAE,GAAEE,KAAE,GAAEnN,KAAEpC,KAAG,CAAE;AAAC,eAAQoP,IAAE5M,EAAE,KAAK,MAAKzD,GAAE/C,GAAEgE,CAAC,KAAG,MAAM,cAAjC,GAA2C;AAAC,gBAAGoC,GAAE,WAASA,GAAE,QAAQ,OAAM,IAAI,MAAM,+BAA+B;AAAE,gBAAiBgN,EAAE,MAAhB,eAAiCA,EAAE,MAAhB,YAAkB,OAAM,IAAI,MAAM,0CAA0C;AAAA,UAAC;AAAC,kBAAOA,EAAE,IAAE,GAAEA,EAAE,IAAE,EAAEA,EAAE,GAAEA,EAAE,GAAEA,EAAE,CAAC,GAAEA,EAAE,IAAEyC,IAAGzC,EAAE,IAAEwC,IAAExC,EAAE,IAAEuC,IAAEvC,EAAE,IAAEuC,GAAG,GAACvC,EAAE,IAAE,IAAGrQ,GAAG;AAAA,YAAA,KAAI;AAAW,cAAAqQ,EAAE,IAAEG,KAAE,MAAKH,EAAE,IAAE,KAAIA,EAAE,IAAE,IAAGA,EAAE,IAAEA,EAAE;AAAE;AAAA,YAAM,KAAI;AAAW,cAAAA,EAAE,IAAEG,KAAE,MAAKH,EAAE,IAAE,KAAIA,EAAE,IAAE,IAAGA,EAAE,IAAEA,EAAE;AAAE;AAAA,YAAM,KAAI;AAAW,cAAAA,EAAE,IAAEG,KAAE,KAAIH,EAAE,IAAE,KAAIA,EAAE,IAAE,IAAGA,EAAE,IAAEA,EAAE;AAAE;AAAA,YAAM,KAAI;AAAW,cAAAA,EAAE,IAAEG,KAAE,KAAIH,EAAE,IAAE,KAAIA,EAAE,IAAE,IAAGA,EAAE,IAAEA,EAAE;AAAE;AAAA,YAAM,KAAI;AAAW,cAAAC,KAAE,IAAGD,EAAE,IAAEG,KAAE,MAAKH,EAAE,IAAE,IAAGA,EAAE,IAAE,IAAGA,EAAE,IAAE,IAAGA,EAAE,IAAE;AAAK;AAAA,YAAM,KAAI;AAAW,cAAAC,KAAE,IAAGD,EAAE,IAAEG,KAAE,MAAKH,EAAE,IAAE,IAAGA,EAAE,IAAE,IAAGA,EAAE,IAAE,IAAGA,EAAE,IAAE;AAAK;AAAA,YAAM,KAAI;AAAU,cAAAC,KAAE,GAAED,EAAE,IAAEG,KAAE,MAAKH,EAAE,EAAEpP,CAAC,GAAEoP,EAAE,IAAE,IAAGA,EAAE,IAAE,IAAGA,EAAE,IAAE,IAAGA,EAAE,IAAEA,EAAE;AAAE;AAAA,YAAM,KAAI;AAAU,cAAAC,KAAE,GAAED,EAAE,IAAEG,KAAE,MAAKH,EAAE,EAAEpP,CAAC,GAAEoP,EAAE,IAAE,IAAGA,EAAE,IAAE,IAAGA,EAAE,IAAE,IAAGA,EAAE,IAAEA,EAAE;AAAE;AAAA,YAAM,KAAI;AAAY,cAAAA,EAAE,IAAEG,KAAE,MAAKF,KAAED,EAAE,EAAEpP,CAAC,GAAEoP,EAAE,IAAE,IAAGA,EAAE,IAAE,IAAGA,EAAE,IAAE,IAAGA,EAAE,IAAE;AAAK;AAAA,YAAM,KAAI;AAAY,cAAAA,EAAE,IAAEG,KAAE,MAAKF,KAAED,EAAE,EAAEpP,CAAC,GAAEoP,EAAE,IAAE,IAAGA,EAAE,IAAE,IAAGA,EAAE,IAAE,IAAGA,EAAE,IAAE;AAAK;AAAA,YAAM;AAAQ,oBAAM,IAAI,MAAM,CAAC;AAAA,UAAC;AAAC,iBAAOA,EAAE,IAAE,SAAS5M,IAAEzD,IAAEsN,IAAErQ,IAAEgE,IAAE;AAAC,mBAAO,SAASwC,IAAEzD,IAAEsN,IAAErQ,IAAEgE,IAAEoP,IAAEC,IAAE;AAAC,kBAAIC,IAAEC,IAAEnN,KAAE,GAAEgK,KAAE,CAAE,GAACoD,KAAExP,OAAI,GAAE6E,KAAE9F,OAAI;AAAE,mBAAIuQ,KAAE,GAAEA,KAAEzK,MAAG9F,MAAGiB,IAAEsP,MAAGE,GAAE,CAAAxT,KAAE6V,GAAGrP,GAAE,MAAM8M,IAAEA,KAAEE,EAAC,GAAExT,EAAC,GAAE+C,MAAGiB;AAAE,mBAAIwC,KAAEA,GAAE,MAAM8M,EAAC,GAAEvQ,MAAGiB,IAAEwC,GAAE,SAAOgN,KAAG,CAAAhN,GAAE,KAAK,CAAC;AAAE,mBAAIA,IAAG8M,KAAEvQ,OAAI,MAAI,CAAC,KAAGqQ,MAAGE,KAAE,IAAE,GAAE9M,GAAEgN,KAAE,CAAC,KAAG,YAAWxT,KAAE6V,GAAGrP,IAAExG,EAAC,GAAE,KAAGoQ,GAAE,SAAOiD,OAAIE,KAAEvT,GAAEoG,KAAE,CAAC,EAAEA,KAAE,IAAE,CAAC,GAAEgK,GAAE,KAAKmD,GAAE,CAAC,GAAE,EAAE,KAAGnD,GAAE,UAAQiD,OAAK,CAAAjD,GAAE,KAAKmD,GAAE,CAAC,GAAK,MAAInN,MAAG,KAAGpC,MAAb,MAAiB6R,GAAG,MAAK7V,EAAC,GAAEoG,KAAE;AAAG,qBAAOgK;AAAA,YAAC,EAAE5J,IAAEzD,IAAE,GAAE/C,IAAEuT,IAAEF,IAAErP,EAAC;AAAA,UAAC,GAAEoC,GAAE,WAASgN,EAAE,EAAEhD,EAAE,WAAUhK,GAAE,SAAQgN,EAAE,CAAC,CAAC,GAAEA;AAAA,QAAC;AAAC,eAAO3M,EAAE1D,GAAEyD,CAAC,GAAEzD,EAAE,UAAU,IAAE,SAASyD,GAAEzD,GAAE;AAAC,cAAIsN,IAAE,SAAS7J,IAAE;AAAC,gBAAIzD,KAAEyD,MAAG,CAAE;AAAC,mBAAM,EAAC,UAAS4J,EAAE,YAAWrN,GAAE,UAAS,GAAE,EAAC,OAAM,CAAE,GAAC,QAAO,EAAC,CAAC,GAAE,eAAcqN,EAAE,iBAAgBrN,GAAE,eAAc,GAAE,EAAC,OAAM,CAAE,GAAC,QAAO,EAAC,CAAC,EAAC;AAAA,UAAC,EAAEyD,KAAG,CAAA,CAAE;AAAE,UAAAzD,MAAIsN,EAAE,WAAStN;AAAG,cAAI/C,IAAEuT,EAAEwC,GAAG1F,EAAE,QAAQ,GAAE0F,GAAG1F,EAAE,aAAa,CAAC;AAAE,cAAOA,EAAE,cAAc,WAApB,KAAgCA,EAAE,SAAS,WAAf,GAAsB;AAAC,qBAAQrM,KAAEgS,GAAGhW,GAAE,KAAK,MAAI,CAAC,GAAEoT,KAAE,GAAEA,KAAEpP,GAAE,QAAOoP,MAAG,KAAK,MAAI,EAAE,MAAK,IAAE,KAAK,EAAEpP,GAAE,MAAMoP,IAAEA,MAAG,KAAK,MAAI,EAAE,GAAE,KAAK,CAAC,GAAE,KAAK,KAAG,KAAK;AAAE,mBAAO;AAAA,UAAC;AAAC,iBAAO;AAAA,QAAE,GAAErQ,EAAE,UAAU,IAAE,SAASyD,GAAE;AAAC,cAAIzD,IAAE,SAASyD,IAAE;AAAC,gBAAIzD,KAAEyD,MAAG,CAAE;AAAC,mBAAM,EAAC,SAAQ4J,EAAE,WAAUrN,GAAE,SAAQ,CAAC,GAAE,UAAS,EAAC,OAAM,CAAC,UAAU,GAAE,QAAO,GAAE,GAAE,eAAcqN,EAAE,iBAAgBrN,GAAE,eAAc,GAAE,EAAC,OAAM,CAAE,GAAC,QAAO,EAAC,CAAC,EAAC;AAAA,UAAC,EAAEyD,KAAG,CAAA,CAAE;AAAE,eAAK,EAAEA,GAAEzD,EAAE,QAAQ;AAAE,mBAAQsN,IAAE2F,GAAGD,GAAGhT,EAAE,OAAO,GAAE,KAAK,MAAI,CAAC,GAAE/C,IAAE,GAAEA,IAAEqQ,EAAE,QAAOrQ,KAAG,KAAK,MAAI,EAAE,MAAK,IAAE,KAAK,EAAEqQ,EAAE,MAAMrQ,GAAEA,KAAG,KAAK,MAAI,EAAE,GAAE,KAAK,CAAC,GAAE,KAAK,KAAG,KAAK;AAAE,eAAK,IAAE;AAAA,QAAE,GAAE+C,EAAE,UAAU,IAAE,SAASyD,GAAE;AAAC,cAAIzD,IAAEwQ,EAAE,EAAC,OAAM,KAAK,EAAE,SAAQ,QAAO,KAAK,EAAC,GAAE,SAAS/M,GAAE;AAAC,gBAAIzD,GAAEsN,IAAErQ,KAAE,GAAEgE,KAAE,CAAC,GAAE,CAAC,GAAEoP,KAAE,CAAC,aAAW5M,GAAEA,IAAE,aAAW,OAAO;AAAE,iBAAIzD,IAAE,GAAEA,KAAG,GAAEA,IAAI,EAAIsN,KAAE+C,GAAErQ,KAAG,CAAC,MAAI,IAAEA,IAAE,QAApB,KAA8B/C,OAAJ,MAAQgE,GAAEhE,MAAG,CAAC,KAAGqQ,MAAG,IAAErQ,IAAEA,MAAG;AAAG,mBAAOgE,IAAGhE,KAAMA,OAAJ,IAAMA,KAAE,MAAI,CAAC,KAAGA,MAAG,IAAEA,IAAE,EAAC,OAAMA,KAAE,IAAE,IAAEgE,KAAE,CAACA,GAAE,CAAC,CAAC,GAAE,QAAO,IAAE,IAAEhE,GAAC;AAAA,UAAC,EAAEwG,EAAE,SAAS,CAAC;AAAE,iBAAO,KAAK,EAAEzD,EAAE,OAAMA,EAAE,QAAO,KAAK,GAAE,KAAK,EAAE,KAAK,CAAC,GAAEyD,EAAE,SAAS;AAAA,QAAC,GAAEzD;AAAA,MAAC,EAAEyQ,CAAC;AAAE,aAAO,WAAU;AAAC,iBAAShN,EAAEA,GAAEzD,GAAEsN,GAAE;AAAC,cAAY7J,KAAT,QAAW,MAAK,IAAE,IAAI8N,GAAE9N,GAAEzD,GAAEsN,CAAC;AAAA,mBAAqB7J,KAAX,aAAyBA,KAAX,UAAa,MAAK,IAAE,IAAIiO,GAAEjO,GAAEzD,GAAEsN,CAAC;AAAA,mBAAqB7J,KAAX,aAAyBA,KAAX,UAAa,MAAK,IAAE,IAAIgP,GAAEhP,GAAEzD,GAAEsN,CAAC;AAAA,eAAM;AAAC,gBAAe7J,KAAZ,cAA2BA,KAAZ,cAA2BA,KAAZ,cAA2BA,KAAZ,cAA2BA,KAAZ,cAA2BA,KAAZ,cAA4BA,KAAb,eAA6BA,KAAb,eAA2BA,KAAX,aAAyBA,KAAX,UAAa,OAAM,IAAI,MAAM,CAAC;AAAE,iBAAK,IAAE,IAAIyP,GAAGzP,GAAEzD,GAAEsN,CAAC;AAAA,UAAC;AAAA,QAAC;AAAC,eAAO7J,EAAE,UAAU,SAAO,SAASA,GAAE;AAAC,eAAK,EAAE,OAAOA,CAAC;AAAA,QAAC,GAAEA,EAAE,UAAU,UAAQ,SAASA,GAAEzD,GAAE;AAAC,iBAAO,KAAK,EAAE,QAAQyD,GAAEzD,CAAC;AAAA,QAAC,GAAEyD,EAAE,UAAU,aAAW,SAASA,GAAEzD,GAAEsN,GAAE;AAAC,eAAK,EAAE,WAAW7J,GAAEzD,GAAEsN,CAAC;AAAA,QAAC,GAAE7J,EAAE,UAAU,UAAQ,SAASA,GAAEzD,GAAE;AAAC,iBAAO,KAAK,EAAE,QAAQyD,GAAEzD,CAAC;AAAA,QAAC,GAAEyD;AAAA,MAAC,EAAC;AAAA,IAAE,CAAG;AAAA;;;;;UCZztrB,OAAO,eAAe0P,IAAS,cAAc,EAAE,OAAO,IAAM,GAC5DA,GAAA,uBAA+BA,GAAA,uBAA+B;AAC9D,WAASC,EAAqB5P,GAAM;AAChC,WAAO,OAAO,KAAK,OAAO,OAAO,gBAAgB,IAAI,WAAWA,CAAI,CAAC,CAAC;AAAA,EAC1E;AACA2P,EAAAA,GAAA,uBAA+BC;AAC/B,WAASC,EAAqB7P,GAAM;AAChC,WAAO,OAAO,OAAO,gBAAgB,IAAI,YAAYA,CAAI,CAAC;AAAA,EAC9D;AACA2P,SAAAA,GAAA,uBAA+BE;;;;;UCT/B,OAAO,eAAeC,IAAS,cAAc,EAAE,OAAO,IAAM,GACzCA,GAAA,cAAG;AACtB,iBAAeC,EAAY1M,GAAK3I,GAAM;AAClC,QAAIsV,IAAY,OAAO3M,KAAQ,WAAW,OAAO,KAAKA,GAAK,OAAO,IAAIA,GAClE4M,IAAa,OAAOvV,KAAS,WAAW,OAAO,KAAKA,GAAM,OAAO,IAAIA;AACzE,UAAMwV,IAAW,EAAE,MAAM,QAAQ,MAAM,UAAW,GAC5CC,IAAU,MAAM,OAAO,OAAO,OAAO,UAAU,OAAOH,GAAWE,GAAU,IAAO,CAAC,MAAM,CAAC;AAChG,WAAO,OAAO,KAAK,MAAM,OAAO,OAAO,KAAKA,GAAUC,GAASF,CAAU,CAAC;AAAA,EAC9E;AACAH,SAAAA,GAAA,cAAsBC;;;;;UCTtB,OAAO,eAAeK,IAAS,cAAc,EAAE,OAAO,IAAM,GACvCA,GAAA,gBAAG;AACxB,iBAAeC,EAAchN,GAAKiN,GAAMC,GAAYC,GAAQ;AACxD,UAAMR,IAAY,OAAO3M,KAAQ,WAAW,OAAO,KAAKA,GAAK,OAAO,IAAIA,GAClEoN,IAAa,OAAOH,KAAS,WAAW,OAAO,KAAKA,GAAM,OAAO,IAAIA,GACrEI,IAAa,MAAM,OAAO,OAAO,OAAO,UAAU,OAAOV,GAAW,EAAE,MAAM,SAAQ,GAAI,IAAO,CAAC,YAAY,CAAC,GAC7GW,IAAc,MAAM,OAAO,OAAO,OAAO,WAAW,EAAE,MAAM,UAAU,MAAM,WAAW,MAAMF,GAAY,YAAYF,EAAU,GAAIG,GAAYF,IAAS,CAAC;AAC/J,WAAO,OAAO,KAAKG,CAAW;AAAA,EAClC;AACAP,SAAAA,GAAA,gBAAwBC;;;;;UCTxB,OAAO,eAAeO,IAAS,cAAc,EAAE,OAAO,IAAM,GAC9CA,GAAA,SAAG;AACjB,iBAAeC,EAAOzU,GAAQ;AAC1B,WAAI,OAAOA,KAAW,WACX,OAAO,KAAK,MAAM,OAAO,OAAO,OAAO,WAAW,OAAO,KAAKA,GAAQ,OAAO,CAAC,CAAC,IAEnF,OAAO,KAAK,MAAM,OAAO,OAAO,OAAO,WAAWA,CAAM,CAAC;AAAA,EACpE;AACAwU,SAAAA,GAAA,SAAiBC;;;;;UCRjB,OAAO,eAAeC,IAAS,cAAc,EAAE,OAAO,IAAM,GAC9CA,GAAA,SAAG;AACjB,iBAAeC,EAAO3U,GAAQ;AAC1B,WAAI,OAAOA,KAAW,WACX,OAAO,KAAK,MAAM,OAAO,OAAO,OAAO,WAAW,OAAO,KAAKA,GAAQ,OAAO,CAAC,CAAC,IAEnF,OAAO,KAAK,MAAM,OAAO,OAAO,OAAO,WAAWA,CAAM,CAAC;AAAA,EACpE;AACA0U,SAAAA,GAAA,SAAiBC;;;;;ACRjB,WAAO,eAAcC,GAAU,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAAA,SAAiBA,WAAiBA,EAAwB,gBAAAA,EAAA,cAAsBA,EAA+B,uBAAAA,EAAA,uBAA+B;AAC9I,QAAIC,IAAoB9V,GAAoC;AAC5D,WAAO,eAAe6V,GAAS,wBAAwB,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOC,EAAkB;AAAA,IAAuB,EAAA,CAAE,GAChJ,OAAO,eAAeD,GAAS,wBAAwB,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOC,EAAkB;AAAA,IAAuB,EAAA,CAAE;AAChJ,QAAInB,IAAgB1U,GAAgC;AACpD,WAAO,eAAe4V,GAAS,eAAe,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOlB,EAAc;AAAA,IAAc,EAAA,CAAE;AAC1H,QAAIM,IAAkBjS,GAAkC;AACxD,WAAO,eAAe6S,GAAS,iBAAiB,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOZ,EAAgB;AAAA,IAAgB,EAAA,CAAE;AAChI,QAAIQ,IAAWvJ,GAA2B;AAC1C,WAAO,eAAe2J,GAAS,UAAU,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOJ,EAAS;AAAA,IAAS,EAAA,CAAE;AAC3G,QAAIE,IAAWxJ,GAA2B;AAC1C,WAAO,eAAe0J,GAAS,UAAU,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOF,EAAS;AAAA,IAAO,EAAI,CAAA;AAAA;;;;;;ACZ3G,MAAIhW,IAAmBC,MAAQA,GAAK,mBAAoB,SAAUC,GAAK;AACnE,WAAQA,KAAOA,EAAI,aAAcA,IAAM,EAAE,SAAWA,EAAK;AAAA,EAC5D;AACD,SAAO,eAAe4V,IAAS,cAAc,EAAE,OAAO,IAAM,GAC5DA,GAAA,SAAiBA,GAAuB,kBAAGA,GAAmB,cAAG;AACjE,QAAMM,IAAUpW,EAAgBK,IAAgB,GAC1CgW,IAAsB/V,GAAiC;AAC7D,WAASgW,EAAYhV,GAAQ;AACzB,QAAIX;AACJ,IAAI,OAAOW,KAAW,WAClBX,IAAM,OAAO,KAAKW,GAAQ,OAAO,EAAE,SAAS,KAAK,IAGjDX,IAAMW,EAAO,SAAS,KAAK;AAE/B,QAAIiV,IAAS,IAAIH,EAAQ,QAAQ,WAAW,KAAK;AACjD,IAAAG,EAAO,OAAO5V,CAAG;AACjB,QAAIwF,IAAMoQ,EAAO,QAAQ,KAAK;AAC9B,WAAO,OAAO,KAAKpQ,GAAK,KAAK;AAAA,EACjC;AACA2P,EAAAA,GAAA,cAAsBQ;AACtB,iBAAeE,EAAgBlV,GAAQ;AACnC,WAAOgV,EAAYhV,CAAM;AAAA,EAC7B;AACAwU,EAAAA,GAAA,kBAA0BU;AAC1B,WAAST,EAAOzU,GAAQ;AACpB,eAAW+U,EAAoB,QAAQ/U,CAAM;AAAA,EACjD;AACAwU,SAAAA,GAAA,SAAiBC;;;;;;AC5BjB,MAAI/V,IAAmBC,MAAQA,GAAK,mBAAoB,SAAUC,GAAK;AACnE,WAAQA,KAAOA,EAAI,aAAcA,IAAM,EAAE,SAAWA,EAAK;AAAA,EAC5D;AACD,SAAO,eAAe8V,IAAS,cAAc,EAAE,OAAO,IAAM,GAC5DA,GAAA,SAAiBA,GAAuB,kBAAGA,GAAmB,cAAG;AACjE,QAAMI,IAAUpW,EAAgBK,IAAgB,GAC1CgW,IAAsB/V,GAAiC;AAC7D,WAASmW,EAAYnV,GAAQ;AACzB,QAAIX;AACJ,IAAI,OAAOW,KAAW,WAClBX,IAAM,OAAO,KAAKW,GAAQ,OAAO,EAAE,SAAS,KAAK,IAGjDX,IAAMW,EAAO,SAAS,KAAK;AAE/B,QAAIiV,IAAS,IAAIH,EAAQ,QAAQ,WAAW,KAAK;AACjD,IAAAG,EAAO,OAAO5V,CAAG;AACjB,QAAIwF,IAAMoQ,EAAO,QAAQ,KAAK;AAC9B,WAAO,OAAO,KAAKpQ,GAAK,KAAK;AAAA,EACjC;AACA6P,EAAAA,GAAA,cAAsBS;AACtB,iBAAeC,EAAgBpV,GAAQ;AACnC,WAAOmV,EAAYnV,CAAM;AAAA,EAC7B;AACA0U,EAAAA,GAAA,kBAA0BU;AAC1B,iBAAeT,EAAO3U,GAAQ;AAC1B,eAAW+U,EAAoB,QAAQ/U,CAAM;AAAA,EACjD;AACA0U,SAAAA,GAAA,SAAiBC;;;;;UC5BjB,OAAO,eAAeX,IAAS,cAAc,EAAE,OAAO,IAAM,GACvCA,GAAA,gBAAG;AACxB,QAAMe,IAAsBhW,GAAiC;AAC7D,WAASkV,EAAchN,GAAKiN,GAAMC,GAAYC,GAAQ;AAClD,eAAWW,EAAoB,eAAe9N,GAAKiN,GAAMC,GAAYC,CAAM;AAAA,EAC/E;AACAJ,SAAAA,GAAA,gBAAwBC;;;;;;ACNxB,MAAIvV,IAAmBC,MAAQA,GAAK,mBAAoB,SAAUC,GAAK;AACnE,WAAQA,KAAOA,EAAI,aAAcA,IAAM,EAAE,SAAWA,EAAK;AAAA,EAC5D;AACD,SAAO,eAAe8U,IAAS,cAAc,EAAE,OAAO,IAAM,GAC5DA,GAAA,cAAsBA,GAAA,uBAA+B;AACrD,QAAMoB,IAAUpW,EAAgBK,IAAgB,GAC1CgW,IAAsB/V,GAAiC;AAC7D,iBAAeqW,EAAqBpO,GAAK3I,GAAM;AAC3C,QAAIsV,IAAY,OAAO3M,KAAQ,WAAW,OAAO,KAAKA,GAAK,OAAO,IAAIA,GAClE4M,IAAa,OAAOvV,KAAS,WAAW,OAAO,KAAKA,GAAM,OAAO,IAAIA;AACzE,UAAMgX,IAAS,IAAIR,EAAQ,QAAQ,WAAW,OAAO;AAAA,MACjD,SAAS,EAAE,OAAOlB,EAAU,SAAS,KAAK,GAAG,QAAQ,MAAO;AAAA,IACpE,CAAK;AACD,IAAA0B,EAAO,OAAOzB,EAAW,SAAS,KAAK,CAAC;AACxC,UAAM0B,IAAOD,EAAO,QAAQ,KAAK;AACjC,WAAO,OAAO,KAAKC,GAAM,KAAK;AAAA,EAClC;AACA7B,EAAAA,GAAA,uBAA+B2B;AAC/B,WAAS1B,EAAY1M,GAAK3I,GAAM;AAC5B,eAAWyW,EAAoB,aAAa9N,GAAK3I,CAAI;AAAA,EACzD;AACAoV,SAAAA,GAAA,cAAsBC;;;;;UCrBtB,OAAO,eAAeJ,IAAS,cAAc,EAAE,OAAO,IAAM,GAC5DA,GAAA,wBAAgCA,GAA4B,uBAAGA,GAA4B,uBAAG;AAC9F,QAAMwB,IAAsBhW,GAAiC;AAC7D,iBAAeyU,EAAqB5P,GAAM;AACtC,eAAWmR,EAAoB,sBAAsBnR,CAAI;AAAA,EAC7D;AACA,EAAA2P,GAAA,uBAA+BC;AAC/B,iBAAeC,EAAqB7P,GAAM;AACtC,WAAO6P,EAAyB;AAAA,EACpC;AACA,EAAAF,GAAA,uBAA+BE;AAC/B,iBAAe+B,EAAsBC,GAAKC,GAAK;AAC3C,QAAIC,IAAQD,IAAMD;AAClB,QAAIG,IAAa,KAAK,KAAK,KAAK,KAAKD,CAAK,CAAC;AAC3C,QAAIC,IAAa;AACb,YAAM,IAAI,MAAM,oBAAoB;AAIxC,aAFIC,IAAc,KAAK,KAAKD,IAAa,CAAC,GACtCnX,IAAO,KAAK,IAAI,GAAGmX,CAAU,IAAI,OACxB;AACT,UAAI/Q,IAAM,MAAM2O,EAAqBoC,CAAU,GAC3CE,KAASD,IAAc,KAAK,GAC5BE,IAAc;AAClB,eAAS1U,IAAI,GAAGA,IAAIwU,GAAaxU;AAC7B,QAAA0U,KAAelR,EAAIxD,CAAC,IAAI,KAAK,IAAI,GAAGyU,CAAK,GACzCA,KAAS;AAGb,UADAC,IAAcA,IAActX,GACxB,EAAAsX,KAAeJ;AAGnB,eAAOF,IAAMM;AAAA,IACrB;AAAA,EACA;AACA,SAAAxC,GAAA,wBAAgCiC;;;;wBClChC,OAAO,eAAeQ,IAAS,cAAc,EAAE,OAAO,IAAM,GAC5CA,GAAA,WAAG,QAEnBA,GAAA,WAAmB;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AA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AAY;AAAA,IAAW;AAAA,IAAU;AAAA,IAAO;AAAA,IAAU;AAAA,IAAS;AAAA,IAAW;AAAA,IAAU;AAAA,IAAS;AAAA,IAAO;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,IAAS;AAAA,IAAS;AAAA,IAAW;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,IAAU;AAAA,IAAU;AAAA,IAAS;AAAA,IAAO;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAO;AAAA,IAAO;AAAA,IAAW;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAW;AAAA,IAAS;AAAA,IAAS;AAAA,IAAO;AAAA,IAAS;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAS;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAU;AAAA,IAAW;AAAA,IAAW;AAAA,IAAS;AAAA,IAAU;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,IAAW;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAY;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,IAAW;AAAA,IAAW;AAAA,IAAW;AAAA,IAAO;AAAA,IAAS;AAAA,IAAW;AAAA,IAAU;AAAA,IAAS;AAAA,IAAW;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAS;AAAA,IAAO;AAAA,IAAS;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,IAAU;AAAA,IAAS;AAAA,IAAO;AAAA,IAAY;AAAA,IAAU;AAAA,IAAW;AAAA,IAAO;AAAA,IAAU;AAAA,IAAW;AAAA,IAAS;AAAA,IAAU;AAAA,IAAU;AAAA,IAAU;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAU;AAAA,IAAY;AAAA,IAAW;AAAA,IAAW;AAAA,IAAS;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAW;AAAA,IAAW;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAS;AAAA,IAAW;AAAA,IAChyC;AAAA,IAAQ;AAAA,IAAY;AAAA,IAAS;AAAA,IAAS;AAAA,IAAO;AAAA,IAAW;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAU;AAAA,IAAU;AAAA,IAAO;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAU;AAAA,IAAU;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAS;AAAA,IAAU;AAAA,IAAU;AAAA,IAAW;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,IAAW;AAAA,IAAO;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAW;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAW;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAU;AAAA,IAAU;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAU;AAAA,IAAO;AAAA,IAAO;AAAA,IAAW;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAS;AAAA,IAAY;AAAA,IAAU;AAAA,IAAU;AAAA,IAAS;AAAA,IAAW;AAAA,IAAS;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAU;AAAA,IAAW;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAU;AAAA,IAAU;AAAA,IAAU;AAAA,IAAU;AAAA,IAAS;AAAA,IAAO;AAAA,IAAY;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAS;AAAA,IAC1jC;AAAA,IAAW;AAAA,IAAS;AAAA,IAAS;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAO;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAU;AAAA,IAAU;AAAA,IAAW;AAAA,IAAW;AAAA,IAAW;AAAA,IAAO;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAU;AAAA,IAAU;AAAA,IAAO;AAAA,IAAW;AAAA,IAAS;AAAA,IAAY;AAAA,IAAU;AAAA,IAAU;AAAA,IAAS;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAU;AAAA,IAAU;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,IAAW;AAAA,IAAS;AAAA,IAAS;AAAA,IAAY;AAAA,IAAU;AAAA,IAAS;AAAA,IAAW;AAAA,IAAU;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAS;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAS;AAAA,IAAW;AAAA,IAAS;AAAA,IAAS;AAAA,IAAW;AAAA,IAAU;AAAA,IAAU;AAAA,IAAW;AAAA,IAAW;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAY;AAAA,IAAU;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAS;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAW;AAAA,IAAU;AAAA,IAAS;AAAA,IAAS;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAS;AAAA,IAAU;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAS;AAAA,IAAU;AAAA,IAAW;AAAA,IAAW;AAAA,IAAW;AAAA,IAAW;AAAA,IAAY;AAAA,IAAW;AAAA,IAAY;AAAA,IAAW;AAAA,IAAY;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAS;AAAA,IAAW;AAAA,IAAU;AAAA,IAAU;AAAA,IAAU;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAS;AAAA,IAAS;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAW;AAAA,IAAS;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,IAAS;AAAA,IAAO;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAO;AAAA,IAAY;AAAA,IAAW;AAAA,IAAW;AAAA,IAAW;AAAA,IAAS;AAAA,IAAW;AAAA,IAAU;AAAA,IAAQ;AAAA,IACnuD;AAAA,IAAO;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAU;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAY;AAAA,IAAQ;AAAA,IAAO;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAU;AAAA,IAAU;AAAA,IAAY;AAAA,IAAU;AAAA,IAAW;AAAA,IAAY;AAAA,IAAY;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAS;AAAA,IAAW;AAAA,IAAU;AAAA,IAAU;AAAA,IAAU;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAU;AAAA,IAAW;AAAA,IAAS;AAAA,IAAU;AAAA,IAAU;AAAA,IAAY;AAAA,IAAU;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAW;AAAA,IAAU;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,IAAU;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAW;AAAA,IAAW;AAAA,IAAW;AAAA,IAAU;AAAA,IAAY;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAY;AAAA,IAAY;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAY;AAAA,IAAW;AAAA,IAAY;AAAA,IAAU;AAAA,IAAU;AAAA,IAAW;AAAA,IAAS;AAAA,IAAU;AAAA,IAAY;AAAA,IAAO;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAU;AAAA,IAAU;AAAA,IAAU;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAO;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAC/iC;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAU;AAAA,IAAO;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAS;AAAA,IAAY;AAAA,IAAW;AAAA,IAAW;AAAA,IAAY;AAAA,IAAY;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,IAAW;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAO;AAAA,IAAW;AAAA,IAAW;AAAA,IAAS;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,IAAU;AAAA,IAAW;AAAA,IAAS;AAAA,IAAU;AAAA,IAAU;AAAA,IAAU;AAAA,IAAU;AAAA,IAAU;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAY;AAAA,IAAW;AAAA,IAAS;AAAA,IAAS;AAAA,IAAO;AAAA,IAAS;AAAA,IAAS;AAAA,IAAW;AAAA,IAAS;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAW;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,IAAY;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAW;AAAA,IAAU;AAAA,IAAY;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,IAAW;AAAA,IAAY;AAAA,IAAW;AAAA,IAAW;AAAA,IAAS;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAU;AAAA,IAAU;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,IAAS;AAAA,IAAO;AAAA,IAC38B;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAU;AAAA,IAAO;AAAA,IAAS;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAO;AAAA,IAAS;AAAA,IAAU;AAAA,IAAW;AAAA,IAAS;AAAA,IAAY;AAAA,IAAW;AAAA,IAAY;AAAA,IAAW;AAAA,IAAO;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAS;AAAA,IAAY;AAAA,IAAS;AAAA,IAAS;AAAA,IAAO;AAAA,IAAS;AAAA,IAAW;AAAA,IAAS;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAO;AAAA,IAAW;AAAA,IAAO;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAS;AAAA,IAAO;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAO;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAU;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAS;AAAA,IAAW;AAAA,IAAU;AAAA,IAAU;AAAA,IAAS;AAAA,IAAO;AAAA,IAAW;AAAA,IAAS;AAAA,IAAY;AAAA,IAAS;AAAA,IAAU;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAO;AAAA,IAAS;AAAA,IAAW;AAAA,IAAQ;AAAA,IAC37B;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAO;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,IAAU;AAAA,IAAW;AAAA,IAAO;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAU;AAAA,IAAS;AAAA,IAAU;AAAA,IAAW;AAAA,IAAW;AAAA,IAAS;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAU;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAW;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAW;AAAA,IAAU;AAAA,IAAU;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAW;AAAA,IAAS;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAU;AAAA,IAAO;AAAA,IACjrB;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAW;AAAA,IAAO;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAS;AAAA,IAAS;AAAA,IAAY;AAAA,IAAU;AAAA,IAAS;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAO;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAO;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAS;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAS;AAAA,IAAY;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAO;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAW;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAW;AAAA,IACtjB;AAAA,IAAO;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAY;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAO;AAAA,IAAW;AAAA,IAAW;AAAA,IAAS;AAAA,IAAW;AAAA,IAAW;AAAA,IAAU;AAAA,IAAU;AAAA,IAAU;AAAA,IAAW;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAU;AAAA,IAAY;AAAA,IAAS;AAAA,IAAY;AAAA,IAAU;AAAA,IAAY;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,IAAU;AAAA,IAAW;AAAA,IAAW;AAAA,IAAU;AAAA,IAAU;AAAA,IAAU;AAAA,IAAS;AAAA,IAAY;AAAA,IAAS;AAAA,IAAW;AAAA,IAAU;AAAA,IAAU;AAAA,IAAU;AAAA,IAAW;AAAA,IAAW;AAAA,IAAU;AAAA,IAAY;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAU;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAW;AAAA,IAAS;AAAA,IAAQ;AAAA,IAC9hB;AAAA,IAAU;AAAA,IAAU;AAAA,IAAO;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAO;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAO;AAAA,IAAS;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAU;AAAA,IAAQ;AAAA,IACxK;AAAA,IAAY;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAO;AAAA,IAAQ;AAAA,IAAO;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAO;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAS;AAAA,IACxK;AAAA,IAAO;AAAA,IAAS;AAAA,IAAS;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAY;AAAA,IAAU;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAO;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAS;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAO;AAAA,IAAS;AAAA,IAAU;AAAA,IAAW;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAU;AAAA,IAAU;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAW;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAS;AAAA,IAAW;AAAA,IAAU;AAAA,IAAS;AAAA,IAAS;AAAA,IAAU;AAAA,IAC1qB;AAAA,IAAW;AAAA,IAAO;AAAA,IAAS;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAO;AAAA,IAAU;AAAA,IAAW;AAAA,IAAS;AAAA,IAAW;AAAA,IAAU;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAU;AAAA,IAAU;AAAA,IAAU;AAAA,IAAY;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAS;AAAA,IAAY;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAU;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAY;AAAA,IAAS;AAAA,IAAS;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAU;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAS;AAAA,IAAU;AAAA,IAAU;AAAA,IAAY;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAS;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAO;AAAA,IAAS;AAAA,IAAW;AAAA,IAAU;AAAA,IAAS;AAAA,IAAU;AAAA,IAAO;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,IAAW;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAY;AAAA,IAAU;AAAA,IAAU;AAAA,IAAS;AAAA,IAAY;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAY;AAAA,IAAU;AAAA,IAAU;AAAA,IAAY;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAU;AAAA,IAAW;AAAA,IACj+B;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAU;AAAA,IAAS;AAAA,IAAU;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAY;AAAA,IAAW;AAAA,IAAW;AAAA,IAAU;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAO;AAAA,IAAW;AAAA,IAAW;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAW;AAAA,IAAU;AAAA,IAAU;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAU;AAAA,IAAS;AAAA,IAAO;AAAA,IAAW;AAAA,IAAU;AAAA,IAAS;AAAA,IACtX;AAAA,IAAO;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAU;AAAA,IAAW;AAAA,IAAW;AAAA,IAAU;AAAA,IAAW;AAAA,IAAS;AAAA,IAAS;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAO;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAO;AAAA,IAAQ;AAAA,IAAO;AAAA,IAAS;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAO;AAAA,IAAS;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAW;AAAA,IAAU;AAAA,IAAU;AAAA,IAAU;AAAA,IAAS;AAAA,IAAW;AAAA,IAAS;AAAA,IAAY;AAAA,IAAS;AAAA,IAAU;AAAA,IAAY;AAAA,IAAU;AAAA,IAAW;AAAA,IAAS;AAAA,IAAW;AAAA,IAAS;AAAA,IAAU;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAO;AAAA,IAAS;AAAA,IAAU;AAAA,IAAU;AAAA,IACvf;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAW;AAAA,IAAS;AAAA,IAAU;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAU;AAAA,IAAW;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAS;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAW;AAAA,IAAO;AAAA,IAAW;AAAA,IAAU;AAAA,IAAU;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,IAAU;AAAA,IAAO;AAAA,IAAS;AAAA,IAAS;AAAA,IAAU;AAAA,IAAY;AAAA,IAAS;AAAA,IAAU;AAAA,IAAW;AAAA,IAAS;AAAA,IAAO;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAU;AAAA,IAAW;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAU;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAW;AAAA,IAAY;AAAA,IAAY;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAW;AAAA,IAAW;AAAA,IAAU;AAAA,IAAS;AAAA,IAAY;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,IAAW;AAAA,IAAW;AAAA,IAAU;AAAA,IAAW;AAAA,IAAS;AAAA,IAAS;AAAA,IAAW;AAAA,IAAS;AAAA,IAAY;AAAA,IAAU;AAAA,IAAW;AAAA,IAAS;AAAA,IAAW;AAAA,IAAW;AAAA,IAAW;AAAA,IAAU;AAAA,IAAW;AAAA,IAAW;AAAA,IAAW;AAAA,IAAS;AAAA,IAAY;AAAA,IAAW;AAAA,IAAW;AAAA,IAAS;AAAA,IAAW;AAAA,IAAU;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAW;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAY;AAAA,IAAU;AAAA,IAAW;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAO;AAAA,IAAU;AAAA,IACjvC;AAAA,IAAW;AAAA,IAAW;AAAA,IAAW;AAAA,IAAY;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAQ;AAAA,IACtE;AAAA,IAAU;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAS;AAAA,IAAO;AAAA,IAAS;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAS;AAAA,IAAW;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,IAAU;AAAA,IAAU;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,IAAS;AAAA,IAAW;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAY;AAAA,IAAU;AAAA,IAAU;AAAA,IAAU;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAU;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,IAAY;AAAA,IAAU;AAAA,IAAY;AAAA,IAAY;AAAA,IAAU;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,IAAU;AAAA,IAAU;AAAA,IAAU;AAAA,IAAO;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAS;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAS;AAAA,IAAU;AAAA,IAAU;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAO;AAAA,IAAQ;AAAA,IAAO;AAAA,IAAU;AAAA,IACj/B;AAAA,IAAO;AAAA,IAAU;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAW;AAAA,IAAS;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAO;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAW;AAAA,IAAS;AAAA,IAAU;AAAA,IAAU;AAAA,IAAW;AAAA,IAAY;AAAA,IAAY;AAAA,IAAS;AAAA,IAAS;AAAA,IAAU;AAAA,IAAU;AAAA,IAAS;AAAA,IAAO;AAAA,IAAU;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAU;AAAA,IAAW;AAAA,IAAY;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAU;AAAA,IAAS;AAAA,IAAY;AAAA,IAAU;AAAA,IAAW;AAAA,IAAW;AAAA,IAAU;AAAA,IAAS;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAW;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAW;AAAA,IAAU;AAAA,IAAS;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAY;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAW;AAAA,IAAO;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAU;AAAA,IAAW;AAAA,IAAO;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAU;AAAA,IAAO;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAW;AAAA,IAAS;AAAA,IAAS;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAW;AAAA,IAAS;AAAA,IAAY;AAAA,IAAS;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAW;AAAA,IAAS;AAAA,IAAS;AAAA,IAAW;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAS;AAAA,IAAS;AAAA,IAAW;AAAA,IAAS;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAU;AAAA,IAAU;AAAA,IAAO;AAAA,IAAU;AAAA,IAAW;AAAA,IAAY;AAAA,IAAU;AAAA,IAAW;AAAA,IAAS;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAW;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAY;AAAA,IAAU;AAAA,IAAU;AAAA,IAAU;AAAA,IAAY;AAAA,IAAW;AAAA,IAAS;AAAA,IAAW;AAAA,IAAS;AAAA,IAAW;AAAA,IAAU;AAAA,IAAU;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAU;AAAA,IAAS;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAO;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAU;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAS;AAAA,IAAY;AAAA,IAAY;AAAA,IAAU;AAAA,IAAW;AAAA,IAAW;AAAA,IAAW;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAU;AAAA,IAAW;AAAA,IAAS;AAAA,IACjyE;AAAA,IAAS;AAAA,IAAU;AAAA,IAAO;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAO;AAAA,IAAU;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAS;AAAA,IAAW;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAO;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAS;AAAA,IAAW;AAAA,IAAS;AAAA,IAAW;AAAA,IAAO;AAAA,IAAY;AAAA,IAAU;AAAA,IAAS;AAAA,IAAU;AAAA,IAAY;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAO;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAW;AAAA,IAAY;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAW;AAAA,IAAU;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAO;AAAA,IAAS;AAAA,IAAS;AAAA,IAAW;AAAA,IAAU;AAAA,IAAS;AAAA,IAAY;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAW;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAW;AAAA,IAAS;AAAA,IAAS;AAAA,IAAO;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAU;AAAA,IAAU;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAO;AAAA,IAAQ;AAAA,IAClkC;AAAA,IAAQ;AAAA,IAAY;AAAA,IAAU;AAAA,IAAW;AAAA,IAAS;AAAA,IAAW;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAU;AAAA,IAAW;AAAA,IAAW;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAY;AAAA,IAAW;AAAA,IAAU;AAAA,IAAS;AAAA,IAAW;AAAA,IAAU;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAS;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAO;AAAA,IAAQ;AAAA,IAAU;AAAA,IAAW;AAAA,IAAS;AAAA,IACzU;AAAA,IAAU;AAAA,IAAU;AAAA,IAAS;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAO;AAAA,IAAU;AAAA,IAAS;AAAA,IAAW;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AA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IACxD;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IACxD;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IACxD;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IACxD;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IACxD;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IACxD;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IACxD;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IACxD;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IACxD;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IACxD;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IACxD;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IACxD;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IACxD;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IACxD;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAA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","x_google_ignoreList":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154]}
|