1 line
1.5 MiB
1 line
1.5 MiB
{"version":3,"file":"ethers.js","sources":["../../properties/lib/properties.js","../../properties/lib/events.js","../../properties/lib/storage.js","../../logger/lib/errors.js","../../logger/lib/_version.js","../../logger/lib/logger.js","../../abi/lib/_version.js","../../abi/lib/logger.js","../../abi/lib/fragments.js","../../math/lib/_version.js","../../math/lib/logger.js","../../math/lib/convert.js","../../math/lib/maths.js","../../math/lib/fixednumber.js","../../math/lib/base58.js","../../math/lib/units.js","../../bytes/lib/check.js","../../bytes/lib/_version.js","../../bytes/lib/logger.js","../../bytes/lib/array.js","../../bytes/lib/base64.js","../../bytes/lib/hex.js","../../bytes/lib/data.js","../../bytes/lib/pad.js","../../abi/lib/coders/abstract-coder.js","../../../node_modules/@noble/hashes/esm/utils.js","../../../node_modules/@noble/hashes/esm/hmac.js","../../../node_modules/@noble/hashes/esm/pbkdf2.js","../../../node_modules/@noble/hashes/esm/_sha2.js","../../../node_modules/@noble/hashes/esm/sha256.js","../../../node_modules/@noble/hashes/esm/_u64.js","../../../node_modules/@noble/hashes/esm/sha512.js","../../crypto/lib/_version.js","../../crypto/lib/logger.js","../../crypto/lib/crypto-browser.js","../../crypto/lib/hmac.js","../../../node_modules/@noble/hashes/esm/sha3.js","../../crypto/lib/keccak.js","../../../node_modules/@noble/hashes/esm/ripemd160.js","../../crypto/lib/ripemd160.js","../../crypto/lib/pbkdf2.js","../../crypto/lib/random.js","../../../node_modules/@noble/hashes/esm/scrypt.js","../../crypto/lib/scrypt.js","../../crypto/lib/sha2.js","../../crypto/lib/index.js","../../address/lib/_version.js","../../address/lib/logger.js","../../address/lib/address.js","../../rlp/lib/_version.js","../../rlp/lib/logger.js","../../rlp/lib/encode.js","../../rlp/lib/decode.js","../../address/lib/contract-address.js","../../address/lib/checks.js","../../abi/lib/typed.js","../../abi/lib/coders/address.js","../../abi/lib/coders/anonymous.js","../../abi/lib/coders/array.js","../../abi/lib/coders/boolean.js","../../abi/lib/coders/bytes.js","../../abi/lib/coders/fixed-bytes.js","../../abi/lib/coders/null.js","../../abi/lib/coders/number.js","../../strings/lib/_version.js","../../strings/lib/logger.js","../../strings/lib/utf8.js","../../strings/lib/bytes32.js","../../strings/lib/idna.js","../../abi/lib/coders/string.js","../../abi/lib/coders/tuple.js","../../abi/lib/abi-coder.js","../../hash/lib/id.js","../../hash/lib/_version.js","../../hash/lib/logger.js","../../hash/lib/namehash.js","../../hash/lib/message.js","../../hash/lib/typed-data.js","../../abi/lib/interface.js","../../web/lib/_version.js","../../web/lib/logger.js","../../web/lib/response.js","../../web/lib/get-url-browser.js","../../web/lib/request.js","../../web/lib/fetch-data.js","../../providers/lib/_version.js","../../providers/lib/logger.js","../../providers/lib/ens-resolver.js","../../signing-key/lib/_version.js","../../signing-key/lib/logger.js","../../signing-key/lib/signature.js","../../../node_modules/@noble/secp256k1/lib/esm/index.js","../../signing-key/lib/signing-key.js","../../transaction/lib/accesslist.js","../../transaction/lib/address.js","../../transaction/lib/_version.js","../../transaction/lib/logger.js","../../transaction/lib/transaction.js","../../providers/lib/provider.js","../../providers/lib/formatter.js","../../providers/lib/plugins-network.js","../../providers/lib/network.js","../../providers/lib/subscriber-polling.js","../../providers/lib/abstract-provider.js","../../providers/lib/abstract-signer.js","../../providers/lib/community.js","../../providers/lib/subscriber-filterid.js","../../providers/lib/provider-jsonrpc.js","../../providers/lib/provider-ankr.js","../../providers/lib/provider-alchemy.js","../../providers/lib/provider-cloudflare.js","../../providers/lib/provider-etherscan.js","../../providers/lib/provider-infura.js","../../providers/lib/provider-pocket.js","../../providers/lib/shuffle.js","../../providers/lib/provider-fallback.js","../../providers/lib/ws-browser.js","../../providers/lib/provider-socket.js","../../providers/lib/provider-websocket.js","../../providers/lib/default-provider.js","../../providers/lib/common-networks.js","../../providers/lib/provider-ipcsocket-browser.js","../../contract/lib/wrappers.js","../../contract/lib/_version.js","../../contract/lib/logger.js","../../contract/lib/contract.js","../../wordlists/lib/decode-owl.js","../../wordlists/lib/_version.js","../../wordlists/lib/logger.js","../../wordlists/lib/wordlist.js","../../wordlists/lib/wordlist-owl.js","../../wordlists/lib/lang-en.js","../../wallet/lib/_version.js","../../wallet/lib/logger.js","../../wordlists/lib/wordlists-en.js","../../wordlists/lib/bit-reader.js","../../wordlists/lib/decode-owla.js","../../wordlists/lib/wordlist-owla.js","../../wallet/lib/mnemonic.js","../../wallet/lib/base-wallet.js","../../wallet/lib/hdwallet.js","../../../node_modules/aes-js/lib/aes.js","../../../node_modules/aes-js/lib/mode.js","../../../node_modules/aes-js/lib/mode-cbc.js","../../../node_modules/aes-js/lib/mode-cfb.js","../../../node_modules/aes-js/lib/mode-ctr.js","../../../node_modules/aes-js/lib/mode-ofb.js","../../../node_modules/aes-js/lib/padding.js","../../wallet/lib/utils.js","../../wallet/lib/json-crowdsale.js","../../wallet/lib/json-keystore.js","../../wallet/lib/wallet.js","../lib/_version.js"],"sourcesContent":["//import type { BigNumber, BigNumberish } from \"./big-number\";\n//import type { Bytes, BytesLike } from \"./bytes\";\n//import type { Signature, SignatureLike } from \"./signature\";\n/*\nexport type Loose<T> = T extends BigNumber ? BigNumberish:\n T extends number ? BigNumberish:\n T extends Bytes ? BytesLike:\n T extends Signature ? SignatureLike:\n T;\nexport type LooseObject<T> = { [P in keyof T]?: Loose<T[P]>; };\n*/\n//export type Deferrable<T> = T | Promise<T>;\n/*\nexport type DeferrableObject<T> = {\n [ P in keyof T ]: Deferrable<T[P]>\n};\n*/\n/*\nexport type Frozen<T> = Readonly<{\n [ P in keyof T ]: T[P] extends Freezable<any> ? Frozen<T[P]>: T[P];\n}>;\n\nexport interface Freezable<T> {\n clone(): T;\n freeze(): Frozen<T>;\n isFrozen(): boolean;\n}\n*/\n/*\nconst _data: WeakMap<Data, Uint8Array> = new WeakMap();\n\nexport class Data implements Freezable<Data> {\n #props: {\n data: Uint8Array\n };\n\n [ index: number ]: number;\n\n constructor(lengthOrData: number | Uint8Array) {\n if (typeof(lengthOrData) === \"number\") {\n _data[this] = new Uint8Array(lengthOrData);\n } else {\n _data[this] = lengthOrData;\n }\n\n return new Proxy(this, {\n get: (target, prop, receiver) => {\n const index = parseInt(String(prop));\n if (String(index) !== prop) { return Reflect.get(target, prop, receiver); }\n\n const data = _data[this];\n if (index < 0 || index > data.length || index % 1) {\n throw new Error(\"\");\n }\n return data[index];\n },\n\n set: (target, prop, value, receiver) => {\n const index = parseInt(String(prop));\n if (String(index) !== prop) { return false; }\n\n if (value < 0 || value > 255 || value % 1) { return false; }\n\n const data = _data[this];\n if (index < 0 || index > data.length || index % 1) {\n return false;\n }\n\n data[index] = value;\n\n return true;\n },\n });\n }\n\n toString(): string {\n return this.slice().toString();\n }\n\n slice(): Uint8Array {\n return _data.get(this).slice();\n }\n\n clone(): Data {\n return new Data(this.slice());\n }\n\n freeze(): Frozen<Data> {\n //Object.freeze(this.#props);\n return this;\n }\n\n isFrozen(): boolean {\n return Object.isFrozen(this.#props);\n }\n}\nconst d = new Data(4);\nconsole.log(d.toString());\nd[0] = 45;\nconsole.log(d.toString());\n*/\n/*\nexport type DeferrableObject<T> = {\n [ P in keyof T ]: Deferrable<T[P]>\n};\n*/\nexport async function resolveProperties(value) {\n const keys = Object.keys(value);\n const results = await Promise.all(keys.map((k) => Promise.resolve(value[k])));\n return results.reduce((accum, v, index) => {\n accum[keys[index]] = v;\n return accum;\n }, {});\n}\nexport function defineReadOnly(object, name, value) {\n Object.defineProperty(object, name, {\n enumerable: true,\n value: value,\n writable: false,\n });\n}\n/*\nexport type IsCancelled = () => Promise<boolean>;\n\nexport function createPromise<T>(resolve: (isCancelled: IsCancelled, (result: T) => void) => void, reject: (error: Error) => void, isCancelled: IsCancelled): CancellablePromise<T> {\n let cancelled = false;\n\n const promise = new Promise((resolve, reject) => {\n \n });\n\n (<CancellablePromise<T>>promise).cancel = function() {\n cancelled = true;\n };\n\n return (<CancellablePromise<T>>promise);\n}\n*/\n/*\nexport class A implements Freezable<A> {\n foo: number;\n constructor(foo: number) {\n this.foo = foo;\n }\n freeze(): Frozen<A> {\n Object.freeze(this);\n return this;\n }\n clone(): A {\n return new A(this.foo);\n }\n}\n\nexport class B implements Freezable<B> {\n a: A;\n constructor(a: A) {\n this.a = a;\n }\n freeze(): Frozen<B> {\n this.a.freeze();\n Object.freeze(this);\n return this;\n }\n clone(): B {\n return new B(this.a);\n }\n}\n\nexport function test() {\n const a = new A(123);\n const b = new B(a);\n b.a = new A(234);\n const b2 = b.freeze();\n b2.a.foo = 123; // = a;\n}\n*/\nfunction checkType(value, type) {\n const types = type.split(\"|\").map(t => t.trim());\n for (let i = 0; i < types.length; i++) {\n switch (type) {\n case \"any\":\n return;\n case \"boolean\":\n case \"number\":\n case \"string\":\n if (typeof (value) === type) {\n return;\n }\n }\n }\n throw new Error(\"invalid value for type\");\n}\nexport function defineProperties(target, values, types, defaults) {\n for (let key in values) {\n let value = values[key];\n const fallback = (defaults ? defaults[key] : undefined);\n if (fallback !== undefined) {\n value = fallback;\n }\n else {\n const type = (types ? types[key] : null);\n if (type) {\n checkType(value, type);\n }\n }\n Object.defineProperty(target, key, { enumerable: true, value, writable: false });\n }\n}\n//# sourceMappingURL=properties.js.map","var __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 _EventPayload_listener;\nimport { defineProperties } from \"./properties.js\";\nexport class EventPayload {\n constructor(emitter, listener, filter) {\n _EventPayload_listener.set(this, void 0);\n __classPrivateFieldSet(this, _EventPayload_listener, listener, \"f\");\n defineProperties(this, { emitter, filter });\n }\n async removeListener() {\n if (__classPrivateFieldGet(this, _EventPayload_listener, \"f\") == null) {\n return;\n }\n await this.emitter.off(this.filter, __classPrivateFieldGet(this, _EventPayload_listener, \"f\"));\n }\n}\n_EventPayload_listener = new WeakMap();\n//# sourceMappingURL=events.js.map","export function getStore(store, key) {\n return store[key];\n}\nexport function setStore(store, key, value) {\n if (Object.isFrozen(store)) {\n throw new Error(\"frozen object is immuatable; cannot set \" + key);\n }\n store[key] = value;\n}\n//# sourceMappingURL=storage.js.map","//export type TransactionReceipt {\n//}\n/**\n * try {\n * // code....\n * } catch (e) {\n * if (isError(e, errors.CALL_EXCEPTION)) {\n * console.log(e.data);\n * }\n * }\n */\nexport function isError(error, code) {\n return (error && error.code === code);\n}\nexport function isCallException(error) {\n return isError(error, \"CALL_EXCEPTION\");\n}\n/*\nexport function isContractCallException(error: any): error is ContractCallExceptionError {\n return isError(error, \"CALL_EXCEPTION\") && (<any>error).method;\n}\n*/\n//# sourceMappingURL=errors.js.map","export const version = \"@ethersproject/logger@6.0.0-beta.3\";\n//# sourceMappingURL=_version.js.map","var __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 _Logger_instances, _Logger_getBytes, _Logger_log;\nimport { version } from \"./_version.js\";\nexport var LogLevel;\n(function (LogLevel) {\n LogLevel[\"DEBUG\"] = \"DEBUG\";\n LogLevel[\"INFO\"] = \"INFO\";\n LogLevel[\"WARNING\"] = \"WARNING\";\n LogLevel[\"ERROR\"] = \"ERROR\";\n LogLevel[\"OFF\"] = \"OFF\";\n})(LogLevel || (LogLevel = {}));\n;\nconst LogLevels = { debug: 1, \"default\": 2, info: 2, warning: 3, error: 4, off: 5 };\nlet _logLevel = LogLevels[\"default\"];\nlet _globalLogger = null;\nconst _normalizeForms = [\"NFD\", \"NFC\", \"NFKD\", \"NFKC\"].reduce((accum, form) => {\n try {\n // General test for normalize\n /* c8 ignore start */\n if (\"test\".normalize(form) !== \"test\") {\n throw new Error(\"bad\");\n }\n ;\n /* c8 ignore stop */\n if (form === \"NFD\") {\n const check = String.fromCharCode(0xe9).normalize(\"NFD\");\n const expected = String.fromCharCode(0x65, 0x0301);\n /* c8 ignore start */\n if (check !== expected) {\n throw new Error(\"broken\");\n }\n /* c8 ignore stop */\n }\n accum.push(form);\n }\n catch (error) { }\n return accum;\n}, []);\nfunction defineReadOnly(object, name, value) {\n Object.defineProperty(object, name, {\n enumerable: true, writable: false, value,\n });\n}\n// IEEE 754 support 53-bits of mantissa\nconst maxValue = 0x1fffffffffffff;\n// The type of error to use for various error codes\nconst ErrorConstructors = {};\nErrorConstructors.INVALID_ARGUMENT = TypeError;\nErrorConstructors.NUMERIC_FAULT = RangeError;\nErrorConstructors.BUFFER_OVERRUN = RangeError;\nexport class Logger {\n constructor(version) {\n _Logger_instances.add(this);\n defineReadOnly(this, \"version\", version || \"_\");\n }\n makeError(message, code, info) {\n // Errors are being censored\n //if (_censor === Censor.ON || _censor === Censor.PERMANENT) {\n // return this.makeError(\"censored error\", code, <any>{ });\n //}\n {\n const details = [];\n if (info) {\n for (const key in info) {\n const value = (info[key]);\n try {\n details.push(key + \"=\" + JSON.stringify(value));\n }\n catch (error) {\n details.push(key + \"=[could not serialize object]\");\n }\n }\n }\n details.push(`code=${code}`);\n details.push(`version=${this.version}`);\n if (details.length) {\n message += \" (\" + details.join(\", \") + \")\";\n }\n }\n const create = ErrorConstructors[code] || Error;\n const error = (new create(message));\n defineReadOnly(error, \"code\", code);\n if (info) {\n for (const key in info) {\n defineReadOnly(error, key, (info[key]));\n }\n }\n return error;\n }\n throwError(message, code, info) {\n throw this.makeError(message, code, info);\n }\n throwArgumentError(message, name, value) {\n return this.throwError(message, \"INVALID_ARGUMENT\", {\n argument: name,\n value: value\n });\n }\n assert(condition, message, code, info) {\n if (!!condition) {\n return;\n }\n this.throwError(message, code || \"UNKNOWN_ERROR\", info);\n }\n assertArgument(condition, message, name, value) {\n return this.assert(condition, message, \"INVALID_ARGUMENT\", {\n argument: name,\n value\n });\n }\n assertIntegerArgument(name, value, lower, upper) {\n let message = null;\n if (typeof (value) !== \"number\") {\n message = \"expected a number\";\n }\n else if (!Number.isInteger(value)) {\n message = \"invalid integer\";\n }\n else if ((lower != null && value < lower) || (upper != null && value > upper)) {\n message = \"value is out of range\";\n }\n if (message) {\n this.throwArgumentError(message, name, value);\n }\n }\n assertSafeUint53(value, message) {\n this.assertArgument((typeof (value) === \"number\"), \"invalid number\", \"value\", value);\n if (message == null) {\n message = \"value not safe\";\n }\n const operation = \"assertSafeInteger\";\n this.assert((value >= 0 && value < 0x1fffffffffffff), message, \"NUMERIC_FAULT\", {\n operation, fault: \"out-of-safe-range\", value\n });\n this.assert((value % 1) === 0, message, \"NUMERIC_FAULT\", {\n operation, fault: \"non-integer\", value\n });\n }\n assertNormalize(form) {\n if (_normalizeForms.indexOf(form) === -1) {\n this.throwError(\"platform missing String.prototype.normalize\", \"UNSUPPORTED_OPERATION\", {\n operation: \"String.prototype.normalize\", info: { form }\n });\n }\n }\n assertPrivate(givenGuard, guard, className = \"\") {\n if (givenGuard !== guard) {\n let method = className, operation = \"new\";\n if (className) {\n method += \".\";\n operation += \" \" + className;\n }\n this.throwError(`private constructor; use ${method}from* methods`, \"UNSUPPORTED_OPERATION\", {\n operation\n });\n }\n }\n assertArgumentCount(count, expectedCount, message = \"\") {\n if (message) {\n message = \": \" + message;\n }\n this.assert((count >= expectedCount), \"missing arguemnt\" + message, \"MISSING_ARGUMENT\", {\n count: count,\n expectedCount: expectedCount\n });\n this.assert((count >= expectedCount), \"too many arguemnts\" + message, \"UNEXPECTED_ARGUMENT\", {\n count: count,\n expectedCount: expectedCount\n });\n }\n getBytes(value, name) {\n return __classPrivateFieldGet(this, _Logger_instances, \"m\", _Logger_getBytes).call(this, value, name, false);\n }\n getBytesCopy(value, name) {\n return __classPrivateFieldGet(this, _Logger_instances, \"m\", _Logger_getBytes).call(this, value, name, true);\n }\n getNumber(value, name) {\n switch (typeof (value)) {\n case \"bigint\":\n if (value < -maxValue || value > maxValue) {\n this.throwArgumentError(\"overflow\", name || \"value\", value);\n }\n return Number(value);\n case \"number\":\n if (!Number.isInteger(value)) {\n this.throwArgumentError(\"underflow\", name || \"value\", value);\n }\n else if (value < -maxValue || value > maxValue) {\n this.throwArgumentError(\"overflow\", name || \"value\", value);\n }\n return value;\n case \"string\":\n try {\n return this.getNumber(BigInt(value), name);\n }\n catch (e) {\n this.throwArgumentError(`invalid numeric string: ${e.message}`, name || \"value\", value);\n }\n }\n return this.throwArgumentError(\"invalid numeric value\", name || \"value\", value);\n }\n getBigInt(value, name) {\n switch (typeof (value)) {\n case \"bigint\": return value;\n case \"number\":\n if (!Number.isInteger(value)) {\n this.throwArgumentError(\"underflow\", name || \"value\", value);\n }\n else if (value < -maxValue || value > maxValue) {\n this.throwArgumentError(\"overflow\", name || \"value\", value);\n }\n return BigInt(value);\n case \"string\":\n try {\n return BigInt(value);\n }\n catch (e) {\n this.throwArgumentError(`invalid BigNumberish string: ${e.message}`, name || \"value\", value);\n }\n }\n return this.throwArgumentError(\"invalid BigNumberish value\", name || \"value\", value);\n }\n debug(...args) {\n __classPrivateFieldGet(this, _Logger_instances, \"m\", _Logger_log).call(this, LogLevel.DEBUG, args);\n }\n info(...args) {\n __classPrivateFieldGet(this, _Logger_instances, \"m\", _Logger_log).call(this, LogLevel.INFO, args);\n }\n warn(...args) {\n __classPrivateFieldGet(this, _Logger_instances, \"m\", _Logger_log).call(this, LogLevel.WARNING, args);\n }\n static globalLogger() {\n if (!_globalLogger) {\n _globalLogger = new Logger(version);\n }\n return _globalLogger;\n }\n static setLogLevel(logLevel) {\n const level = LogLevels[logLevel.toLowerCase()];\n if (level == null) {\n Logger.globalLogger().warn(\"invalid log level - \" + logLevel);\n return;\n }\n _logLevel = level;\n }\n}\n_Logger_instances = new WeakSet(), _Logger_getBytes = function _Logger_getBytes(value, name, copy) {\n if (value instanceof Uint8Array) {\n if (copy) {\n return new Uint8Array(value);\n }\n return value;\n }\n if (typeof (value) === \"string\" && value.match(/^0x([0-9a-f][0-9a-f])*$/i)) {\n const result = new Uint8Array((value.length - 2) / 2);\n let offset = 2;\n for (let i = 0; i < result.length; i++) {\n result[i] = parseInt(value.substring(offset, offset + 2), 16);\n offset += 2;\n }\n return result;\n }\n return this.throwArgumentError(\"invalid BytesLike value\", name || \"value\", value);\n}, _Logger_log = function _Logger_log(logLevel, args) {\n const level = logLevel.toLowerCase();\n if (LogLevels[level] == null) {\n this.throwArgumentError(\"invalid log level name\", \"logLevel\", logLevel);\n }\n if (_logLevel > LogLevels[level]) {\n return;\n }\n console.log.apply(console, args);\n};\n//static readonly Errors = ErrorCode;\nLogger.LogLevels = LogLevel;\n//# sourceMappingURL=logger.js.map","export const version = \"@ethersproject/abi@6.0.0-beta.3\";\n//# sourceMappingURL=_version.js.map","import { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version.js\";\nexport const logger = new Logger(version);\n//# sourceMappingURL=logger.js.map","var __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 _TokenString_instances, _TokenString_offset, _TokenString_tokens, _TokenString_subTokenString, _ParamType_instances, _ParamType_walkAsync;\nimport { defineProperties } from \"@ethersproject/properties\";\nimport { logger } from \"./logger.js\";\n;\nexport var FormatType;\n(function (FormatType) {\n // Bare formatting, as is needed for computing a sighash of an event or function\n FormatType[\"sighash\"] = \"sighash\";\n // Human-Readable with Minimal spacing and without names (compact human-readable)\n FormatType[\"minimal\"] = \"minimal\";\n // Human-Readable with nice spacing, including all names\n FormatType[\"full\"] = \"full\";\n // JSON-format a la Solidity\n FormatType[\"json\"] = \"json\";\n})(FormatType || (FormatType = {}));\n;\n// [ \"a\", \"b\" ] => { \"a\": 1, \"b\": 1 }\nfunction setify(items) {\n const result = new Set();\n items.forEach((k) => result.add(k));\n return Object.freeze(result);\n}\n// Visibility Keywords\nconst _kwVisib = \"constant external internal payable private public pure view\";\nconst KwVisib = setify(_kwVisib.split(\" \"));\nconst _kwTypes = \"constructor error event function struct\";\nconst KwTypes = setify(_kwTypes.split(\" \"));\nconst _kwModifiers = \"calldata memory storage payable indexed\";\nconst KwModifiers = setify(_kwModifiers.split(\" \"));\nconst _kwOther = \"tuple returns\";\n// All Keywords\nconst _keywords = [_kwTypes, _kwModifiers, _kwOther, _kwVisib].join(\" \");\nconst Keywords = setify(_keywords.split(\" \"));\n// Single character tokens\nconst SimpleTokens = {\n \"(\": \"OPEN_PAREN\", \")\": \"CLOSE_PAREN\",\n \"[\": \"OPEN_BRACKET\", \"]\": \"CLOSE_BRACKET\",\n \",\": \"COMMA\", \"@\": \"AT\"\n};\n// Parser regexes to consume the next token\nconst regexWhitespace = new RegExp(\"^(\\\\s*)\");\nconst regexNumber = new RegExp(\"^([0-9]+)\");\nconst regexIdentifier = new RegExp(\"^([a-zA-Z$_][a-zA-Z0-9$_]*)\");\nconst regexType = new RegExp(\"^(address|bool|bytes([0-9]*)|string|u?int([0-9]*))\");\nexport class TokenString {\n constructor(tokens) {\n _TokenString_instances.add(this);\n _TokenString_offset.set(this, void 0);\n _TokenString_tokens.set(this, void 0);\n __classPrivateFieldSet(this, _TokenString_offset, 0, \"f\");\n __classPrivateFieldSet(this, _TokenString_tokens, tokens.slice(), \"f\");\n }\n get offset() { return __classPrivateFieldGet(this, _TokenString_offset, \"f\"); }\n get length() { return __classPrivateFieldGet(this, _TokenString_tokens, \"f\").length - __classPrivateFieldGet(this, _TokenString_offset, \"f\"); }\n clone() { return new TokenString(__classPrivateFieldGet(this, _TokenString_tokens, \"f\")); }\n reset() { __classPrivateFieldSet(this, _TokenString_offset, 0, \"f\"); }\n // Pops and returns the value of the next token, if it is a keyword in allowed; throws if out of tokens\n popKeyword(allowed) {\n const top = this.peek();\n if (top.type !== \"KEYWORD\" || !allowed.has(top.text)) {\n throw new Error(`expected keyword ${top.text}`);\n }\n return this.pop().text;\n }\n // Pops and returns the value of the next token if it is `type`; throws if out of tokens\n popType(type) {\n if (this.peek().type !== type) {\n throw new Error(`expected ${type}; got ${JSON.stringify(this.peek())}`);\n }\n return this.pop().text;\n }\n // Pops and returns a \"(\" TOKENS \")\"\n popParen() {\n const top = this.peek();\n if (top.type !== \"OPEN_PAREN\") {\n throw new Error(\"bad start\");\n }\n const result = __classPrivateFieldGet(this, _TokenString_instances, \"m\", _TokenString_subTokenString).call(this, __classPrivateFieldGet(this, _TokenString_offset, \"f\") + 1, top.match + 1);\n __classPrivateFieldSet(this, _TokenString_offset, top.match + 1, \"f\");\n return result;\n }\n // Pops and returns the items within \"(\" ITEM1 \",\" ITEM2 \",\" ... \")\"\n popParams() {\n const top = this.peek();\n if (top.type !== \"OPEN_PAREN\") {\n throw new Error(\"bad start\");\n }\n const result = [];\n while (__classPrivateFieldGet(this, _TokenString_offset, \"f\") < top.match - 1) {\n const link = this.peek().linkNext;\n result.push(__classPrivateFieldGet(this, _TokenString_instances, \"m\", _TokenString_subTokenString).call(this, __classPrivateFieldGet(this, _TokenString_offset, \"f\") + 1, link));\n __classPrivateFieldSet(this, _TokenString_offset, link, \"f\");\n }\n __classPrivateFieldSet(this, _TokenString_offset, top.match + 1, \"f\");\n return result;\n }\n // Returns the top Token, throwing if out of tokens\n peek() {\n if (__classPrivateFieldGet(this, _TokenString_offset, \"f\") >= __classPrivateFieldGet(this, _TokenString_tokens, \"f\").length) {\n throw new Error(\"out-of-bounds\");\n }\n return __classPrivateFieldGet(this, _TokenString_tokens, \"f\")[__classPrivateFieldGet(this, _TokenString_offset, \"f\")];\n }\n // Returns the next value, if it is a keyword in `allowed`\n peekKeyword(allowed) {\n const top = this.peekType(\"KEYWORD\");\n return (top != null && allowed.has(top)) ? top : null;\n }\n // Returns the value of the next token if it is `type`\n peekType(type) {\n if (this.length === 0) {\n return null;\n }\n const top = this.peek();\n return (top.type === type) ? top.text : null;\n }\n // Returns the next token; throws if out of tokens\n pop() {\n var _a;\n const result = this.peek();\n __classPrivateFieldSet(this, _TokenString_offset, (_a = __classPrivateFieldGet(this, _TokenString_offset, \"f\"), _a++, _a), \"f\");\n return result;\n }\n toString() {\n const tokens = [];\n for (let i = __classPrivateFieldGet(this, _TokenString_offset, \"f\"); i < __classPrivateFieldGet(this, _TokenString_tokens, \"f\").length; i++) {\n const token = __classPrivateFieldGet(this, _TokenString_tokens, \"f\")[i];\n tokens.push(`${token.type}:${token.text}`);\n }\n return `<TokenString ${tokens.join(\" \")}>`;\n }\n}\n_TokenString_offset = new WeakMap(), _TokenString_tokens = new WeakMap(), _TokenString_instances = new WeakSet(), _TokenString_subTokenString = function _TokenString_subTokenString(from = 0, to = 0) {\n return new TokenString(__classPrivateFieldGet(this, _TokenString_tokens, \"f\").slice(from, to).map((t) => {\n return Object.freeze(Object.assign({}, t, {\n match: (t.match - from),\n linkBack: (t.linkBack - from),\n linkNext: (t.linkNext - from),\n }));\n return t;\n }));\n};\nexport function lex(text) {\n const tokens = [];\n const throwError = (message) => {\n const token = (offset < text.length) ? JSON.stringify(text[offset]) : \"$EOI\";\n throw new Error(`invalid token ${token} at ${offset}: ${message}`);\n };\n let brackets = [];\n let commas = [];\n let offset = 0;\n while (offset < text.length) {\n // Strip off any leading whitespace\n let cur = text.substring(offset);\n let match = cur.match(regexWhitespace);\n if (match) {\n offset += match[1].length;\n cur = text.substring(offset);\n }\n const token = { depth: brackets.length, linkBack: -1, linkNext: -1, match: -1, type: \"\", text: \"\", offset, value: -1 };\n tokens.push(token);\n let type = (SimpleTokens[cur[0]] || \"\");\n if (type) {\n token.type = type;\n token.text = cur[0];\n offset++;\n if (type === \"OPEN_PAREN\") {\n brackets.push(tokens.length - 1);\n commas.push(tokens.length - 1);\n }\n else if (type == \"CLOSE_PAREN\") {\n if (brackets.length === 0) {\n throwError(\"no matching open bracket\");\n }\n token.match = brackets.pop();\n (tokens[token.match]).match = tokens.length - 1;\n token.depth--;\n token.linkBack = commas.pop();\n (tokens[token.linkBack]).linkNext = tokens.length - 1;\n }\n else if (type === \"COMMA\") {\n token.linkBack = commas.pop();\n (tokens[token.linkBack]).linkNext = tokens.length - 1;\n commas.push(tokens.length - 1);\n }\n else if (type === \"OPEN_BRACKET\") {\n token.type = \"BRACKET\";\n }\n else if (type === \"CLOSE_BRACKET\") {\n // Remove the CLOSE_BRACKET\n let suffix = tokens.pop().text;\n if (tokens.length > 0 && tokens[tokens.length - 1].type === \"NUMBER\") {\n const value = tokens.pop().text;\n suffix = value + suffix;\n (tokens[tokens.length - 1]).value = logger.getNumber(value);\n }\n if (tokens.length === 0 || tokens[tokens.length - 1].type !== \"BRACKET\") {\n throw new Error(\"missing opening bracket\");\n }\n (tokens[tokens.length - 1]).text += suffix;\n }\n continue;\n }\n match = cur.match(regexIdentifier);\n if (match) {\n token.text = match[1];\n offset += token.text.length;\n if (Keywords.has(token.text)) {\n token.type = \"KEYWORD\";\n continue;\n }\n if (token.text.match(regexType)) {\n token.type = \"TYPE\";\n continue;\n }\n token.type = \"ID\";\n continue;\n }\n match = cur.match(regexNumber);\n if (match) {\n token.text = match[1];\n token.type = \"NUMBER\";\n offset += token.text.length;\n continue;\n }\n throw new Error(`unexpected token ${JSON.stringify(cur[0])} at position ${offset}`);\n }\n return new TokenString(tokens.map((t) => Object.freeze(t)));\n}\n// Check only one of `allowed` is in `set`\nfunction allowSingle(set, allowed) {\n let included = [];\n for (const key in allowed.keys()) {\n if (set.has(key)) {\n included.push(key);\n }\n }\n if (included.length > 1) {\n throw new Error(`conflicting types: ${included.join(\", \")}`);\n }\n}\n// Functions to process a Solidity Signature TokenString from left-to-right for...\n// ...the name with an optional type, returning the name\nfunction consumeName(type, tokens) {\n if (tokens.peekKeyword(KwTypes)) {\n const keyword = tokens.pop().text;\n if (keyword !== type) {\n throw new Error(`expected ${type}, got ${keyword}`);\n }\n }\n return tokens.popType(\"ID\");\n}\n// ...all keywords matching allowed, returning the keywords\nfunction consumeKeywords(tokens, allowed) {\n const keywords = new Set();\n while (true) {\n const keyword = tokens.peekType(\"KEYWORD\");\n if (keyword == null || (allowed && !allowed.has(keyword))) {\n break;\n }\n tokens.pop();\n if (keywords.has(keyword)) {\n throw new Error(`duplicate keywords: ${JSON.stringify(keyword)}`);\n }\n keywords.add(keyword);\n }\n return Object.freeze(keywords);\n}\n// ...all visibility keywords, returning the coalesced mutability\nfunction consumeMutability(tokens) {\n let modifiers = consumeKeywords(tokens, KwVisib);\n // Detect conflicting modifiers\n allowSingle(modifiers, setify(\"constant payable nonpayable\".split(\" \")));\n allowSingle(modifiers, setify(\"pure view payable nonpayable\".split(\" \")));\n // Process mutability states\n if (modifiers.has(\"view\")) {\n return \"view\";\n }\n if (modifiers.has(\"pure\")) {\n return \"pure\";\n }\n if (modifiers.has(\"payable\")) {\n return \"payable\";\n }\n if (modifiers.has(\"nonpayable\")) {\n return \"nonpayable\";\n }\n // Process legacy `constant` last\n if (modifiers.has(\"constant\")) {\n return \"view\";\n }\n return \"nonpayable\";\n}\n// ...a parameter list, returning the ParamType list\nfunction consumeParams(tokens, allowIndexed) {\n return tokens.popParams().map((t) => ParamType.fromTokens(t, allowIndexed));\n}\n// ...a gas limit, returning a BigNumber or null if none\nfunction consumeGas(tokens) {\n if (tokens.peekType(\"AT\")) {\n tokens.pop();\n if (tokens.peekType(\"NUMBER\")) {\n return logger.getBigInt(tokens.pop().text);\n }\n throw new Error(\"invalid gas\");\n }\n return null;\n}\nfunction consumeEoi(tokens) {\n if (tokens.length) {\n throw new Error(`unexpected tokens: ${tokens.toString()}`);\n }\n}\nconst regexArrayType = new RegExp(/^(.*)\\[([0-9]*)\\]$/);\nfunction verifyBasicType(type) {\n const match = type.match(regexType);\n if (!match) {\n return logger.throwArgumentError(\"invalid type\", \"type\", type);\n }\n if (type === \"uint\") {\n return \"uint256\";\n }\n if (type === \"int\") {\n return \"int256\";\n }\n if (match[2]) {\n // bytesXX\n const length = parseInt(match[2]);\n if (length === 0 || length > 32) {\n logger.throwArgumentError(\"invalid bytes length\", \"type\", type);\n }\n }\n else if (match[3]) {\n // intXX or uintXX\n const size = parseInt(match[3]);\n if (size === 0 || size > 256 || size % 8) {\n logger.throwArgumentError(\"invalid numeric width\", \"type\", type);\n }\n }\n return type;\n}\n// Make the Fragment constructors effectively private\nconst _guard = {};\nconst internal = Symbol.for(\"_ethers_internal\");\nconst ParamTypeInternal = \"_ParamTypeInternal\";\nexport class ParamType {\n constructor(guard, name, type, baseType, indexed, components, arrayLength, arrayChildren) {\n _ParamType_instances.add(this);\n logger.assertPrivate(guard, _guard, \"ParamType\");\n Object.defineProperty(this, internal, { value: ParamTypeInternal });\n if (components) {\n components = Object.freeze(components.slice());\n }\n if (baseType === \"array\") {\n if (arrayLength == null || arrayChildren == null) {\n throw new Error(\"\");\n }\n }\n else if (arrayLength != null || arrayChildren != null) {\n throw new Error(\"\");\n }\n if (baseType === \"tuple\") {\n if (components == null) {\n throw new Error(\"\");\n }\n }\n else if (components != null) {\n throw new Error(\"\");\n }\n defineProperties(this, {\n name, type, baseType, indexed, components, arrayLength, arrayChildren\n });\n }\n // Format the parameter fragment\n // - sighash: \"(uint256,address)\"\n // - minimal: \"tuple(uint256,address) indexed\"\n // - full: \"tuple(uint256 foo, address bar) indexed baz\"\n format(format = FormatType.sighash) {\n if (!FormatType[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatType.json) {\n let result = {\n type: ((this.baseType === \"tuple\") ? \"tuple\" : this.type),\n name: (this.name || undefined)\n };\n if (typeof (this.indexed) === \"boolean\") {\n result.indexed = this.indexed;\n }\n if (this.isTuple()) {\n result.components = this.components.map((c) => JSON.parse(c.format(format)));\n }\n return JSON.stringify(result);\n }\n let result = \"\";\n // Array\n if (this.isArray()) {\n result += this.arrayChildren.format(format);\n result += `[${(this.arrayLength < 0 ? \"\" : String(this.arrayLength))}]`;\n }\n else {\n if (this.isTuple()) {\n if (format !== FormatType.sighash) {\n result += this.type;\n }\n result += \"(\" + this.components.map((comp) => comp.format(format)).join((format === FormatType.full) ? \", \" : \",\") + \")\";\n }\n else {\n result += this.type;\n }\n }\n if (format !== FormatType.sighash) {\n if (this.indexed === true) {\n result += \" indexed\";\n }\n if (format === FormatType.full && this.name) {\n result += \" \" + this.name;\n }\n }\n return result;\n }\n static isArray(value) {\n return value && (value.baseType === \"array\");\n }\n isArray() {\n return (this.baseType === \"array\");\n }\n isTuple() {\n return (this.baseType === \"tuple\");\n }\n isIndexable() {\n return (this.indexed != null);\n }\n walk(value, process) {\n if (this.isArray()) {\n if (!Array.isArray(value)) {\n throw new Error(\"invlaid array value\");\n }\n if (this.arrayLength !== -1 && value.length !== this.arrayLength) {\n throw new Error(\"array is wrong length\");\n }\n return value.map((v) => (this.arrayChildren.walk(v, process)));\n }\n if (this.isTuple()) {\n if (!Array.isArray(value)) {\n throw new Error(\"invlaid tuple value\");\n }\n if (value.length !== this.components.length) {\n throw new Error(\"array is wrong length\");\n }\n return value.map((v, i) => (this.components[i].walk(v, process)));\n }\n return process(this.type, value);\n }\n async walkAsync(value, process) {\n const promises = [];\n const result = [value];\n __classPrivateFieldGet(this, _ParamType_instances, \"m\", _ParamType_walkAsync).call(this, promises, value, process, (value) => {\n result[0] = value;\n });\n if (promises.length) {\n await Promise.all(promises);\n }\n return result[0];\n }\n static from(obj, allowIndexed) {\n if (ParamType.isParamType(obj)) {\n return obj;\n }\n if (typeof (obj) === \"string\") {\n return ParamType.fromTokens(lex(obj), allowIndexed);\n }\n if (obj instanceof TokenString) {\n return ParamType.fromTokens(obj, allowIndexed);\n }\n const name = obj.name;\n if (name && (typeof (name) !== \"string\" || !name.match(regexIdentifier))) {\n logger.throwArgumentError(\"invalid name\", \"obj.name\", name);\n }\n let indexed = obj.indexed;\n if (indexed != null) {\n if (!allowIndexed) {\n logger.throwArgumentError(\"parameter cannot be indexed\", \"obj.indexed\", obj.indexed);\n }\n indexed = !!indexed;\n }\n let type = obj.type;\n let arrayMatch = type.match(regexArrayType);\n if (arrayMatch) {\n const arrayLength = arrayMatch[2];\n const arrayChildren = ParamType.from({\n type: arrayMatch[1],\n components: obj.components\n });\n return new ParamType(_guard, name, type, \"array\", indexed, null, arrayLength, arrayChildren);\n }\n if (type.substring(0, 5) === \"tuple(\" || type[0] === \"(\") {\n const comps = (obj.components != null) ? obj.components.map((c) => ParamType.from(c)) : null;\n const tuple = new ParamType(_guard, name, type, \"tuple\", indexed, comps, null, null);\n // @TODO: use lexer to validate and normalize type\n return tuple;\n }\n type = verifyBasicType(obj.type);\n return new ParamType(_guard, name, type, type, indexed, null, null, null);\n }\n static fromObject(obj, allowIndexed) {\n throw new Error(\"@TODO\");\n }\n static fromTokens(tokens, allowIndexed) {\n let type = \"\", baseType = \"\";\n let comps = null;\n if (consumeKeywords(tokens, setify([\"tuple\"])).has(\"tuple\") || tokens.peekType(\"OPEN_PAREN\")) {\n // Tuple\n baseType = \"tuple\";\n comps = tokens.popParams().map((t) => ParamType.from(t));\n type = `tuple(${comps.map((c) => c.format()).join(\",\")})`;\n }\n else {\n // Normal\n type = verifyBasicType(tokens.popType(\"TYPE\"));\n baseType = type;\n }\n // Check for Array\n let arrayChildren = null;\n let arrayLength = null;\n while (tokens.length && tokens.peekType(\"BRACKET\")) {\n const bracket = tokens.pop(); //arrays[i];\n arrayChildren = new ParamType(_guard, \"\", type, baseType, null, comps, arrayLength, arrayChildren);\n arrayLength = bracket.value;\n type += bracket.text;\n baseType = \"array\";\n comps = null;\n }\n let indexed = null;\n const keywords = consumeKeywords(tokens, KwModifiers);\n if (keywords.has(\"indexed\")) {\n if (!allowIndexed) {\n throw new Error(\"\");\n }\n indexed = true;\n }\n const name = (tokens.peekType(\"ID\") ? tokens.pop().text : \"\");\n if (tokens.length) {\n throw new Error(\"leftover tokens\");\n }\n return new ParamType(_guard, name, type, baseType, indexed, comps, arrayLength, arrayChildren);\n }\n static isParamType(value) {\n return (value && value[internal] === ParamTypeInternal);\n }\n}\n_ParamType_instances = new WeakSet(), _ParamType_walkAsync = function _ParamType_walkAsync(promises, value, process, setValue) {\n if (this.isArray()) {\n if (!Array.isArray(value)) {\n throw new Error(\"invlaid array value\");\n }\n if (this.arrayLength !== -1 && value.length !== this.arrayLength) {\n throw new Error(\"array is wrong length\");\n }\n const childType = this.arrayChildren;\n const result = value.slice();\n result.forEach((value, index) => {\n __classPrivateFieldGet(childType, _ParamType_instances, \"m\", _ParamType_walkAsync).call(childType, promises, value, process, (value) => {\n result[index] = value;\n });\n });\n setValue(result);\n return;\n }\n if (this.isTuple()) {\n const components = this.components;\n // Convert the object into an array\n let result;\n if (Array.isArray(value)) {\n result = value.slice();\n }\n else {\n if (value == null || typeof (value) !== \"object\") {\n throw new Error(\"invlaid tuple value\");\n }\n result = components.map((param) => {\n if (!param.name) {\n throw new Error(\"cannot use object value with unnamed components\");\n }\n if (!(param.name in value)) {\n throw new Error(`missing value for component ${param.name}`);\n }\n return value[param.name];\n });\n }\n if (value.length !== this.components.length) {\n throw new Error(\"array is wrong length\");\n }\n result.forEach((value, index) => {\n var _a;\n __classPrivateFieldGet((_a = components[index]), _ParamType_instances, \"m\", _ParamType_walkAsync).call(_a, promises, value, process, (value) => {\n result[index] = value;\n });\n });\n setValue(result);\n return;\n }\n const result = process(this.type, value);\n if (result.then) {\n promises.push((async function () { setValue(await result); })());\n }\n else {\n setValue(result);\n }\n};\nexport var FragmentType;\n(function (FragmentType) {\n FragmentType[\"constructor\"] = \"constructor\";\n FragmentType[\"error\"] = \"error\";\n FragmentType[\"event\"] = \"event\";\n FragmentType[\"function\"] = \"function\";\n FragmentType[\"struct\"] = \"struct\";\n})(FragmentType || (FragmentType = {}));\n;\nexport class Fragment {\n constructor(guard, type, inputs) {\n logger.assertPrivate(guard, _guard, \"Fragment\");\n inputs = Object.freeze(inputs.slice());\n defineProperties(this, { type, inputs });\n }\n static from(obj) {\n if (typeof (obj) === \"string\") {\n return this.fromString(obj);\n }\n if (obj instanceof TokenString) {\n return this.fromTokens(obj);\n }\n if (typeof (obj) === \"object\") {\n return this.fromObject(obj);\n }\n throw new Error(`unsupported type: ${obj}`);\n }\n static fromObject(obj) {\n switch (obj.type) {\n case \"constructor\": return ConstructorFragment.fromObject(obj);\n case \"error\": return ErrorFragment.fromObject(obj);\n case \"event\": return EventFragment.fromObject(obj);\n case \"function\": return FunctionFragment.fromObject(obj);\n case \"struct\": return StructFragment.fromObject(obj);\n }\n throw new Error(\"not implemented yet\");\n }\n static fromString(text) {\n try {\n Fragment.from(JSON.parse(text));\n }\n catch (e) { }\n return Fragment.fromTokens(lex(text));\n }\n static fromTokens(tokens) {\n const type = tokens.popKeyword(KwTypes);\n switch (type) {\n case \"constructor\": return ConstructorFragment.fromTokens(tokens);\n case \"error\": return ErrorFragment.fromTokens(tokens);\n case \"event\": return EventFragment.fromTokens(tokens);\n case \"function\": return FunctionFragment.fromTokens(tokens);\n case \"struct\": return StructFragment.fromTokens(tokens);\n }\n throw new Error(`unsupported type: ${type}`);\n }\n /*\n static fromTokens(tokens: TokenString): Fragment {\n const assertDone = () => {\n if (tokens.length) { throw new Error(`unexpected tokens: ${ tokens.toString() }`); }\n });\n\n const type = (tokens.length && tokens.peek().type === \"KEYWORD\") ? tokens.peek().text: \"unknown\";\n\n const name = consumeName(\"error\", tokens);\n const inputs = consumeParams(tokens, type === \"event\");\n\n switch (type) {\n case \"event\": case \"struct\":\n assertDone();\n }\n\n }\n */\n static isConstructor(value) {\n return (value && value.type === \"constructor\");\n }\n static isError(value) {\n return (value && value.type === \"error\");\n }\n static isEvent(value) {\n return (value && value.type === \"event\");\n }\n static isFunction(value) {\n return (value && value.type === \"function\");\n }\n static isStruct(value) {\n return (value && value.type === \"struct\");\n }\n}\nexport class NamedFragment extends Fragment {\n constructor(guard, type, name, inputs) {\n super(guard, type, inputs);\n inputs = Object.freeze(inputs.slice());\n defineProperties(this, { name });\n }\n}\nfunction joinParams(format, params) {\n return \"(\" + params.map((p) => p.format(format)).join((format === FormatType.full) ? \", \" : \",\") + \")\";\n}\nexport class ErrorFragment extends NamedFragment {\n constructor(guard, name, inputs) {\n super(guard, FragmentType.error, name, inputs);\n }\n format(format = FormatType.sighash) {\n if (!FormatType[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatType.json) {\n return JSON.stringify({\n type: \"error\",\n name: this.name,\n inputs: this.inputs.map((input) => JSON.parse(input.format(format))),\n });\n }\n const result = [];\n if (format !== FormatType.sighash) {\n result.push(\"error\");\n }\n result.push(this.name + joinParams(format, this.inputs));\n return result.join(\" \");\n }\n static fromString(text) {\n return ErrorFragment.fromTokens(lex(text));\n }\n static fromTokens(tokens) {\n const name = consumeName(\"error\", tokens);\n const inputs = consumeParams(tokens);\n consumeEoi(tokens);\n return new ErrorFragment(_guard, name, inputs);\n }\n}\nexport class EventFragment extends NamedFragment {\n constructor(guard, name, inputs, anonymous) {\n super(guard, FragmentType.event, name, inputs);\n defineProperties(this, { anonymous });\n }\n format(format = FormatType.sighash) {\n if (!FormatType[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatType.json) {\n return JSON.stringify({\n type: \"event\",\n anonymous: this.anonymous,\n name: this.name,\n inputs: this.inputs.map((i) => JSON.parse(i.format(format)))\n });\n }\n const result = [];\n if (format !== FormatType.sighash) {\n result.push(\"event\");\n }\n result.push(this.name + joinParams(format, this.inputs));\n if (format !== FormatType.sighash && this.anonymous) {\n result.push(\"anonymous\");\n }\n return result.join(\" \");\n }\n static fromString(text) {\n return EventFragment.fromTokens(lex(text));\n }\n static fromTokens(tokens) {\n const name = consumeName(\"event\", tokens);\n const inputs = consumeParams(tokens, true);\n const anonymous = !!consumeKeywords(tokens, setify([\"anonymous\"])).has(\"anonymous\");\n consumeEoi(tokens);\n return new EventFragment(_guard, name, inputs, anonymous);\n }\n}\nexport class ConstructorFragment extends Fragment {\n constructor(guard, type, inputs, payable, gas) {\n super(guard, type, inputs);\n defineProperties(this, { payable, gas });\n }\n format(format = FormatType.sighash) {\n if (!FormatType[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatType.sighash) {\n logger.throwError(\"cannot format a constructor for sighash\", \"UNSUPPORTED_OPERATION\", {\n operation: \"format(sighash)\"\n });\n }\n if (format === FormatType.json) {\n return JSON.stringify({\n type: \"constructor\",\n stateMutability: (this.payable ? \"payable\" : \"undefined\"),\n payable: this.payable,\n gas: ((this.gas != null) ? this.gas : undefined),\n inputs: this.inputs.map((i) => JSON.parse(i.format(format)))\n });\n }\n const result = [`constructor${joinParams(format, this.inputs)}`];\n result.push((this.payable) ? \"payable\" : \"nonpayable\");\n if (this.gas != null) {\n result.push(`@${this.gas.toString()}`);\n }\n return result.join(\" \");\n }\n static fromString(text) {\n return ConstructorFragment.fromTokens(lex(text));\n }\n static fromObject(obj) {\n throw new Error(\"TODO\");\n }\n static fromTokens(tokens) {\n consumeKeywords(tokens, setify([\"constructor\"]));\n const inputs = consumeParams(tokens);\n const payable = !!consumeKeywords(tokens, setify([\"payable\"])).has(\"payable\");\n const gas = consumeGas(tokens);\n consumeEoi(tokens);\n return new ConstructorFragment(_guard, FragmentType.constructor, inputs, payable, gas);\n }\n}\nexport class FunctionFragment extends NamedFragment {\n constructor(guard, name, stateMutability, inputs, outputs, gas) {\n super(guard, FragmentType.function, name, inputs);\n outputs = Object.freeze(outputs.slice());\n const constant = (stateMutability === \"view\" || stateMutability === \"pure\");\n const payable = (stateMutability === \"payable\");\n defineProperties(this, { constant, gas, outputs, payable, stateMutability });\n }\n format(format = FormatType.sighash) {\n if (!FormatType[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatType.json) {\n return JSON.stringify({\n type: \"function\",\n name: this.name,\n constant: this.constant,\n stateMutability: ((this.stateMutability !== \"nonpayable\") ? this.stateMutability : undefined),\n payable: this.payable,\n gas: ((this.gas != null) ? this.gas : undefined),\n inputs: this.inputs.map((i) => JSON.parse(i.format(format))),\n outputs: this.outputs.map((o) => JSON.parse(o.format(format))),\n });\n }\n const result = [];\n if (format !== FormatType.sighash) {\n result.push(\"function\");\n }\n result.push(this.name + joinParams(format, this.inputs));\n if (format !== FormatType.sighash) {\n if (this.stateMutability !== \"nonpayable\") {\n result.push(this.stateMutability);\n }\n if (this.outputs && this.outputs.length) {\n result.push(\"returns\");\n result.push(joinParams(format, this.outputs));\n }\n if (this.gas != null) {\n result.push(`@${this.gas.toString()}`);\n }\n }\n return result.join(\" \");\n }\n static fromString(text) {\n return FunctionFragment.fromTokens(lex(text));\n }\n static fromTokens(tokens) {\n const name = consumeName(\"function\", tokens);\n const inputs = consumeParams(tokens);\n const mutability = consumeMutability(tokens);\n let outputs = [];\n if (consumeKeywords(tokens, setify([\"returns\"])).has(\"returns\")) {\n outputs = consumeParams(tokens);\n }\n const gas = consumeGas(tokens);\n consumeEoi(tokens);\n return new FunctionFragment(_guard, name, mutability, inputs, outputs, gas);\n }\n}\nexport class StructFragment extends NamedFragment {\n format() {\n throw new Error(\"@TODO\");\n }\n static fromString(text) {\n return StructFragment.fromTokens(lex(text));\n }\n static fromTokens(tokens) {\n const name = consumeName(\"struct\", tokens);\n const inputs = consumeParams(tokens);\n consumeEoi(tokens);\n return new StructFragment(_guard, FragmentType.struct, name, inputs);\n }\n}\n//# sourceMappingURL=fragments.js.map","export const version = \"@ethersproject/math@6.0.0-beta.3\";\n//# sourceMappingURL=_version.js.map","import { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version.js\";\nexport const logger = new Logger(version);\n//# sourceMappingURL=logger.js.map","import { logger } from \"./logger.js\";\n// IEEE 754 support 53-bits of mantissa\nconst maxValue = 0x1fffffffffffff;\nconst nibbles = \"0123456789abcdef\";\nconst BN_0 = BigInt(0);\n// Converts a value to a BigInt, including big endian data\nexport function toBigInt(_value) {\n if (_value instanceof Uint8Array) {\n let result = \"0x0\";\n for (const v of _value) {\n result += nibbles[v >> 4];\n result += nibbles[v & 0x0f];\n }\n return BigInt(result);\n }\n return logger.getBigInt(_value, \"value\");\n}\nexport function toNumber(_value) {\n const value = toBigInt(_value);\n if (value < -maxValue || value > maxValue) {\n logger.throwArgumentError(\"overflow\", \"value\", _value);\n }\n return Number(value);\n}\n// Converts value to hex, optionally padding on the left to width bytes\nexport function toHex(_value, _width) {\n const value = logger.getBigInt(_value, \"value\");\n if (value < 0) {\n throw new Error(\"cannot convert negative value to hex\");\n }\n let result = value.toString(16);\n if (_width == null) {\n // Ensure the value is of even length\n if (result.length % 2) {\n result = \"0\" + result;\n }\n }\n else {\n const width = logger.getNumber(_width, \"width\");\n if (width * 2 < result.length) {\n throw new Error(`value ${value} exceeds width ${width}`);\n }\n // Pad the value to the required width\n while (result.length < (width * 2)) {\n result = \"0\" + result;\n }\n }\n return \"0x\" + result;\n}\nexport function toArray(_value) {\n const value = logger.getBigInt(_value, \"value\");\n if (value < 0) {\n throw new Error(\"cannot convert negative value to hex\");\n }\n if (value === BN_0) {\n return new Uint8Array([]);\n }\n let hex = value.toString(16);\n if (hex.length % 2) {\n hex = \"0\" + hex;\n }\n const result = new Uint8Array(hex.length / 2);\n for (let i = 0; i < result.length; i++) {\n const offset = i * 2;\n result[i] = parseInt(hex.substring(offset, offset + 2), 16);\n }\n return result;\n}\n//# sourceMappingURL=convert.js.map","import { logger } from \"./logger.js\";\nconst BN_0 = BigInt(0);\nconst BN_1 = BigInt(1);\n// Convert a value from a twos-compliment value\nexport function fromTwos(_value, _width) {\n const value = logger.getBigInt(_value, \"value\");\n const width = BigInt(logger.getNumber(_width, \"width\"));\n // Top bit set; treat as a negative value\n if (value >> (width - BN_1)) {\n const mask = (BN_1 << width) - BN_1;\n return -(((~value) & mask) + BN_1);\n }\n return value;\n}\n// Convert value to a twos-compliment value\nexport function toTwos(_value, _width) {\n const value = logger.getBigInt(_value, \"value\");\n const width = BigInt(logger.getNumber(_width, \"width\"));\n if (value < BN_0) {\n const mask = (BN_1 << width) - BN_1;\n return ((~(-value)) & mask) + BN_1;\n }\n return value;\n}\nexport function mask(_value, _bits) {\n const value = logger.getBigInt(_value, \"value\");\n const bits = logger.getBigInt(_bits, \"bits\");\n return value & ((BN_1 << bits) - BN_1);\n}\n//# sourceMappingURL=maths.js.map","var __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 _FixedNumber_instances, _FixedNumber_value, _FixedNumber_checkFormat;\nimport { toBigInt, toHex } from \"./convert.js\";\nimport { logger } from \"./logger.js\";\nimport { fromTwos, toTwos } from \"./maths.js\";\nconst _constructorGuard = {};\n//const Zero = BigInt(0);\nconst NegativeOne = BigInt(-1);\nfunction throwFault(message, fault, operation, value) {\n const params = { fault: fault, operation: operation };\n if (value !== undefined) {\n params.value = value;\n }\n return logger.throwError(message, \"NUMERIC_FAULT\", params);\n}\n// Constant to pull zeros from for multipliers\nlet zeros = \"0\";\nwhile (zeros.length < 256) {\n zeros += zeros;\n}\n// Returns a string \"1\" followed by decimal \"0\"s\nfunction getMultiplier(decimals) {\n if (typeof (decimals) !== \"number\" || decimals < 0 || decimals > 256 || decimals % 1) {\n logger.throwArgumentError(\"invalid decimal length\", \"decimals\", decimals);\n }\n return BigInt(\"1\" + zeros.substring(0, decimals));\n}\nexport function formatFixed(_value, _decimals) {\n if (_decimals == null) {\n _decimals = 18;\n }\n let value = logger.getBigInt(_value, \"value\");\n const decimals = logger.getNumber(_decimals, \"decimals\");\n const multiplier = getMultiplier(decimals);\n const multiplierStr = String(multiplier);\n const negative = (value < 0);\n if (negative) {\n value *= NegativeOne;\n }\n let fraction = String(value % multiplier);\n // Make sure there are enough place-holders\n while (fraction.length < multiplierStr.length - 1) {\n fraction = \"0\" + fraction;\n }\n // Strip training 0\n while (fraction.length > 1 && fraction.substring(fraction.length - 1) === \"0\") {\n fraction = fraction.substring(0, fraction.length - 1);\n }\n let result = String(value / multiplier);\n if (multiplierStr.length !== 1) {\n result += \".\" + fraction;\n }\n if (negative) {\n result = \"-\" + result;\n }\n return result;\n}\nexport function parseFixed(value, _decimals) {\n if (_decimals == null) {\n _decimals = 18;\n }\n const decimals = logger.getNumber(_decimals, \"decimals\");\n const multiplier = getMultiplier(decimals);\n if (typeof (value) !== \"string\" || !value.match(/^-?[0-9.]+$/)) {\n logger.throwArgumentError(\"invalid decimal value\", \"value\", value);\n }\n // Is it negative?\n const negative = (value.substring(0, 1) === \"-\");\n if (negative) {\n value = value.substring(1);\n }\n if (value === \".\") {\n logger.throwArgumentError(\"missing value\", \"value\", value);\n }\n // Split it into a whole and fractional part\n const comps = value.split(\".\");\n if (comps.length > 2) {\n logger.throwArgumentError(\"too many decimal points\", \"value\", value);\n }\n let whole = (comps[0] || \"0\"), fraction = (comps[1] || \"0\");\n // Trim trialing zeros\n while (fraction[fraction.length - 1] === \"0\") {\n fraction = fraction.substring(0, fraction.length - 1);\n }\n // Check the fraction doesn't exceed our decimals size\n if (fraction.length > String(multiplier).length - 1) {\n throwFault(\"fractional component exceeds decimals\", \"underflow\", \"parseFixed\");\n }\n // If decimals is 0, we have an empty string for fraction\n if (fraction === \"\") {\n fraction = \"0\";\n }\n // Fully pad the string with zeros to get to wei\n while (fraction.length < String(multiplier).length - 1) {\n fraction += \"0\";\n }\n const wholeValue = BigInt(whole);\n const fractionValue = BigInt(fraction);\n let wei = (wholeValue * multiplier) + fractionValue;\n if (negative) {\n wei *= NegativeOne;\n }\n return wei;\n}\nexport class FixedFormat {\n constructor(constructorGuard, signed, width, decimals) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot use FixedFormat constructor; use FixedFormat.from\", \"UNSUPPORTED_OPERATION\", {\n operation: \"new FixedFormat\"\n });\n }\n this.signed = signed;\n this.width = width;\n this.decimals = decimals;\n this.name = (signed ? \"\" : \"u\") + \"fixed\" + String(width) + \"x\" + String(decimals);\n this._multiplier = getMultiplier(decimals);\n Object.freeze(this);\n }\n static from(value) {\n if (value instanceof FixedFormat) {\n return value;\n }\n if (typeof (value) === \"number\") {\n value = `fixed128x${value}`;\n }\n let signed = true;\n let width = 128;\n let decimals = 18;\n if (typeof (value) === \"string\") {\n if (value === \"fixed\") {\n // defaults...\n }\n else if (value === \"ufixed\") {\n signed = false;\n }\n else {\n const match = value.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);\n if (!match) {\n return logger.throwArgumentError(\"invalid fixed format\", \"format\", value);\n }\n signed = (match[1] !== \"u\");\n width = parseInt(match[2]);\n decimals = parseInt(match[3]);\n }\n }\n else if (value) {\n const check = (key, type, defaultValue) => {\n if (value[key] == null) {\n return defaultValue;\n }\n if (typeof (value[key]) !== type) {\n logger.throwArgumentError(\"invalid fixed format (\" + key + \" not \" + type + \")\", \"format.\" + key, value[key]);\n }\n return value[key];\n };\n signed = check(\"signed\", \"boolean\", signed);\n width = check(\"width\", \"number\", width);\n decimals = check(\"decimals\", \"number\", decimals);\n }\n if (width % 8) {\n logger.throwArgumentError(\"invalid fixed format width (not byte aligned)\", \"format.width\", width);\n }\n if (decimals > 80) {\n logger.throwArgumentError(\"invalid fixed format (decimals too large)\", \"format.decimals\", decimals);\n }\n return new FixedFormat(_constructorGuard, signed, width, decimals);\n }\n}\nexport class FixedNumber {\n constructor(constructorGuard, hex, value, format) {\n _FixedNumber_instances.add(this);\n //#hex: string;\n _FixedNumber_value.set(this, void 0);\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot use FixedNumber constructor; use FixedNumber.from\", \"UNSUPPORTED_OPERATION\", {\n operation: \"new FixedFormat\"\n });\n }\n this.format = FixedFormat.from(format);\n //this.#hex = hex;\n __classPrivateFieldSet(this, _FixedNumber_value, value, \"f\");\n this._isFixedNumber = true;\n Object.freeze(this);\n }\n addUnsafe(other) {\n __classPrivateFieldGet(this, _FixedNumber_instances, \"m\", _FixedNumber_checkFormat).call(this, other);\n const a = parseFixed(__classPrivateFieldGet(this, _FixedNumber_value, \"f\"), this.format.decimals);\n const b = parseFixed(__classPrivateFieldGet(other, _FixedNumber_value, \"f\"), other.format.decimals);\n return FixedNumber.fromValue(a + b, this.format.decimals, this.format);\n }\n subUnsafe(other) {\n __classPrivateFieldGet(this, _FixedNumber_instances, \"m\", _FixedNumber_checkFormat).call(this, other);\n const a = parseFixed(__classPrivateFieldGet(this, _FixedNumber_value, \"f\"), this.format.decimals);\n const b = parseFixed(__classPrivateFieldGet(other, _FixedNumber_value, \"f\"), other.format.decimals);\n return FixedNumber.fromValue(a - b, this.format.decimals, this.format);\n }\n mulUnsafe(other) {\n __classPrivateFieldGet(this, _FixedNumber_instances, \"m\", _FixedNumber_checkFormat).call(this, other);\n const a = parseFixed(__classPrivateFieldGet(this, _FixedNumber_value, \"f\"), this.format.decimals);\n const b = parseFixed(__classPrivateFieldGet(other, _FixedNumber_value, \"f\"), other.format.decimals);\n return FixedNumber.fromValue((a * b) / this.format._multiplier, this.format.decimals, this.format);\n }\n divUnsafe(other) {\n __classPrivateFieldGet(this, _FixedNumber_instances, \"m\", _FixedNumber_checkFormat).call(this, other);\n const a = parseFixed(__classPrivateFieldGet(this, _FixedNumber_value, \"f\"), this.format.decimals);\n const b = parseFixed(__classPrivateFieldGet(other, _FixedNumber_value, \"f\"), other.format.decimals);\n return FixedNumber.fromValue((a * this.format._multiplier) / b, this.format.decimals, this.format);\n }\n floor() {\n const comps = this.toString().split(\".\");\n if (comps.length === 1) {\n comps.push(\"0\");\n }\n let result = FixedNumber.from(comps[0], this.format);\n const hasFraction = !comps[1].match(/^(0*)$/);\n if (this.isNegative() && hasFraction) {\n result = result.subUnsafe(ONE.toFormat(result.format));\n }\n return result;\n }\n ceiling() {\n const comps = this.toString().split(\".\");\n if (comps.length === 1) {\n comps.push(\"0\");\n }\n let result = FixedNumber.from(comps[0], this.format);\n const hasFraction = !comps[1].match(/^(0*)$/);\n if (!this.isNegative() && hasFraction) {\n result = result.addUnsafe(ONE.toFormat(result.format));\n }\n return result;\n }\n // @TODO: Support other rounding algorithms\n round(decimals) {\n if (decimals == null) {\n decimals = 0;\n }\n // If we are already in range, we're done\n const comps = this.toString().split(\".\");\n if (comps.length === 1) {\n comps.push(\"0\");\n }\n if (decimals < 0 || decimals > 80 || (decimals % 1)) {\n logger.throwArgumentError(\"invalid decimal count\", \"decimals\", decimals);\n }\n if (comps[1].length <= decimals) {\n return this;\n }\n const factor = FixedNumber.from(\"1\" + zeros.substring(0, decimals), this.format);\n const bump = BUMP.toFormat(this.format);\n return this.mulUnsafe(factor).addUnsafe(bump).floor().divUnsafe(factor);\n }\n isZero() {\n return (__classPrivateFieldGet(this, _FixedNumber_value, \"f\") === \"0.0\" || __classPrivateFieldGet(this, _FixedNumber_value, \"f\") === \"0\");\n }\n isNegative() {\n return (__classPrivateFieldGet(this, _FixedNumber_value, \"f\")[0] === \"-\");\n }\n toString() { return __classPrivateFieldGet(this, _FixedNumber_value, \"f\"); }\n toHexString(_width) {\n throw new Error(\"TODO\");\n /*\n return toHex();\n if (width == null) { return this.#hex; }\n\n const width = logger.getNumeric(_width);\n if (width % 8) { logger.throwArgumentError(\"invalid byte width\", \"width\", width); }\n\n const hex = BigNumber.from(this.#hex).fromTwos(this.format.width).toTwos(width).toHexString();\n return zeroPadLeft(hex, width / 8);\n */\n }\n toUnsafeFloat() { return parseFloat(this.toString()); }\n toFormat(format) {\n return FixedNumber.fromString(__classPrivateFieldGet(this, _FixedNumber_value, \"f\"), format);\n }\n static fromValue(value, decimals = 0, format = \"fixed\") {\n return FixedNumber.fromString(formatFixed(value, decimals), FixedFormat.from(format));\n }\n static fromString(value, format = \"fixed\") {\n const fixedFormat = FixedFormat.from(format);\n const numeric = parseFixed(value, fixedFormat.decimals);\n if (!fixedFormat.signed && numeric < 0) {\n throwFault(\"unsigned value cannot be negative\", \"overflow\", \"value\", value);\n }\n const hex = (function () {\n if (fixedFormat.signed) {\n return toHex(toTwos(numeric, fixedFormat.width));\n }\n return toHex(numeric, fixedFormat.width / 8);\n })();\n const decimal = formatFixed(numeric, fixedFormat.decimals);\n return new FixedNumber(_constructorGuard, hex, decimal, fixedFormat);\n }\n static fromBytes(_value, format = \"fixed\") {\n const value = logger.getBytes(_value, \"value\");\n const fixedFormat = FixedFormat.from(format);\n if (value.length > fixedFormat.width / 8) {\n throw new Error(\"overflow\");\n }\n let numeric = toBigInt(value);\n if (fixedFormat.signed) {\n numeric = fromTwos(numeric, fixedFormat.width);\n }\n const hex = toHex(toTwos(numeric, (fixedFormat.signed ? 0 : 1) + fixedFormat.width));\n const decimal = formatFixed(numeric, fixedFormat.decimals);\n return new FixedNumber(_constructorGuard, hex, decimal, fixedFormat);\n }\n static from(value, format) {\n if (typeof (value) === \"string\") {\n return FixedNumber.fromString(value, format);\n }\n if (value instanceof Uint8Array) {\n return FixedNumber.fromBytes(value, format);\n }\n try {\n return FixedNumber.fromValue(value, 0, format);\n }\n catch (error) {\n // Allow NUMERIC_FAULT to bubble up\n if (error.code !== \"INVALID_ARGUMENT\") {\n throw error;\n }\n }\n return logger.throwArgumentError(\"invalid FixedNumber value\", \"value\", value);\n }\n static isFixedNumber(value) {\n return !!(value && value._isFixedNumber);\n }\n}\n_FixedNumber_value = new WeakMap(), _FixedNumber_instances = new WeakSet(), _FixedNumber_checkFormat = function _FixedNumber_checkFormat(other) {\n if (this.format.name !== other.format.name) {\n logger.throwArgumentError(\"incompatible format; use fixedNumber.toFormat\", \"other\", other);\n }\n};\nconst ONE = FixedNumber.from(1);\nconst BUMP = FixedNumber.from(\"0.5\");\n//# sourceMappingURL=fixednumber.js.map","import { toBigInt, toHex } from \"./convert.js\";\nimport { logger } from \"./logger.js\";\nconst Alphabet = \"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\";\nlet Lookup = null;\nfunction getAlpha(letter) {\n if (Lookup == null) {\n Lookup = {};\n for (let i = 0; i < Alphabet.length; i++) {\n Lookup[Alphabet[i]] = BigInt(i);\n }\n }\n const result = Lookup[letter];\n if (result == null) {\n logger.throwArgumentError(`invalid base58 value`, \"letter\", letter);\n }\n return result;\n}\nconst BN_0 = BigInt(0);\nconst BN_58 = BigInt(58);\nexport function encodeBase58(_value) {\n let value = toBigInt(logger.getBytes(_value));\n let result = \"\";\n while (value) {\n result = Alphabet[Number(value % BN_58)] + result;\n value /= BN_58;\n }\n return result;\n}\nexport function decodeBase58(value) {\n let result = BN_0;\n for (let i = 0; i < value.length; i++) {\n result *= BN_58;\n result += getAlpha(value[i]);\n }\n return toHex(result);\n}\n//# sourceMappingURL=base58.js.map","import { formatFixed, parseFixed } from \"./fixednumber.js\";\nimport { logger } from \"./logger.js\";\nconst names = [\n \"wei\",\n \"kwei\",\n \"mwei\",\n \"gwei\",\n \"szabo\",\n \"finney\",\n \"ether\",\n];\nexport function formatUnits(value, unit) {\n if (typeof (unit) === \"string\") {\n const index = names.indexOf(unit);\n if (index === -1) {\n logger.throwArgumentError(\"invalid unit\", \"unit\", unit);\n }\n unit = 3 * index;\n }\n return formatFixed(value, (unit != null) ? unit : 18);\n}\nexport function parseUnits(value, unit) {\n if (typeof (value) !== \"string\") {\n logger.throwArgumentError(\"value must be a string\", \"value\", value);\n }\n if (typeof (unit) === \"string\") {\n const index = names.indexOf(unit);\n if (index === -1) {\n logger.throwArgumentError(\"invalid unit\", \"unit\", unit);\n }\n unit = 3 * index;\n }\n return parseFixed(value, (unit != null) ? unit : 18);\n}\nexport function formatEther(wei) {\n return formatUnits(wei, 18);\n}\nexport function parseEther(ether) {\n return parseUnits(ether, 18);\n}\n//# sourceMappingURL=units.js.map","export function isHexString(value, length) {\n if (typeof (value) !== \"string\" || !value.match(/^0x[0-9A-Fa-f]*$/)) {\n return false;\n }\n if (typeof (length) === \"number\" && value.length !== 2 + 2 * length) {\n return false;\n }\n if (length === true && (value.length % 2) !== 0) {\n return false;\n }\n return true;\n}\nexport function isBytesLike(value) {\n return (isHexString(value, true) || (value instanceof Uint8Array));\n}\n//# sourceMappingURL=check.js.map","export const version = \"@ethersproject/bytes@6.0.0-beta.3\";\n//# sourceMappingURL=_version.js.map","import { version } from \"./_version.js\";\nimport { Logger } from \"@ethersproject/logger\";\nexport const logger = new Logger(version);\n//# sourceMappingURL=logger.js.map","import { isBytesLike } from \"./check.js\";\nimport { logger } from \"./logger.js\";\nlet BN_8 = null;\nlet BN_255 = null;\ntry {\n BN_8 = BigInt(\"8\");\n BN_255 = BigInt(\"255\");\n}\ncatch (error) {\n console.log(\"Unsupported bigint\", error);\n}\nfunction isHexable(value) {\n return (value && typeof (value.toHexString) === \"function\");\n}\nexport function arrayify(data) {\n if (data == null) {\n logger.throwArgumentError(\"cannot arrayify nullish\", \"data\", data);\n }\n if (typeof (data) === \"number\") {\n let v = logger.getNumber(data, \"data\");\n const result = [];\n while (v) {\n result.unshift(v & 0xff);\n v = parseInt(String(v / 256));\n }\n if (result.length === 0) {\n result.push(0);\n }\n return new Uint8Array(result);\n }\n if (BN_8 && typeof (data) === \"bigint\") {\n const result = [];\n while (data) {\n result.unshift(Number(data & BN_255));\n data >>= BN_8;\n }\n if (result.length === 0) {\n result.push(0);\n }\n return new Uint8Array(result);\n }\n if (isHexable(data)) {\n return arrayify(data.toHexString());\n }\n if (typeof (data) === \"string\") {\n let hex = data;\n //if (options.allowMissingPrefix && hex.substring(0, 2) !== \"0x\") {\n // hex = \"0x\" + hex;\n //}\n if (!hex.match(/^0x[0-9a-f]*$/i)) {\n throw new RangeError(`invalid hex data string (${JSON.stringify(data)})`);\n }\n const result = [];\n for (let i = 2; i < hex.length; i += 2) {\n result.push(parseInt(hex.substring(i, i + 2), 16));\n }\n return new Uint8Array(result);\n }\n if (data instanceof Uint8Array) {\n return new Uint8Array(data);\n }\n throw new TypeError(`cannot arrayify ${JSON.stringify(data)}`);\n}\nexport function _noCopyArrayify(data) {\n if (!isBytesLike(data)) {\n logger.throwArgumentError(\"invalid BytesLike value\", \"data\", data);\n } // @TODO: ArgumentE>\n if (data instanceof Uint8Array) {\n return data;\n }\n return arrayify(data);\n}\n//# sourceMappingURL=array.js.map","import { logger } from \"./logger.js\";\nexport function decodeBase64(textData) {\n return new Uint8Array(Buffer.from(textData, \"base64\"));\n}\n;\nexport function encodeBase64(data) {\n return Buffer.from(logger.getBytes(data, \"data\")).toString(\"base64\");\n}\n//# sourceMappingURL=base64.js.map","import { arrayify, _noCopyArrayify } from \"./array.js\";\nconst HexCharacters = \"0123456789abcdef\";\nexport function hexlify(data) {\n const bytes = _noCopyArrayify(data);\n let result = \"0x\";\n for (let i = 0; i < bytes.length; i++) {\n const v = bytes[i];\n result += HexCharacters[(v & 0xf0) >> 4] + HexCharacters[v & 0x0f];\n }\n return result;\n}\nexport function quantity(value) {\n let result = hexlify(arrayify(value)).substring(2);\n while (result.substring(0, 1) === \"0\") {\n result = result.substring(1);\n }\n if (result === \"\") {\n result = \"0\";\n }\n return \"0x\" + result;\n}\n//# sourceMappingURL=hex.js.map","import { _noCopyArrayify } from \"./array.js\";\nimport { isHexString } from \"./check.js\";\nimport { hexlify } from \"./hex.js\";\nimport { logger } from \"./logger.js\";\nexport function concat(datas) {\n return \"0x\" + datas.map((d) => hexlify(d).substring(2)).join(\"\");\n}\nexport function dataLength(data) {\n if (isHexString(data, true)) {\n return (data.length - 2) / 2;\n }\n return _noCopyArrayify(data).length;\n}\nexport function dataSlice(data, start, end) {\n const bytes = _noCopyArrayify(data);\n if (end != null && end > bytes.length) {\n logger.throwError(\"cannot slice beyond data bounds\", \"BUFFER_OVERRUN\", {\n buffer: bytes, length: bytes.length, offset: end\n });\n }\n return hexlify(bytes.slice((start == null) ? 0 : start, (end == null) ? bytes.length : end));\n}\nexport function stripZerosLeft(data) {\n let bytes = hexlify(data).substring(2);\n while (bytes.substring(0, 2) == \"00\") {\n bytes = bytes.substring(2);\n }\n return \"0x\" + bytes;\n}\n//# sourceMappingURL=data.js.map","import { _noCopyArrayify } from \"./array.js\";\nimport { hexlify } from \"./hex.js\";\nimport { logger } from \"./logger.js\";\nfunction zeroPad(data, length, left) {\n const bytes = _noCopyArrayify(data);\n if (length < bytes.length) {\n logger.throwError(\"padding exceeds data length\", \"BUFFER_OVERRUN\", {\n buffer: new Uint8Array(bytes),\n length: length,\n offset: length + 1\n });\n }\n const result = new Uint8Array(length);\n result.fill(0);\n if (left) {\n result.set(bytes, length - bytes.length);\n }\n else {\n result.set(bytes, 0);\n }\n return hexlify(result);\n}\nexport function zeroPadValue(data, length) {\n return zeroPad(data, length, true);\n}\nexport function zeroPadBytes(data, length) {\n return zeroPad(data, length, false);\n}\n//# sourceMappingURL=pad.js.map","var __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 _Result_instances, _Result_indices, _Result_throwError, _Writer_instances, _Writer_data, _Writer_dataLength, _Writer_writeData, _Reader_instances, _Reader_data, _Reader_offset, _Reader_peekBytes;\nimport { toArray, toBigInt, toNumber } from \"@ethersproject/math\";\nimport { arrayify, concat, hexlify } from \"@ethersproject/bytes\";\nimport { defineProperties } from \"@ethersproject/properties\";\nimport { logger } from \"../logger.js\";\nexport const WordSize = 32;\nconst Padding = new Uint8Array(WordSize);\n// Properties used to immediate pass through to the underlying object\n// - `then` is used to detect if an object is a Promise for await\nconst passProperties = [\"then\"];\nconst _guard = {};\nexport class Result extends Array {\n constructor(guard, items, keys) {\n logger.assertPrivate(guard, _guard, \"Result\");\n super(...items);\n _Result_instances.add(this);\n _Result_indices.set(this, void 0);\n // Name lookup table\n __classPrivateFieldSet(this, _Result_indices, new Map(), \"f\");\n if (keys) {\n keys.forEach((key, index) => {\n if (key == null) {\n return;\n }\n if (__classPrivateFieldGet(this, _Result_indices, \"f\").has(key)) {\n (__classPrivateFieldGet(this, _Result_indices, \"f\").get(key)).push(index);\n }\n else {\n __classPrivateFieldGet(this, _Result_indices, \"f\").set(key, [index]);\n }\n });\n }\n Object.freeze(this);\n return new Proxy(this, {\n get: (target, prop, receiver) => {\n if (typeof (prop) === \"string\") {\n if (prop.match(/^[0-9]+$/)) {\n const index = logger.getNumber(prop, \"%index\");\n if (index < 0 || index >= this.length) {\n throw new RangeError(\"out of result range\");\n }\n const item = target[index];\n if (item instanceof Error) {\n __classPrivateFieldGet(this, _Result_instances, \"m\", _Result_throwError).call(this, `index ${index}`, item);\n }\n return item;\n }\n // Pass important checks (like `then` for Promise) through\n if (prop in target || passProperties.indexOf(prop) >= 0) {\n return Reflect.get(target, prop, receiver);\n }\n // Something that could be a result keyword value\n if (!(prop in target)) {\n return target.getValue(prop);\n }\n }\n return Reflect.get(target, prop, receiver);\n }\n });\n }\n slice(start, end) {\n if (start == null) {\n start = 0;\n }\n if (end == null) {\n end = this.length;\n }\n const result = [];\n for (let i = start; i < end; i++) {\n let value;\n try {\n value = this[i];\n }\n catch (error) {\n value = error.error;\n }\n result.push(value);\n }\n return result;\n }\n getValue(name) {\n const index = __classPrivateFieldGet(this, _Result_indices, \"f\").get(name);\n if (index != null && index.length === 1) {\n const item = this[index[0]];\n if (item instanceof Error) {\n __classPrivateFieldGet(this, _Result_instances, \"m\", _Result_throwError).call(this, `property ${JSON.stringify(name)}`, item);\n }\n return item;\n }\n throw new Error(`no named parameter: ${JSON.stringify(name)}`);\n }\n static fromItems(items, keys) {\n return new Result(_guard, items, keys);\n }\n}\n_Result_indices = new WeakMap(), _Result_instances = new WeakSet(), _Result_throwError = function _Result_throwError(name, error) {\n const wrapped = new Error(`deferred error during ABI decoding triggered accessing ${name}`);\n wrapped.error = error;\n throw wrapped;\n};\nexport function checkResultErrors(result) {\n // Find the first error (if any)\n const errors = [];\n const checkErrors = function (path, object) {\n if (!Array.isArray(object)) {\n return;\n }\n for (let key in object) {\n const childPath = path.slice();\n childPath.push(key);\n try {\n checkErrors(childPath, object[key]);\n }\n catch (error) {\n errors.push({ path: childPath, error: error });\n }\n }\n };\n checkErrors([], result);\n return errors;\n}\nfunction getValue(value) {\n let bytes = toArray(value);\n if (bytes.length > WordSize) {\n logger.throwError(\"value out-of-bounds\", \"BUFFER_OVERRUN\", {\n buffer: bytes,\n length: WordSize,\n offset: bytes.length\n });\n }\n if (bytes.length !== WordSize) {\n bytes = arrayify(concat([Padding.slice(bytes.length % WordSize), bytes]));\n }\n return bytes;\n}\nexport class Coder {\n constructor(name, type, localName, dynamic) {\n defineProperties(this, { name, type, localName, dynamic }, {\n name: \"string\", type: \"string\", localName: \"string\", dynamic: \"boolean\"\n });\n }\n _throwError(message, value) {\n return logger.throwArgumentError(message, this.localName, value);\n }\n}\nexport class Writer {\n constructor() {\n _Writer_instances.add(this);\n // An array of WordSize lengthed objects to concatenation\n _Writer_data.set(this, void 0);\n _Writer_dataLength.set(this, void 0);\n __classPrivateFieldSet(this, _Writer_data, [], \"f\");\n __classPrivateFieldSet(this, _Writer_dataLength, 0, \"f\");\n }\n get data() {\n return concat(__classPrivateFieldGet(this, _Writer_data, \"f\"));\n }\n get length() { return __classPrivateFieldGet(this, _Writer_dataLength, \"f\"); }\n appendWriter(writer) {\n return __classPrivateFieldGet(this, _Writer_instances, \"m\", _Writer_writeData).call(this, arrayify(writer.data));\n }\n // Arrayish item; pad on the right to *nearest* WordSize\n writeBytes(value) {\n let bytes = arrayify(value);\n const paddingOffset = bytes.length % WordSize;\n if (paddingOffset) {\n bytes = arrayify(concat([bytes, Padding.slice(paddingOffset)]));\n }\n return __classPrivateFieldGet(this, _Writer_instances, \"m\", _Writer_writeData).call(this, bytes);\n }\n // Numeric item; pad on the left *to* WordSize\n writeValue(value) {\n return __classPrivateFieldGet(this, _Writer_instances, \"m\", _Writer_writeData).call(this, getValue(value));\n }\n // Inserts a numeric place-holder, returning a callback that can\n // be used to asjust the value later\n writeUpdatableValue() {\n const offset = __classPrivateFieldGet(this, _Writer_data, \"f\").length;\n __classPrivateFieldGet(this, _Writer_data, \"f\").push(Padding);\n __classPrivateFieldSet(this, _Writer_dataLength, __classPrivateFieldGet(this, _Writer_dataLength, \"f\") + WordSize, \"f\");\n return (value) => {\n __classPrivateFieldGet(this, _Writer_data, \"f\")[offset] = getValue(value);\n };\n }\n}\n_Writer_data = new WeakMap(), _Writer_dataLength = new WeakMap(), _Writer_instances = new WeakSet(), _Writer_writeData = function _Writer_writeData(data) {\n __classPrivateFieldGet(this, _Writer_data, \"f\").push(data);\n __classPrivateFieldSet(this, _Writer_dataLength, __classPrivateFieldGet(this, _Writer_dataLength, \"f\") + data.length, \"f\");\n return data.length;\n};\nexport class Reader {\n constructor(data, allowLoose) {\n _Reader_instances.add(this);\n _Reader_data.set(this, void 0);\n _Reader_offset.set(this, void 0);\n defineProperties(this, { allowLoose: !!allowLoose });\n __classPrivateFieldSet(this, _Reader_data, arrayify(data), \"f\");\n __classPrivateFieldSet(this, _Reader_offset, 0, \"f\");\n }\n get data() { return hexlify(__classPrivateFieldGet(this, _Reader_data, \"f\")); }\n get dataLength() { return __classPrivateFieldGet(this, _Reader_data, \"f\").length; }\n get consumed() { return __classPrivateFieldGet(this, _Reader_offset, \"f\"); }\n get bytes() { return new Uint8Array(__classPrivateFieldGet(this, _Reader_data, \"f\")); }\n // Create a sub-reader with the same underlying data, but offset\n subReader(offset) {\n return new Reader(__classPrivateFieldGet(this, _Reader_data, \"f\").slice(__classPrivateFieldGet(this, _Reader_offset, \"f\") + offset), this.allowLoose);\n }\n // Read bytes\n readBytes(length, loose) {\n let bytes = __classPrivateFieldGet(this, _Reader_instances, \"m\", _Reader_peekBytes).call(this, 0, length, !!loose);\n __classPrivateFieldSet(this, _Reader_offset, __classPrivateFieldGet(this, _Reader_offset, \"f\") + bytes.length, \"f\");\n // @TODO: Make sure the length..end bytes are all 0?\n return bytes.slice(0, length);\n }\n // Read a numeric values\n readValue() {\n return toBigInt(this.readBytes(WordSize));\n }\n readIndex() {\n return toNumber(this.readBytes(WordSize));\n }\n}\n_Reader_data = new WeakMap(), _Reader_offset = new WeakMap(), _Reader_instances = new WeakSet(), _Reader_peekBytes = function _Reader_peekBytes(offset, length, loose) {\n let alignedLength = Math.ceil(length / WordSize) * WordSize;\n if (__classPrivateFieldGet(this, _Reader_offset, \"f\") + alignedLength > __classPrivateFieldGet(this, _Reader_data, \"f\").length) {\n if (this.allowLoose && loose && __classPrivateFieldGet(this, _Reader_offset, \"f\") + length <= __classPrivateFieldGet(this, _Reader_data, \"f\").length) {\n alignedLength = length;\n }\n else {\n logger.throwError(\"data out-of-bounds\", \"BUFFER_OVERRUN\", {\n buffer: arrayify(__classPrivateFieldGet(this, _Reader_data, \"f\")),\n length: __classPrivateFieldGet(this, _Reader_data, \"f\").length,\n offset: __classPrivateFieldGet(this, _Reader_offset, \"f\") + alignedLength\n });\n }\n }\n return __classPrivateFieldGet(this, _Reader_data, \"f\").slice(__classPrivateFieldGet(this, _Reader_offset, \"f\"), __classPrivateFieldGet(this, _Reader_offset, \"f\") + alignedLength);\n};\n//# sourceMappingURL=abstract-coder.js.map","/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// The import here is via the package name. This is to ensure\n// that exports mapping/resolution does fall into place.\nimport { crypto } from '@noble/hashes/crypto';\n// Cast array to different type\nexport const u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexport const u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n// Cast array to view\nexport const createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n// The rotate right (circular right shift) operation for uint32\nexport const rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);\nexport const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\n// There is almost no big endian hardware, but js typed arrays uses platform specific endianess.\n// So, just to be sure not to corrupt anything.\nif (!isLE)\n throw new Error('Non little-endian hardware is not supported');\nconst hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xde, 0xad, 0xbe, 0xef]))\n */\nexport function bytesToHex(uint8a) {\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < uint8a.length; i++) {\n hex += hexes[uint8a[i]];\n }\n return hex;\n}\n/**\n * @example hexToBytes('deadbeef')\n */\nexport function hexToBytes(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToBytes: expected string, got ' + typeof hex);\n }\n if (hex.length % 2)\n throw new Error('hexToBytes: received invalid unpadded hex');\n const array = new Uint8Array(hex.length / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte))\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\n// Currently avoid insertion of polyfills with packers (browserify/webpack/etc)\n// But setTimeout is pretty slow, maybe worth to investigate howto do minimal polyfill here\nexport const nextTick = (() => {\n const nodeRequire = typeof module !== 'undefined' &&\n typeof module.require === 'function' &&\n module.require.bind(module);\n try {\n if (nodeRequire) {\n const { setImmediate } = nodeRequire('timers');\n return () => new Promise((resolve) => setImmediate(resolve));\n }\n }\n catch (e) { }\n return () => new Promise((resolve) => setTimeout(resolve, 0));\n})();\n// Returns control to thread each 'tick' ms to avoid blocking\nexport async function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await nextTick();\n ts += diff;\n }\n}\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string') {\n throw new TypeError(`utf8ToBytes expected string, got ${typeof str}`);\n }\n return new TextEncoder().encode(str);\n}\nexport function toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n if (!(data instanceof Uint8Array))\n throw new TypeError(`Expected input type is Uint8Array (got ${typeof data})`);\n return data;\n}\n/**\n * Concats Uint8Array-s into one; like `Buffer.concat([buf1, buf2])`\n * @example concatBytes(buf1, buf2)\n */\nexport function concatBytes(...arrays) {\n if (!arrays.every((a) => a instanceof Uint8Array))\n throw new Error('Uint8Array list expected');\n if (arrays.length === 1)\n return arrays[0];\n const length = arrays.reduce((a, arr) => a + arr.length, 0);\n const result = new Uint8Array(length);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const arr = arrays[i];\n result.set(arr, pad);\n pad += arr.length;\n }\n return result;\n}\nexport function assertNumber(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error(`Wrong positive integer: ${n}`);\n}\nexport function assertBool(b) {\n if (typeof b !== 'boolean') {\n throw new Error(`Expected boolean, not ${b}`);\n }\n}\nexport function assertBytes(bytes, ...lengths) {\n if (bytes instanceof Uint8Array && (!lengths.length || lengths.includes(bytes.length))) {\n return;\n }\n throw new TypeError(`Expected ${lengths} bytes, not ${typeof bytes} with length=${bytes.length}`);\n}\nexport function assertHash(hash) {\n if (typeof hash !== 'function' || typeof hash.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n assertNumber(hash.outputLen);\n assertNumber(hash.blockLen);\n}\n// For runtime check if class implements interface\nexport class Hash {\n // Safe version that clones internal state\n clone() {\n return this._cloneInto();\n }\n}\n// Check if object doens't have custom constructor (like Uint8Array/Array)\nconst isPlainObject = (obj) => Object.prototype.toString.call(obj) === '[object Object]' && obj.constructor === Object;\nexport function checkOpts(def, _opts) {\n if (_opts !== undefined && (typeof _opts !== 'object' || !isPlainObject(_opts)))\n throw new TypeError('Options should be object or undefined');\n const opts = Object.assign(def, _opts);\n return opts;\n}\nexport function wrapConstructor(hashConstructor) {\n const hashC = (message) => hashConstructor().update(toBytes(message)).digest();\n const tmp = hashConstructor();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashConstructor();\n return hashC;\n}\nexport function wrapConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\n/**\n * Secure PRNG\n */\nexport function randomBytes(bytesLength = 32) {\n if (crypto.web) {\n return crypto.web.getRandomValues(new Uint8Array(bytesLength));\n }\n else if (crypto.node) {\n return new Uint8Array(crypto.node.randomBytes(bytesLength).buffer);\n }\n else {\n throw new Error(\"The environment doesn't have randomBytes function\");\n }\n}\n","import { assertHash, Hash, toBytes } from './utils.js';\n// HMAC (RFC 2104)\nclass HMAC extends Hash {\n constructor(hash, _key) {\n super();\n this.finished = false;\n this.destroyed = false;\n assertHash(hash);\n const key = toBytes(_key);\n this.iHash = hash.create();\n if (!(this.iHash instanceof Hash))\n throw new TypeError('Expected instance of class which extends utils.Hash');\n const blockLen = (this.blockLen = this.iHash.blockLen);\n this.outputLen = this.iHash.outputLen;\n const pad = new Uint8Array(blockLen);\n // blockLen can be bigger than outputLen\n pad.set(key.length > this.iHash.blockLen ? hash.create().update(key).digest() : key);\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36;\n this.iHash.update(pad);\n // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n this.oHash = hash.create();\n // Undo internal XOR && apply outer XOR\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36 ^ 0x5c;\n this.oHash.update(pad);\n pad.fill(0);\n }\n update(buf) {\n if (this.destroyed)\n throw new Error('instance is destroyed');\n this.iHash.update(buf);\n return this;\n }\n digestInto(out) {\n if (this.destroyed)\n throw new Error('instance is destroyed');\n if (!(out instanceof Uint8Array) || out.length !== this.outputLen)\n throw new Error('HMAC: Invalid output buffer');\n if (this.finished)\n throw new Error('digest() was already called');\n this.finished = true;\n this.iHash.digestInto(out);\n this.oHash.update(out);\n this.oHash.digestInto(out);\n this.destroy();\n }\n digest() {\n const out = new Uint8Array(this.oHash.outputLen);\n this.digestInto(out);\n return out;\n }\n _cloneInto(to) {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to || (to = Object.create(Object.getPrototypeOf(this), {}));\n const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n to = to;\n to.finished = finished;\n to.destroyed = destroyed;\n to.blockLen = blockLen;\n to.outputLen = outputLen;\n to.oHash = oHash._cloneInto(to.oHash);\n to.iHash = iHash._cloneInto(to.iHash);\n return to;\n }\n destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n}\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n */\nexport const hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();\nhmac.create = (hash, key) => new HMAC(hash, key);\n","import { hmac } from './hmac.js';\n// prettier-ignore\nimport { createView, toBytes, assertNumber, assertHash, checkOpts, asyncLoop } from './utils.js';\n// Common prologue and epilogue for sync/async functions\nfunction pbkdf2Init(hash, _password, _salt, _opts) {\n assertHash(hash);\n const opts = checkOpts({ dkLen: 32, asyncTick: 10 }, _opts);\n const { c, dkLen, asyncTick } = opts;\n assertNumber(c);\n assertNumber(dkLen);\n assertNumber(asyncTick);\n if (c < 1)\n throw new Error('PBKDF2: iterations (c) should be >= 1');\n const password = toBytes(_password);\n const salt = toBytes(_salt);\n // DK = PBKDF2(PRF, Password, Salt, c, dkLen);\n const DK = new Uint8Array(dkLen);\n // U1 = PRF(Password, Salt + INT_32_BE(i))\n const PRF = hmac.create(hash, password);\n const PRFSalt = PRF._cloneInto().update(salt);\n return { c, dkLen, asyncTick, DK, PRF, PRFSalt };\n}\nfunction pbkdf2Output(PRF, PRFSalt, DK, prfW, u) {\n PRF.destroy();\n PRFSalt.destroy();\n if (prfW)\n prfW.destroy();\n u.fill(0);\n return DK;\n}\n/**\n * PBKDF2-HMAC: RFC 2898 key derivation function\n * @param hash - hash function that would be used e.g. sha256\n * @param password - password from which a derived key is generated\n * @param salt - cryptographic salt\n * @param opts - {c, dkLen} where c is work factor and dkLen is output message size\n */\nexport function pbkdf2(hash, password, salt, opts) {\n const { c, dkLen, DK, PRF, PRFSalt } = pbkdf2Init(hash, password, salt, opts);\n let prfW; // Working copy\n const arr = new Uint8Array(4);\n const view = createView(arr);\n const u = new Uint8Array(PRF.outputLen);\n // DK = T1 + T2 + ⋯ + Tdklen/hlen\n for (let ti = 1, pos = 0; pos < dkLen; ti++, pos += PRF.outputLen) {\n // Ti = F(Password, Salt, c, i)\n const Ti = DK.subarray(pos, pos + PRF.outputLen);\n view.setInt32(0, ti, false);\n // F(Password, Salt, c, i) = U1 ^ U2 ^ ⋯ ^ Uc\n // U1 = PRF(Password, Salt + INT_32_BE(i))\n (prfW = PRFSalt._cloneInto(prfW)).update(arr).digestInto(u);\n Ti.set(u.subarray(0, Ti.length));\n for (let ui = 1; ui < c; ui++) {\n // Uc = PRF(Password, Uc−1)\n PRF._cloneInto(prfW).update(u).digestInto(u);\n for (let i = 0; i < Ti.length; i++)\n Ti[i] ^= u[i];\n }\n }\n return pbkdf2Output(PRF, PRFSalt, DK, prfW, u);\n}\nexport async function pbkdf2Async(hash, password, salt, opts) {\n const { c, dkLen, asyncTick, DK, PRF, PRFSalt } = pbkdf2Init(hash, password, salt, opts);\n let prfW; // Working copy\n const arr = new Uint8Array(4);\n const view = createView(arr);\n const u = new Uint8Array(PRF.outputLen);\n // DK = T1 + T2 + ⋯ + Tdklen/hlen\n for (let ti = 1, pos = 0; pos < dkLen; ti++, pos += PRF.outputLen) {\n // Ti = F(Password, Salt, c, i)\n const Ti = DK.subarray(pos, pos + PRF.outputLen);\n view.setInt32(0, ti, false);\n // F(Password, Salt, c, i) = U1 ^ U2 ^ ⋯ ^ Uc\n // U1 = PRF(Password, Salt + INT_32_BE(i))\n (prfW = PRFSalt._cloneInto(prfW)).update(arr).digestInto(u);\n Ti.set(u.subarray(0, Ti.length));\n await asyncLoop(c - 1, asyncTick, (i) => {\n // Uc = PRF(Password, Uc−1)\n PRF._cloneInto(prfW).update(u).digestInto(u);\n for (let i = 0; i < Ti.length; i++)\n Ti[i] ^= u[i];\n });\n }\n return pbkdf2Output(PRF, PRFSalt, DK, prfW, u);\n}\n","import { Hash, createView, toBytes } from './utils.js';\n// Polyfill for Safari 14\nfunction setBigUint64(view, byteOffset, value, isLE) {\n if (typeof view.setBigUint64 === 'function')\n return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n// Base SHA2 class (RFC 6234)\nexport class SHA2 extends Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data) {\n if (this.destroyed)\n throw new Error('instance is destroyed');\n const { view, buffer, blockLen, finished } = this;\n if (finished)\n throw new Error('digest() was already called');\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = createView(data);\n for (; blockLen <= len - pos; pos += blockLen)\n this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out) {\n if (this.destroyed)\n throw new Error('instance is destroyed');\n if (!(out instanceof Uint8Array) || out.length < this.outputLen)\n throw new Error('_Sha2: Invalid output buffer');\n if (this.finished)\n throw new Error('digest() was already called');\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++)\n buffer[i] = 0;\n // NOTE: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64bit of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = createView(out);\n this.get().forEach((v, i) => oview.setUint32(4 * i, v, isLE));\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to) {\n to || (to = new this.constructor());\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n}\n","import { SHA2 } from './_sha2.js';\nimport { rotr, wrapConstructor } from './utils.js';\n// Choice: a ? b : c\nconst Chi = (a, b, c) => (a & b) ^ (~a & c);\n// Majority function, true if any two inpust is true\nconst Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n// Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n// prettier-ignore\nconst IV = new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = new Uint32Array(64);\nclass SHA256 extends SHA2 {\n constructor() {\n super(64, 32, 8, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n this.A = IV[0] | 0;\n this.B = IV[1] | 0;\n this.C = IV[2] | 0;\n this.D = IV[3] | 0;\n this.E = IV[4] | 0;\n this.F = IV[5] | 0;\n this.G = IV[6] | 0;\n this.H = IV[7] | 0;\n }\n get() {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n set(A, B, C, D, E, F, G, H) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4)\n SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3);\n const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n roundClean() {\n SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexport const sha256 = wrapConstructor(() => new SHA256());\n","const U32_MASK64 = BigInt(2 ** 32 - 1);\nconst _32n = BigInt(32);\nexport function fromBig(n, le = false) {\n if (le)\n return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\nexport function split(lst, le = false) {\n let Ah = new Uint32Array(lst.length);\n let Al = new Uint32Array(lst.length);\n for (let i = 0; i < lst.length; i++) {\n const { h, l } = fromBig(lst[i], le);\n [Ah[i], Al[i]] = [h, l];\n }\n return [Ah, Al];\n}\nexport const toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\n// for Shift in [0, 32)\nexport const shrSH = (h, l, s) => h >>> s;\nexport const shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in [1, 32)\nexport const rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));\nexport const rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nexport const rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));\nexport const rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));\n// Right rotate for shift===32 (just swaps l&h)\nexport const rotr32H = (h, l) => l;\nexport const rotr32L = (h, l) => h;\n// Left rotate for Shift in [1, 32)\nexport const rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s));\nexport const rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s));\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nexport const rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s));\nexport const rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s));\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\nexport function add(Ah, Al, Bh, Bl) {\n const l = (Al >>> 0) + (Bl >>> 0);\n return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\n// Addition with more than 2 elements\nexport const add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nexport const add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nexport const add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nexport const add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nexport const add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nexport const add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\n","import { SHA2 } from './_sha2.js';\nimport * as u64 from './_u64.js';\nimport { wrapConstructor } from './utils.js';\n// Round contants (first 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409):\n// prettier-ignore\nconst [SHA512_Kh, SHA512_Kl] = u64.split([\n '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc',\n '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118',\n '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2',\n '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694',\n '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65',\n '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5',\n '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4',\n '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70',\n '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df',\n '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b',\n '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30',\n '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8',\n '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8',\n '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3',\n '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec',\n '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b',\n '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178',\n '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b',\n '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c',\n '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'\n].map(n => BigInt(n)));\n// Temporary buffer, not used to store anything between runs\nconst SHA512_W_H = new Uint32Array(80);\nconst SHA512_W_L = new Uint32Array(80);\nexport class SHA512 extends SHA2 {\n constructor() {\n super(128, 64, 16, false);\n // We cannot use array here since array allows indexing by variable which means optimizer/compiler cannot use registers.\n // Also looks cleaner and easier to verify with spec.\n // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x6a09e667 | 0;\n this.Al = 0xf3bcc908 | 0;\n this.Bh = 0xbb67ae85 | 0;\n this.Bl = 0x84caa73b | 0;\n this.Ch = 0x3c6ef372 | 0;\n this.Cl = 0xfe94f82b | 0;\n this.Dh = 0xa54ff53a | 0;\n this.Dl = 0x5f1d36f1 | 0;\n this.Eh = 0x510e527f | 0;\n this.El = 0xade682d1 | 0;\n this.Fh = 0x9b05688c | 0;\n this.Fl = 0x2b3e6c1f | 0;\n this.Gh = 0x1f83d9ab | 0;\n this.Gl = 0xfb41bd6b | 0;\n this.Hh = 0x5be0cd19 | 0;\n this.Hl = 0x137e2179 | 0;\n }\n // prettier-ignore\n get() {\n const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];\n }\n // prettier-ignore\n set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) {\n this.Ah = Ah | 0;\n this.Al = Al | 0;\n this.Bh = Bh | 0;\n this.Bl = Bl | 0;\n this.Ch = Ch | 0;\n this.Cl = Cl | 0;\n this.Dh = Dh | 0;\n this.Dl = Dl | 0;\n this.Eh = Eh | 0;\n this.El = El | 0;\n this.Fh = Fh | 0;\n this.Fl = Fl | 0;\n this.Gh = Gh | 0;\n this.Gl = Gl | 0;\n this.Hh = Hh | 0;\n this.Hl = Hl | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) {\n SHA512_W_H[i] = view.getUint32(offset);\n SHA512_W_L[i] = view.getUint32((offset += 4));\n }\n for (let i = 16; i < 80; i++) {\n // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)\n const W15h = SHA512_W_H[i - 15] | 0;\n const W15l = SHA512_W_L[i - 15] | 0;\n const s0h = u64.rotrSH(W15h, W15l, 1) ^ u64.rotrSH(W15h, W15l, 8) ^ u64.shrSH(W15h, W15l, 7);\n const s0l = u64.rotrSL(W15h, W15l, 1) ^ u64.rotrSL(W15h, W15l, 8) ^ u64.shrSL(W15h, W15l, 7);\n // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)\n const W2h = SHA512_W_H[i - 2] | 0;\n const W2l = SHA512_W_L[i - 2] | 0;\n const s1h = u64.rotrSH(W2h, W2l, 19) ^ u64.rotrBH(W2h, W2l, 61) ^ u64.shrSH(W2h, W2l, 6);\n const s1l = u64.rotrSL(W2h, W2l, 19) ^ u64.rotrBL(W2h, W2l, 61) ^ u64.shrSL(W2h, W2l, 6);\n // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];\n const SUMl = u64.add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);\n const SUMh = u64.add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);\n SHA512_W_H[i] = SUMh | 0;\n SHA512_W_L[i] = SUMl | 0;\n }\n let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n // Compression function main loop, 80 rounds\n for (let i = 0; i < 80; i++) {\n // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)\n const sigma1h = u64.rotrSH(Eh, El, 14) ^ u64.rotrSH(Eh, El, 18) ^ u64.rotrBH(Eh, El, 41);\n const sigma1l = u64.rotrSL(Eh, El, 14) ^ u64.rotrSL(Eh, El, 18) ^ u64.rotrBL(Eh, El, 41);\n //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const CHIh = (Eh & Fh) ^ (~Eh & Gh);\n const CHIl = (El & Fl) ^ (~El & Gl);\n // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]\n // prettier-ignore\n const T1ll = u64.add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);\n const T1h = u64.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);\n const T1l = T1ll | 0;\n // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)\n const sigma0h = u64.rotrSH(Ah, Al, 28) ^ u64.rotrBH(Ah, Al, 34) ^ u64.rotrBH(Ah, Al, 39);\n const sigma0l = u64.rotrSL(Ah, Al, 28) ^ u64.rotrBL(Ah, Al, 34) ^ u64.rotrBL(Ah, Al, 39);\n const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);\n const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);\n Hh = Gh | 0;\n Hl = Gl | 0;\n Gh = Fh | 0;\n Gl = Fl | 0;\n Fh = Eh | 0;\n Fl = El | 0;\n ({ h: Eh, l: El } = u64.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));\n Dh = Ch | 0;\n Dl = Cl | 0;\n Ch = Bh | 0;\n Cl = Bl | 0;\n Bh = Ah | 0;\n Bl = Al | 0;\n const All = u64.add3L(T1l, sigma0l, MAJl);\n Ah = u64.add3H(All, T1h, sigma0h, MAJh);\n Al = All | 0;\n }\n // Add the compressed chunk to the current hash value\n ({ h: Ah, l: Al } = u64.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));\n ({ h: Bh, l: Bl } = u64.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));\n ({ h: Ch, l: Cl } = u64.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));\n ({ h: Dh, l: Dl } = u64.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));\n ({ h: Eh, l: El } = u64.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0));\n ({ h: Fh, l: Fl } = u64.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));\n ({ h: Gh, l: Gl } = u64.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));\n ({ h: Hh, l: Hl } = u64.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0));\n this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);\n }\n roundClean() {\n SHA512_W_H.fill(0);\n SHA512_W_L.fill(0);\n }\n destroy() {\n this.buffer.fill(0);\n this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n}\nclass SHA512_256 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x22312194 | 0;\n this.Al = 0xfc2bf72c | 0;\n this.Bh = 0x9f555fa3 | 0;\n this.Bl = 0xc84c64c2 | 0;\n this.Ch = 0x2393b86b | 0;\n this.Cl = 0x6f53b151 | 0;\n this.Dh = 0x96387719 | 0;\n this.Dl = 0x5940eabd | 0;\n this.Eh = 0x96283ee2 | 0;\n this.El = 0xa88effe3 | 0;\n this.Fh = 0xbe5e1e25 | 0;\n this.Fl = 0x53863992 | 0;\n this.Gh = 0x2b0199fc | 0;\n this.Gl = 0x2c85b8aa | 0;\n this.Hh = 0x0eb72ddc | 0;\n this.Hl = 0x81c52ca2 | 0;\n this.outputLen = 32;\n }\n}\nclass SHA384 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0xcbbb9d5d | 0;\n this.Al = 0xc1059ed8 | 0;\n this.Bh = 0x629a292a | 0;\n this.Bl = 0x367cd507 | 0;\n this.Ch = 0x9159015a | 0;\n this.Cl = 0x3070dd17 | 0;\n this.Dh = 0x152fecd8 | 0;\n this.Dl = 0xf70e5939 | 0;\n this.Eh = 0x67332667 | 0;\n this.El = 0xffc00b31 | 0;\n this.Fh = 0x8eb44a87 | 0;\n this.Fl = 0x68581511 | 0;\n this.Gh = 0xdb0c2e0d | 0;\n this.Gl = 0x64f98fa7 | 0;\n this.Hh = 0x47b5481d | 0;\n this.Hl = 0xbefa4fa4 | 0;\n this.outputLen = 48;\n }\n}\nexport const sha512 = wrapConstructor(() => new SHA512());\nexport const sha512_256 = wrapConstructor(() => new SHA512_256());\nexport const sha384 = wrapConstructor(() => new SHA384());\n","export const version = \"@ethersproject/crypto@6.0.0-beta.2\";\n//# sourceMappingURL=_version.js.map","import { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version.js\";\nexport const logger = new Logger(version);\n//# sourceMappingURL=logger.js.map","/* Browser Crypto Shims */\nimport { hmac } from \"@noble/hashes/hmac\";\nimport { pbkdf2 } from \"@noble/hashes/pbkdf2\";\nimport { sha256 } from \"@noble/hashes/sha256\";\nimport { sha512 } from \"@noble/hashes/sha512\";\nimport { logger } from \"./logger.js\";\nfunction getGlobal() {\n if (typeof self !== 'undefined') {\n return self;\n }\n if (typeof window !== 'undefined') {\n return window;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n throw new Error('unable to locate global object');\n}\n;\nconst anyGlobal = getGlobal();\nlet crypto = anyGlobal.crypto || anyGlobal.msCrypto;\nexport function createHash(algo) {\n switch (algo) {\n case \"sha256\": return sha256.create();\n case \"sha512\": return sha512.create();\n }\n return logger.throwArgumentError(\"invalid hashing algorithm name\", \"algorithm\", algo);\n}\nexport function createHmac(_algo, key) {\n const algo = ({ sha256, sha512 }[_algo]);\n if (algo == null) {\n return logger.throwArgumentError(\"invalid hmac algorithm\", \"algorithm\", _algo);\n }\n return hmac.create(algo, key);\n}\nexport function pbkdf2Sync(password, salt, iterations, keylen, _algo) {\n const algo = ({ sha256, sha512 }[_algo]);\n if (algo == null) {\n return logger.throwArgumentError(\"invalid pbkdf2 algorithm\", \"algorithm\", _algo);\n }\n return pbkdf2(algo, password, salt, { c: iterations, dkLen: keylen });\n}\nexport function randomBytes(length) {\n if (crypto == null) {\n return logger.throwError(\"platform does not support secure random numbers\", \"UNSUPPORTED_OPERATION\", {\n operation: \"randomBytes\"\n });\n }\n if (length <= 0 || length > 1024 || (length % 1) || length != length) {\n logger.throwArgumentError(\"invalid length\", \"length\", length);\n }\n const result = new Uint8Array(length);\n crypto.getRandomValues(result);\n return result;\n}\n//# sourceMappingURL=crypto-browser.js.map","import { createHmac } from \"crypto\"; /*-browser*/\nimport { hexlify } from \"@ethersproject/bytes\";\nimport { logger } from \"./logger.js\";\nlet locked = false;\nconst _computeHmac = function (algorithm, key, data) {\n return \"0x\" + createHmac(algorithm, key).update(data).digest(\"hex\");\n};\nlet __computeHmac = _computeHmac;\nexport function computeHmac(algorithm, _key, _data) {\n const key = logger.getBytes(_key, \"key\");\n const data = logger.getBytes(_data, \"data\");\n return hexlify(__computeHmac(algorithm, key, data));\n}\ncomputeHmac._ = _computeHmac;\ncomputeHmac.lock = function () { locked = true; };\ncomputeHmac.register = function (func) {\n if (locked) {\n throw new Error(\"computeHmac is locked\");\n }\n __computeHmac = func;\n};\nObject.freeze(computeHmac);\n//# sourceMappingURL=hmac.js.map","import * as u64 from './_u64.js';\nimport { Hash, u32, toBytes, wrapConstructor, wrapConstructorWithOpts, assertNumber, } from './utils.js';\n// Various per round constants calculations\nconst [SHA3_PI, SHA3_ROTL, _SHA3_IOTA] = [[], [], []];\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst _7n = BigInt(7);\nconst _256n = BigInt(256);\nconst _0x71n = BigInt(0x71);\nfor (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {\n // Pi\n [x, y] = [y, (2 * x + 3 * y) % 5];\n SHA3_PI.push(2 * (5 * y + x));\n // Rotational\n SHA3_ROTL.push((((round + 1) * (round + 2)) / 2) % 64);\n // Iota\n let t = _0n;\n for (let j = 0; j < 7; j++) {\n R = ((R << _1n) ^ ((R >> _7n) * _0x71n)) % _256n;\n if (R & _2n)\n t ^= _1n << ((_1n << BigInt(j)) - _1n);\n }\n _SHA3_IOTA.push(t);\n}\nconst [SHA3_IOTA_H, SHA3_IOTA_L] = u64.split(_SHA3_IOTA, true);\n// Left rotation (without 0, 32, 64)\nconst rotlH = (h, l, s) => s > 32 ? u64.rotlBH(h, l, s) : u64.rotlSH(h, l, s);\nconst rotlL = (h, l, s) => s > 32 ? u64.rotlBL(h, l, s) : u64.rotlSL(h, l, s);\n// Same as keccakf1600, but allows to skip some rounds\nexport function keccakP(s, rounds = 24) {\n const B = new Uint32Array(5 * 2);\n // NOTE: all indices are x2 since we store state as u32 instead of u64 (bigints to slow in js)\n for (let round = 24 - rounds; round < 24; round++) {\n // Theta θ\n for (let x = 0; x < 10; x++)\n B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40];\n for (let x = 0; x < 10; x += 2) {\n const idx1 = (x + 8) % 10;\n const idx0 = (x + 2) % 10;\n const B0 = B[idx0];\n const B1 = B[idx0 + 1];\n const Th = rotlH(B0, B1, 1) ^ B[idx1];\n const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];\n for (let y = 0; y < 50; y += 10) {\n s[x + y] ^= Th;\n s[x + y + 1] ^= Tl;\n }\n }\n // Rho (ρ) and Pi (π)\n let curH = s[2];\n let curL = s[3];\n for (let t = 0; t < 24; t++) {\n const shift = SHA3_ROTL[t];\n const Th = rotlH(curH, curL, shift);\n const Tl = rotlL(curH, curL, shift);\n const PI = SHA3_PI[t];\n curH = s[PI];\n curL = s[PI + 1];\n s[PI] = Th;\n s[PI + 1] = Tl;\n }\n // Chi (χ)\n for (let y = 0; y < 50; y += 10) {\n for (let x = 0; x < 10; x++)\n B[x] = s[y + x];\n for (let x = 0; x < 10; x++)\n s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10];\n }\n // Iota (ι)\n s[0] ^= SHA3_IOTA_H[round];\n s[1] ^= SHA3_IOTA_L[round];\n }\n B.fill(0);\n}\nexport class Keccak extends Hash {\n // NOTE: we accept arguments in bytes instead of bits here.\n constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) {\n super();\n this.blockLen = blockLen;\n this.suffix = suffix;\n this.outputLen = outputLen;\n this.enableXOF = enableXOF;\n this.rounds = rounds;\n this.pos = 0;\n this.posOut = 0;\n this.finished = false;\n this.destroyed = false;\n // Can be passed from user as dkLen\n assertNumber(outputLen);\n // 1600 = 5x5 matrix of 64bit. 1600 bits === 200 bytes\n if (0 >= this.blockLen || this.blockLen >= 200)\n throw new Error('Sha3 supports only keccak-f1600 function');\n this.state = new Uint8Array(200);\n this.state32 = u32(this.state);\n }\n keccak() {\n keccakP(this.state32, this.rounds);\n this.posOut = 0;\n this.pos = 0;\n }\n update(data) {\n if (this.destroyed)\n throw new Error('instance is destroyed');\n if (this.finished)\n throw new Error('digest() was already called');\n const { blockLen, state } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n for (let i = 0; i < take; i++)\n state[this.pos++] ^= data[pos++];\n if (this.pos === blockLen)\n this.keccak();\n }\n return this;\n }\n finish() {\n if (this.finished)\n return;\n this.finished = true;\n const { state, suffix, pos, blockLen } = this;\n // Do the padding\n state[pos] ^= suffix;\n if ((suffix & 0x80) !== 0 && pos === blockLen - 1)\n this.keccak();\n state[blockLen - 1] ^= 0x80;\n this.keccak();\n }\n writeInto(out) {\n if (this.destroyed)\n throw new Error('instance is destroyed');\n if (!(out instanceof Uint8Array))\n throw new Error('Keccak: invalid output buffer');\n this.finish();\n for (let pos = 0, len = out.length; pos < len;) {\n if (this.posOut >= this.blockLen)\n this.keccak();\n const take = Math.min(this.blockLen - this.posOut, len - pos);\n out.set(this.state.subarray(this.posOut, this.posOut + take), pos);\n this.posOut += take;\n pos += take;\n }\n return out;\n }\n xofInto(out) {\n // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF\n if (!this.enableXOF)\n throw new Error('XOF is not possible for this instance');\n return this.writeInto(out);\n }\n xof(bytes) {\n assertNumber(bytes);\n return this.xofInto(new Uint8Array(bytes));\n }\n digestInto(out) {\n if (out.length < this.outputLen)\n throw new Error('Keccak: invalid output buffer');\n if (this.finished)\n throw new Error('digest() was already called');\n this.finish();\n this.writeInto(out);\n this.destroy();\n return out;\n }\n digest() {\n return this.digestInto(new Uint8Array(this.outputLen));\n }\n destroy() {\n this.destroyed = true;\n this.state.fill(0);\n }\n _cloneInto(to) {\n const { blockLen, suffix, outputLen, rounds, enableXOF } = this;\n to || (to = new Keccak(blockLen, suffix, outputLen, enableXOF, rounds));\n to.state32.set(this.state32);\n to.pos = this.pos;\n to.posOut = this.posOut;\n to.finished = this.finished;\n to.rounds = rounds;\n // Suffix can change in cSHAKE\n to.suffix = suffix;\n to.outputLen = outputLen;\n to.enableXOF = enableXOF;\n to.destroyed = this.destroyed;\n return to;\n }\n}\nconst gen = (suffix, blockLen, outputLen) => wrapConstructor(() => new Keccak(blockLen, suffix, outputLen));\nexport const sha3_224 = gen(0x06, 144, 224 / 8);\n/**\n * SHA3-256 hash function\n * @param message - that would be hashed\n */\nexport const sha3_256 = gen(0x06, 136, 256 / 8);\nexport const sha3_384 = gen(0x06, 104, 384 / 8);\nexport const sha3_512 = gen(0x06, 72, 512 / 8);\nexport const keccak_224 = gen(0x01, 144, 224 / 8);\n/**\n * keccak-256 hash function. Different from SHA3-256.\n * @param message - that would be hashed\n */\nexport const keccak_256 = gen(0x01, 136, 256 / 8);\nexport const keccak_384 = gen(0x01, 104, 384 / 8);\nexport const keccak_512 = gen(0x01, 72, 512 / 8);\nconst genShake = (suffix, blockLen, outputLen) => wrapConstructorWithOpts((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen !== undefined ? opts.dkLen : outputLen, true));\nexport const shake128 = genShake(0x1f, 168, 128 / 8);\nexport const shake256 = genShake(0x1f, 136, 256 / 8);\n","import { keccak_256 } from \"@noble/hashes/sha3\";\nimport { hexlify } from \"@ethersproject/bytes\";\nimport { logger } from \"./logger.js\";\nlet locked = false;\nconst _keccak256 = function (data) {\n return keccak_256(data);\n};\nlet __keccak256 = _keccak256;\nexport function keccak256(_data) {\n const data = logger.getBytes(_data, \"data\");\n return hexlify(__keccak256(data));\n}\nkeccak256._ = _keccak256;\nkeccak256.lock = function () { locked = true; };\nkeccak256.register = function (func) {\n if (locked) {\n throw new TypeError(\"keccak256 is locked\");\n }\n __keccak256 = func;\n};\nObject.freeze(keccak256);\n//# sourceMappingURL=keccak.js.map","import { SHA2 } from './_sha2.js';\nimport { wrapConstructor } from './utils.js';\n// https://homes.esat.kuleuven.be/~bosselae/ripemd160.html\n// https://homes.esat.kuleuven.be/~bosselae/ripemd160/pdf/AB-9601/AB-9601.pdf\nconst Rho = new Uint8Array([7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8]);\nconst Id = Uint8Array.from({ length: 16 }, (_, i) => i);\nconst Pi = Id.map((i) => (9 * i + 5) % 16);\nlet idxL = [Id];\nlet idxR = [Pi];\nfor (let i = 0; i < 4; i++)\n for (let j of [idxL, idxR])\n j.push(j[i].map((k) => Rho[k]));\nconst shifts = [\n [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8],\n [12, 13, 11, 15, 6, 9, 9, 7, 12, 15, 11, 13, 7, 8, 7, 7],\n [13, 15, 14, 11, 7, 7, 6, 8, 13, 14, 13, 12, 5, 5, 6, 9],\n [14, 11, 12, 14, 8, 6, 5, 5, 15, 12, 15, 14, 9, 9, 8, 6],\n [15, 12, 13, 13, 9, 5, 8, 6, 14, 11, 12, 11, 8, 6, 5, 5],\n].map((i) => new Uint8Array(i));\nconst shiftsL = idxL.map((idx, i) => idx.map((j) => shifts[i][j]));\nconst shiftsR = idxR.map((idx, i) => idx.map((j) => shifts[i][j]));\nconst Kl = new Uint32Array([0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]);\nconst Kr = new Uint32Array([0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]);\n// The rotate left (circular left shift) operation for uint32\nconst rotl = (word, shift) => (word << shift) | (word >>> (32 - shift));\n// It's called f() in spec.\nfunction f(group, x, y, z) {\n if (group === 0)\n return x ^ y ^ z;\n else if (group === 1)\n return (x & y) | (~x & z);\n else if (group === 2)\n return (x | ~y) ^ z;\n else if (group === 3)\n return (x & z) | (y & ~z);\n else\n return x ^ (y | ~z);\n}\n// Temporary buffer, not used to store anything between runs\nconst BUF = new Uint32Array(16);\nexport class RIPEMD160 extends SHA2 {\n constructor() {\n super(64, 20, 8, true);\n this.h0 = 0x67452301 | 0;\n this.h1 = 0xefcdab89 | 0;\n this.h2 = 0x98badcfe | 0;\n this.h3 = 0x10325476 | 0;\n this.h4 = 0xc3d2e1f0 | 0;\n }\n get() {\n const { h0, h1, h2, h3, h4 } = this;\n return [h0, h1, h2, h3, h4];\n }\n set(h0, h1, h2, h3, h4) {\n this.h0 = h0 | 0;\n this.h1 = h1 | 0;\n this.h2 = h2 | 0;\n this.h3 = h3 | 0;\n this.h4 = h4 | 0;\n }\n process(view, offset) {\n for (let i = 0; i < 16; i++, offset += 4)\n BUF[i] = view.getUint32(offset, true);\n // prettier-ignore\n let al = this.h0 | 0, ar = al, bl = this.h1 | 0, br = bl, cl = this.h2 | 0, cr = cl, dl = this.h3 | 0, dr = dl, el = this.h4 | 0, er = el;\n // Instead of iterating 0 to 80, we split it into 5 groups\n // And use the groups in constants, functions, etc. Much simpler\n for (let group = 0; group < 5; group++) {\n const rGroup = 4 - group;\n const hbl = Kl[group], hbr = Kr[group]; // prettier-ignore\n const rl = idxL[group], rr = idxR[group]; // prettier-ignore\n const sl = shiftsL[group], sr = shiftsR[group]; // prettier-ignore\n for (let i = 0; i < 16; i++) {\n const tl = (rotl(al + f(group, bl, cl, dl) + BUF[rl[i]] + hbl, sl[i]) + el) | 0;\n al = el, el = dl, dl = rotl(cl, 10) | 0, cl = bl, bl = tl; // prettier-ignore\n }\n // 2 loops are 10% faster\n for (let i = 0; i < 16; i++) {\n const tr = (rotl(ar + f(rGroup, br, cr, dr) + BUF[rr[i]] + hbr, sr[i]) + er) | 0;\n ar = er, er = dr, dr = rotl(cr, 10) | 0, cr = br, br = tr; // prettier-ignore\n }\n }\n // Add the compressed chunk to the current hash value\n this.set((this.h1 + cl + dr) | 0, (this.h2 + dl + er) | 0, (this.h3 + el + ar) | 0, (this.h4 + al + br) | 0, (this.h0 + bl + cr) | 0);\n }\n roundClean() {\n BUF.fill(0);\n }\n destroy() {\n this.destroyed = true;\n this.buffer.fill(0);\n this.set(0, 0, 0, 0, 0);\n }\n}\n/**\n * RIPEMD-160 - a hash function from 1990s.\n * @param message - msg that would be hashed\n */\nexport const ripemd160 = wrapConstructor(() => new RIPEMD160());\n","import { ripemd160 as noble_ripemd160 } from \"@noble/hashes/ripemd160\";\nimport { hexlify } from \"@ethersproject/bytes\";\nimport { logger } from \"./logger.js\";\nlet locked = false;\nconst _ripemd160 = function (data) {\n return noble_ripemd160(data);\n};\nlet __ripemd160 = _ripemd160;\nexport function ripemd160(_data) {\n const data = logger.getBytes(_data, \"data\");\n return hexlify(__ripemd160(data));\n}\nripemd160._ = _ripemd160;\nripemd160.lock = function () { locked = true; };\nripemd160.register = function (func) {\n if (locked) {\n throw new TypeError(\"ripemd160 is locked\");\n }\n __ripemd160 = func;\n};\nObject.freeze(ripemd160);\n//# sourceMappingURL=ripemd160.js.map","import { pbkdf2Sync } from \"crypto\"; /*-browser*/\nimport { hexlify } from \"@ethersproject/bytes\";\nimport { logger } from \"./logger.js\";\nlet locked = false;\nconst _pbkdf2 = function (password, salt, iterations, keylen, algo) {\n return pbkdf2Sync(password, salt, iterations, keylen, algo);\n};\nlet __pbkdf2 = _pbkdf2;\nexport function pbkdf2(_password, _salt, iterations, keylen, algo) {\n const password = logger.getBytes(_password, \"password\");\n const salt = logger.getBytes(_salt, \"salt\");\n return hexlify(__pbkdf2(password, salt, iterations, keylen, algo));\n}\npbkdf2._ = _pbkdf2;\npbkdf2.lock = function () { locked = true; };\npbkdf2.register = function (func) {\n if (locked) {\n throw new Error(\"pbkdf2 is locked\");\n }\n __pbkdf2 = func;\n};\nObject.freeze(pbkdf2);\n//# sourceMappingURL=pbkdf2.js.map","import { randomBytes as crypto_random } from \"crypto\"; /*-browser*/\nlet locked = false;\nconst _randomBytes = function (length) {\n return new Uint8Array(crypto_random(length));\n};\nlet __randomBytes = _randomBytes;\nexport function randomBytes(length) {\n return __randomBytes(length);\n}\nrandomBytes._ = _randomBytes;\nrandomBytes.lock = function () { locked = true; };\nrandomBytes.register = function (func) {\n if (locked) {\n throw new Error(\"random is locked\");\n }\n __randomBytes = func;\n};\nObject.freeze(randomBytes);\n//# sourceMappingURL=random.js.map","import { sha256 } from './sha256.js';\nimport { pbkdf2 } from './pbkdf2.js';\nimport { assertNumber, asyncLoop, checkOpts, u32 } from './utils.js';\n// RFC 7914 Scrypt KDF\n// Left rotate for uint32\nconst rotl = (a, b) => (a << b) | (a >>> (32 - b));\n// The main Scrypt loop: uses Salsa extensively.\n// Six versions of the function were tried, this is the fastest one.\n// prettier-ignore\nfunction XorAndSalsa(prev, pi, input, ii, out, oi) {\n // Based on https://cr.yp.to/salsa20.html\n // Xor blocks\n let y00 = prev[pi++] ^ input[ii++], y01 = prev[pi++] ^ input[ii++];\n let y02 = prev[pi++] ^ input[ii++], y03 = prev[pi++] ^ input[ii++];\n let y04 = prev[pi++] ^ input[ii++], y05 = prev[pi++] ^ input[ii++];\n let y06 = prev[pi++] ^ input[ii++], y07 = prev[pi++] ^ input[ii++];\n let y08 = prev[pi++] ^ input[ii++], y09 = prev[pi++] ^ input[ii++];\n let y10 = prev[pi++] ^ input[ii++], y11 = prev[pi++] ^ input[ii++];\n let y12 = prev[pi++] ^ input[ii++], y13 = prev[pi++] ^ input[ii++];\n let y14 = prev[pi++] ^ input[ii++], y15 = prev[pi++] ^ input[ii++];\n // Save state to temporary variables (salsa)\n let x00 = y00, x01 = y01, x02 = y02, x03 = y03, x04 = y04, x05 = y05, x06 = y06, x07 = y07, x08 = y08, x09 = y09, x10 = y10, x11 = y11, x12 = y12, x13 = y13, x14 = y14, x15 = y15;\n // Main loop (salsa)\n for (let i = 0; i < 8; i += 2) {\n x04 ^= rotl(x00 + x12 | 0, 7);\n x08 ^= rotl(x04 + x00 | 0, 9);\n x12 ^= rotl(x08 + x04 | 0, 13);\n x00 ^= rotl(x12 + x08 | 0, 18);\n x09 ^= rotl(x05 + x01 | 0, 7);\n x13 ^= rotl(x09 + x05 | 0, 9);\n x01 ^= rotl(x13 + x09 | 0, 13);\n x05 ^= rotl(x01 + x13 | 0, 18);\n x14 ^= rotl(x10 + x06 | 0, 7);\n x02 ^= rotl(x14 + x10 | 0, 9);\n x06 ^= rotl(x02 + x14 | 0, 13);\n x10 ^= rotl(x06 + x02 | 0, 18);\n x03 ^= rotl(x15 + x11 | 0, 7);\n x07 ^= rotl(x03 + x15 | 0, 9);\n x11 ^= rotl(x07 + x03 | 0, 13);\n x15 ^= rotl(x11 + x07 | 0, 18);\n x01 ^= rotl(x00 + x03 | 0, 7);\n x02 ^= rotl(x01 + x00 | 0, 9);\n x03 ^= rotl(x02 + x01 | 0, 13);\n x00 ^= rotl(x03 + x02 | 0, 18);\n x06 ^= rotl(x05 + x04 | 0, 7);\n x07 ^= rotl(x06 + x05 | 0, 9);\n x04 ^= rotl(x07 + x06 | 0, 13);\n x05 ^= rotl(x04 + x07 | 0, 18);\n x11 ^= rotl(x10 + x09 | 0, 7);\n x08 ^= rotl(x11 + x10 | 0, 9);\n x09 ^= rotl(x08 + x11 | 0, 13);\n x10 ^= rotl(x09 + x08 | 0, 18);\n x12 ^= rotl(x15 + x14 | 0, 7);\n x13 ^= rotl(x12 + x15 | 0, 9);\n x14 ^= rotl(x13 + x12 | 0, 13);\n x15 ^= rotl(x14 + x13 | 0, 18);\n }\n // Write output (salsa)\n out[oi++] = (y00 + x00) | 0;\n out[oi++] = (y01 + x01) | 0;\n out[oi++] = (y02 + x02) | 0;\n out[oi++] = (y03 + x03) | 0;\n out[oi++] = (y04 + x04) | 0;\n out[oi++] = (y05 + x05) | 0;\n out[oi++] = (y06 + x06) | 0;\n out[oi++] = (y07 + x07) | 0;\n out[oi++] = (y08 + x08) | 0;\n out[oi++] = (y09 + x09) | 0;\n out[oi++] = (y10 + x10) | 0;\n out[oi++] = (y11 + x11) | 0;\n out[oi++] = (y12 + x12) | 0;\n out[oi++] = (y13 + x13) | 0;\n out[oi++] = (y14 + x14) | 0;\n out[oi++] = (y15 + x15) | 0;\n}\nfunction BlockMix(input, ii, out, oi, r) {\n // The block B is r 128-byte chunks (which is equivalent of 2r 64-byte chunks)\n let head = oi + 0;\n let tail = oi + 16 * r;\n for (let i = 0; i < 16; i++)\n out[tail + i] = input[ii + (2 * r - 1) * 16 + i]; // X ← B[2r−1]\n for (let i = 0; i < r; i++, head += 16, ii += 16) {\n // We write odd & even Yi at same time. Even: 0bXXXXX0 Odd: 0bXXXXX1\n XorAndSalsa(out, tail, input, ii, out, head); // head[i] = Salsa(blockIn[2*i] ^ tail[i-1])\n if (i > 0)\n tail += 16; // First iteration overwrites tmp value in tail\n XorAndSalsa(out, head, input, (ii += 16), out, tail); // tail[i] = Salsa(blockIn[2*i+1] ^ head[i])\n }\n}\n// Common prologue and epilogue for sync/async functions\nfunction scryptInit(password, salt, _opts) {\n // Maxmem - 1GB+1KB by default\n const opts = checkOpts({\n dkLen: 32,\n asyncTick: 10,\n maxmem: 1024 ** 3 + 1024,\n }, _opts);\n const { N, r, p, dkLen, asyncTick, maxmem, onProgress } = opts;\n assertNumber(N);\n assertNumber(r);\n assertNumber(p);\n assertNumber(dkLen);\n assertNumber(asyncTick);\n assertNumber(maxmem);\n if (onProgress !== undefined && typeof onProgress !== 'function')\n throw new Error('progressCb should be function');\n const blockSize = 128 * r;\n const blockSize32 = blockSize / 4;\n if (N <= 1 || (N & (N - 1)) !== 0 || N >= 2 ** (blockSize / 8) || N > 2 ** 32) {\n // NOTE: we limit N to be less than 2**32 because of 32 bit variant of Integrify function\n // There is no JS engines that allows alocate more than 4GB per single Uint8Array for now, but can change in future.\n throw new Error('Scrypt: N must be larger than 1, a power of 2, less than 2^(128 * r / 8) and less than 2^32');\n }\n if (p < 0 || p > ((2 ** 32 - 1) * 32) / blockSize) {\n throw new Error('Scrypt: p must be a positive integer less than or equal to ((2^32 - 1) * 32) / (128 * r)');\n }\n if (dkLen < 0 || dkLen > (2 ** 32 - 1) * 32) {\n throw new Error('Scrypt: dkLen should be positive integer less than or equal to (2^32 - 1) * 32');\n }\n const memUsed = blockSize * (N + p);\n if (memUsed > maxmem) {\n throw new Error(`Scrypt: parameters too large, ${memUsed} (128 * r * (N + p)) > ${maxmem} (maxmem)`);\n }\n // [B0...Bp−1] ← PBKDF2HMAC-SHA256(Passphrase, Salt, 1, blockSize*ParallelizationFactor)\n // Since it has only one iteration there is no reason to use async variant\n const B = pbkdf2(sha256, password, salt, { c: 1, dkLen: blockSize * p });\n const B32 = u32(B);\n // Re-used between parallel iterations. Array(iterations) of B\n const V = u32(new Uint8Array(blockSize * N));\n const tmp = u32(new Uint8Array(blockSize));\n let blockMixCb = () => { };\n if (onProgress) {\n const totalBlockMix = 2 * N * p;\n // Invoke callback if progress changes from 10.01 to 10.02\n // Allows to draw smooth progress bar on up to 8K screen\n const callbackPer = Math.max(Math.floor(totalBlockMix / 10000), 1);\n let blockMixCnt = 0;\n blockMixCb = () => {\n blockMixCnt++;\n if (onProgress && (!(blockMixCnt % callbackPer) || blockMixCnt === totalBlockMix))\n onProgress(blockMixCnt / totalBlockMix);\n };\n }\n return { N, r, p, dkLen, blockSize32, V, B32, B, tmp, blockMixCb, asyncTick };\n}\nfunction scryptOutput(password, dkLen, B, V, tmp) {\n const res = pbkdf2(sha256, password, B, { c: 1, dkLen });\n B.fill(0);\n V.fill(0);\n tmp.fill(0);\n return res;\n}\n/**\n * Scrypt KDF from RFC 7914.\n * @param password - pass\n * @param salt - salt\n * @param opts - parameters\n * - `N` is cpu/mem work factor (power of 2 e.g. 2**18)\n * - `r` is block size (8 is common), fine-tunes sequential memory read size and performance\n * - `p` is parallelization factor (1 is common)\n * - `dkLen` is output key length in bytes e.g. 32.\n * - `asyncTick` - (default: 10) max time in ms for which async function can block execution\n * - `maxmem` - (default: `1024 ** 3 + 1024` aka 1GB+1KB). A limit that the app could use for scrypt\n * - `onProgress` - callback function that would be executed for progress report\n * @returns Derived key\n */\nexport function scrypt(password, salt, opts) {\n const { N, r, p, dkLen, blockSize32, V, B32, B, tmp, blockMixCb } = scryptInit(password, salt, opts);\n for (let pi = 0; pi < p; pi++) {\n const Pi = blockSize32 * pi;\n for (let i = 0; i < blockSize32; i++)\n V[i] = B32[Pi + i]; // V[0] = B[i]\n for (let i = 0, pos = 0; i < N - 1; i++) {\n BlockMix(V, pos, V, (pos += blockSize32), r); // V[i] = BlockMix(V[i-1]);\n blockMixCb();\n }\n BlockMix(V, (N - 1) * blockSize32, B32, Pi, r); // Process last element\n blockMixCb();\n for (let i = 0; i < N; i++) {\n // First u32 of the last 64-byte block (u32 is LE)\n const j = B32[Pi + blockSize32 - 16] % N; // j = Integrify(X) % iterations\n for (let k = 0; k < blockSize32; k++)\n tmp[k] = B32[Pi + k] ^ V[j * blockSize32 + k]; // tmp = B ^ V[j]\n BlockMix(tmp, 0, B32, Pi, r); // B = BlockMix(B ^ V[j])\n blockMixCb();\n }\n }\n return scryptOutput(password, dkLen, B, V, tmp);\n}\n/**\n * Scrypt KDF from RFC 7914.\n */\nexport async function scryptAsync(password, salt, opts) {\n const { N, r, p, dkLen, blockSize32, V, B32, B, tmp, blockMixCb, asyncTick } = scryptInit(password, salt, opts);\n for (let pi = 0; pi < p; pi++) {\n const Pi = blockSize32 * pi;\n for (let i = 0; i < blockSize32; i++)\n V[i] = B32[Pi + i]; // V[0] = B[i]\n let pos = 0;\n await asyncLoop(N - 1, asyncTick, (i) => {\n BlockMix(V, pos, V, (pos += blockSize32), r); // V[i] = BlockMix(V[i-1]);\n blockMixCb();\n });\n BlockMix(V, (N - 1) * blockSize32, B32, Pi, r); // Process last element\n blockMixCb();\n await asyncLoop(N, asyncTick, (i) => {\n // First u32 of the last 64-byte block (u32 is LE)\n const j = B32[Pi + blockSize32 - 16] % N; // j = Integrify(X) % iterations\n for (let k = 0; k < blockSize32; k++)\n tmp[k] = B32[Pi + k] ^ V[j * blockSize32 + k]; // tmp = B ^ V[j]\n BlockMix(tmp, 0, B32, Pi, r); // B = BlockMix(B ^ V[j])\n blockMixCb();\n });\n }\n return scryptOutput(password, dkLen, B, V, tmp);\n}\n","import { scrypt as _nobleSync, scryptAsync as _nobleAsync } from \"@noble/hashes/scrypt\";\nimport { hexlify as H } from \"@ethersproject/bytes\";\nimport { logger } from \"./logger.js\";\nlet lockedSync = false, lockedAsync = false;\nconst _scryptAsync = async function (passwd, salt, N, r, p, dkLen, onProgress) {\n return await _nobleAsync(passwd, salt, { N, r, p, dkLen, onProgress });\n};\nconst _scryptSync = function (passwd, salt, N, r, p, dkLen) {\n return _nobleSync(passwd, salt, { N, r, p, dkLen });\n};\nlet __scryptAsync = _scryptAsync;\nlet __scryptSync = _scryptSync;\nexport async function scrypt(_passwd, _salt, N, r, p, dkLen, progress) {\n const passwd = logger.getBytes(_passwd, \"passwd\");\n const salt = logger.getBytes(_salt, \"salt\");\n return H(await __scryptAsync(passwd, salt, N, r, p, dkLen, progress));\n}\nscrypt._ = _scryptAsync;\nscrypt.lock = function () { lockedAsync = true; };\nscrypt.register = function (func) {\n if (lockedAsync) {\n throw new Error(\"scrypt is locked\");\n }\n __scryptAsync = func;\n};\nObject.freeze(scrypt);\nexport function scryptSync(_passwd, _salt, N, r, p, dkLen) {\n const passwd = logger.getBytes(_passwd, \"passwd\");\n const salt = logger.getBytes(_salt, \"salt\");\n return H(__scryptSync(passwd, salt, N, r, p, dkLen));\n}\nscryptSync._ = _scryptSync;\nscryptSync.lock = function () { lockedSync = true; };\nscryptSync.register = function (func) {\n if (lockedSync) {\n throw new Error(\"scryptSync is locked\");\n }\n __scryptSync = func;\n};\nObject.freeze(scryptSync);\n//# sourceMappingURL=scrypt.js.map","import { createHash } from \"crypto\"; /*-browser*/\nimport { hexlify } from \"@ethersproject/bytes\";\nimport { logger } from \"./logger.js\";\nconst _sha256 = function (data) {\n return createHash(\"sha256\").update(data).digest();\n};\nconst _sha512 = function (data) {\n return createHash(\"sha512\").update(data).digest();\n};\nlet __sha256 = _sha256;\nlet __sha512 = _sha512;\nlet locked256 = false, locked512 = false;\nexport function sha256(_data) {\n const data = logger.getBytes(_data, \"data\");\n return hexlify(__sha256(data));\n}\nsha256._ = _sha256;\nsha256.lock = function () { locked256 = true; };\nsha256.register = function (func) {\n if (locked256) {\n throw new Error(\"sha256 is locked\");\n }\n __sha256 = func;\n};\nObject.freeze(sha256);\nexport function sha512(_data) {\n const data = logger.getBytes(_data, \"data\");\n return hexlify(__sha512(data));\n}\nsha512._ = _sha512;\nsha512.lock = function () { locked512 = true; };\nsha512.register = function (func) {\n if (locked512) {\n throw new Error(\"sha512 is locked\");\n }\n __sha512 = func;\n};\nObject.freeze(sha256);\n//# sourceMappingURL=sha2.js.map","// We import all these so we can export lock()\nimport { computeHmac } from \"./hmac.js\";\nimport { keccak256 } from \"./keccak.js\";\nimport { ripemd160 } from \"./ripemd160.js\";\nimport { pbkdf2 } from \"./pbkdf2.js\";\nimport { randomBytes } from \"./random.js\";\nimport { scrypt, scryptSync } from \"./scrypt.js\";\nimport { sha256, sha512 } from \"./sha2.js\";\nexport { computeHmac, randomBytes, keccak256, ripemd160, sha256, sha512, pbkdf2, scrypt, scryptSync };\nexport function lock() {\n computeHmac.lock();\n keccak256.lock();\n pbkdf2.lock();\n randomBytes.lock();\n ripemd160.lock();\n scrypt.lock();\n scryptSync.lock();\n sha256.lock();\n sha512.lock();\n}\n//# sourceMappingURL=index.js.map","export const version = \"@ethersproject/address@6.0.0-beta.2\";\n//# sourceMappingURL=_version.js.map","import { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version.js\";\nexport const logger = new Logger(version);\n//# sourceMappingURL=logger.js.map","import { arrayify } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/crypto\";\nimport { logger } from \"./logger.js\";\nconst BN_0 = BigInt(0);\nconst BN_36 = BigInt(36);\nfunction getChecksumAddress(address) {\n // if (!isHexString(address, 20)) {\n // logger.throwArgumentError(\"invalid address\", \"address\", address);\n // }\n address = address.toLowerCase();\n const chars = address.substring(2).split(\"\");\n const expanded = new Uint8Array(40);\n for (let i = 0; i < 40; i++) {\n expanded[i] = chars[i].charCodeAt(0);\n }\n const hashed = arrayify(keccak256(expanded));\n for (let i = 0; i < 40; i += 2) {\n if ((hashed[i >> 1] >> 4) >= 8) {\n chars[i] = chars[i].toUpperCase();\n }\n if ((hashed[i >> 1] & 0x0f) >= 8) {\n chars[i + 1] = chars[i + 1].toUpperCase();\n }\n }\n return \"0x\" + chars.join(\"\");\n}\n// See: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n// Create lookup table\nconst ibanLookup = {};\nfor (let i = 0; i < 10; i++) {\n ibanLookup[String(i)] = String(i);\n}\nfor (let i = 0; i < 26; i++) {\n ibanLookup[String.fromCharCode(65 + i)] = String(10 + i);\n}\n// How many decimal digits can we process? (for 64-bit float, this is 15)\n// i.e. Math.floor(Math.log10(Number.MAX_SAFE_INTEGER));\nconst safeDigits = 15;\nfunction ibanChecksum(address) {\n address = address.toUpperCase();\n address = address.substring(4) + address.substring(0, 2) + \"00\";\n let expanded = address.split(\"\").map((c) => { return ibanLookup[c]; }).join(\"\");\n // Javascript can handle integers safely up to 15 (decimal) digits\n while (expanded.length >= safeDigits) {\n let block = expanded.substring(0, safeDigits);\n expanded = parseInt(block, 10) % 97 + expanded.substring(block.length);\n }\n let checksum = String(98 - (parseInt(expanded, 10) % 97));\n while (checksum.length < 2) {\n checksum = \"0\" + checksum;\n }\n return checksum;\n}\n;\nconst Base36 = (function () {\n ;\n const result = {};\n for (let i = 0; i < 36; i++) {\n const key = \"0123456789abcdefghijklmnopqrstuvwxyz\"[i];\n result[key] = BigInt(i);\n }\n return result;\n})();\nfunction fromBase36(value) {\n value = value.toLowerCase();\n let result = BN_0;\n for (let i = 0; i < value.length; i++) {\n result = result * BN_36 + Base36[value[i]];\n }\n return result;\n}\nexport function getAddress(address) {\n if (typeof (address) !== \"string\") {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n if (address.match(/^(0x)?[0-9a-fA-F]{40}$/)) {\n // Missing the 0x prefix\n if (address.substring(0, 2) !== \"0x\") {\n address = \"0x\" + address;\n }\n const result = getChecksumAddress(address);\n // It is a checksummed address with a bad checksum\n if (address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) && result !== address) {\n logger.throwArgumentError(\"bad address checksum\", \"address\", address);\n }\n return result;\n }\n // Maybe ICAP? (we only support direct mode)\n if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) {\n // It is an ICAP address with a bad checksum\n if (address.substring(2, 4) !== ibanChecksum(address)) {\n logger.throwArgumentError(\"bad icap checksum\", \"address\", address);\n }\n let result = fromBase36(address.substring(4)).toString(16);\n while (result.length < 40) {\n result = \"0\" + result;\n }\n return getChecksumAddress(\"0x\" + result);\n }\n return logger.throwArgumentError(\"invalid address\", \"address\", address);\n}\nexport function getIcapAddress(address) {\n //let base36 = _base16To36(getAddress(address).substring(2)).toUpperCase();\n let base36 = BigInt(getAddress(address)).toString(36).toUpperCase();\n while (base36.length < 30) {\n base36 = \"0\" + base36;\n }\n return \"XE\" + ibanChecksum(\"XE00\" + base36) + base36;\n}\n//# sourceMappingURL=address.js.map","export const version = \"@ethersproject/rlp@6.0.0-beta.2\";\n//# sourceMappingURL=_version.js.map","import { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version.js\";\nexport const logger = new Logger(version);\n//# sourceMappingURL=logger.js.map","//See: https://github.com/ethereum/wiki/wiki/RLP\nimport { logger } from \"./logger.js\";\nfunction arrayifyInteger(value) {\n const result = [];\n while (value) {\n result.unshift(value & 0xff);\n value >>= 8;\n }\n return result;\n}\nfunction _encode(object) {\n if (Array.isArray(object)) {\n let payload = [];\n object.forEach(function (child) {\n payload = payload.concat(_encode(child));\n });\n if (payload.length <= 55) {\n payload.unshift(0xc0 + payload.length);\n return payload;\n }\n const length = arrayifyInteger(payload.length);\n length.unshift(0xf7 + length.length);\n return length.concat(payload);\n }\n const data = Array.prototype.slice.call(logger.getBytes(object, \"object\"));\n if (data.length === 1 && data[0] <= 0x7f) {\n return data;\n }\n else if (data.length <= 55) {\n data.unshift(0x80 + data.length);\n return data;\n }\n const length = arrayifyInteger(data.length);\n length.unshift(0xb7 + length.length);\n return length.concat(data);\n}\nconst nibbles = \"0123456789abcdef\";\nexport function encodeRlp(object) {\n let result = \"0x\";\n for (const v of _encode(object)) {\n result += nibbles[v >> 4];\n result += nibbles[v & 0xf];\n }\n return result;\n}\n//# sourceMappingURL=encode.js.map","//See: https://github.com/ethereum/wiki/wiki/RLP\nimport { hexlify } from \"@ethersproject/bytes\";\nimport { logger } from \"./logger.js\";\nfunction hexlifyByte(value) {\n let result = value.toString(16);\n while (result.length < 2) {\n result = \"0\" + result;\n }\n return \"0x\" + result;\n}\nfunction unarrayifyInteger(data, offset, length) {\n let result = 0;\n for (let i = 0; i < length; i++) {\n result = (result * 256) + data[offset + i];\n }\n return result;\n}\nfunction _decodeChildren(data, offset, childOffset, length) {\n const result = [];\n while (childOffset < offset + 1 + length) {\n const decoded = _decode(data, childOffset);\n result.push(decoded.result);\n childOffset += decoded.consumed;\n if (childOffset > offset + 1 + length) {\n logger.throwError(\"child data too short\", \"BUFFER_OVERRUN\", {\n buffer: data, length, offset\n });\n }\n }\n return { consumed: (1 + length), result: result };\n}\n// returns { consumed: number, result: Object }\nfunction _decode(data, offset) {\n if (data.length === 0) {\n logger.throwError(\"data too short\", \"BUFFER_OVERRUN\", {\n buffer: data, length: 0, offset: 1\n });\n }\n const checkOffset = (offset) => {\n if (offset > data.length) {\n logger.throwError(\"data short segment too short\", \"BUFFER_OVERRUN\", {\n buffer: data, length: data.length, offset\n });\n }\n };\n // Array with extra length prefix\n if (data[offset] >= 0xf8) {\n const lengthLength = data[offset] - 0xf7;\n checkOffset(offset + 1 + lengthLength);\n const length = unarrayifyInteger(data, offset + 1, lengthLength);\n checkOffset(offset + 1 + lengthLength + length);\n return _decodeChildren(data, offset, offset + 1 + lengthLength, lengthLength + length);\n }\n else if (data[offset] >= 0xc0) {\n const length = data[offset] - 0xc0;\n checkOffset(offset + 1 + length);\n return _decodeChildren(data, offset, offset + 1, length);\n }\n else if (data[offset] >= 0xb8) {\n const lengthLength = data[offset] - 0xb7;\n checkOffset(offset + 1 + lengthLength);\n const length = unarrayifyInteger(data, offset + 1, lengthLength);\n checkOffset(offset + 1 + lengthLength + length);\n const result = hexlify(data.slice(offset + 1 + lengthLength, offset + 1 + lengthLength + length));\n return { consumed: (1 + lengthLength + length), result: result };\n }\n else if (data[offset] >= 0x80) {\n const length = data[offset] - 0x80;\n checkOffset(offset + 1 + length);\n const result = hexlify(data.slice(offset + 1, offset + 1 + length));\n return { consumed: (1 + length), result: result };\n }\n return { consumed: 1, result: hexlifyByte(data[offset]) };\n}\nexport function decodeRlp(_data) {\n const data = logger.getBytes(_data, \"data\");\n const decoded = _decode(data, 0);\n if (decoded.consumed !== data.length) {\n logger.throwArgumentError(\"unexpected junk after rlp payload\", \"data\", _data);\n }\n return decoded.result;\n}\n//# sourceMappingURL=decode.js.map","import { concat, dataSlice } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/crypto\";\nimport { encodeRlp } from \"@ethersproject/rlp\";\nimport { getAddress } from \"./address.js\";\nimport { logger } from \"./logger.js\";\n// http://ethereum.stackexchange.com/questions/760/how-is-the-address-of-an-ethereum-contract-computed\nexport function getCreateAddress(tx) {\n const from = getAddress(tx.from);\n const nonce = logger.getBigInt(tx.nonce, \"tx.nonce\");\n let nonceHex = nonce.toString(16);\n if (nonceHex === \"0\") {\n nonceHex = \"0x\";\n }\n else if (nonceHex.length % 2) {\n nonceHex = \"0x0\" + nonceHex;\n }\n else {\n nonceHex = \"0x\" + nonceHex;\n }\n return getAddress(dataSlice(keccak256(encodeRlp([from, nonceHex])), 12));\n}\nexport function getCreate2Address(_from, _salt, _initCodeHash) {\n const from = getAddress(_from);\n const salt = logger.getBytes(_salt, \"salt\");\n const initCodeHash = logger.getBytes(_initCodeHash, \"initCodeHash\");\n if (salt.length !== 32) {\n logger.throwArgumentError(\"salt must be 32 bytes\", \"salt\", _salt);\n }\n if (initCodeHash.length !== 32) {\n logger.throwArgumentError(\"initCodeHash must be 32 bytes\", \"initCodeHash\", _initCodeHash);\n }\n return getAddress(dataSlice(keccak256(concat([\"0xff\", from, salt, initCodeHash])), 12));\n}\n//# sourceMappingURL=contract-address.js.map","import { getAddress } from \"./address.js\";\nimport { logger } from \"./logger.js\";\nexport function isAddressable(value) {\n return (value && typeof (value.getAddress) === \"function\");\n}\nexport function isAddress(value) {\n try {\n getAddress(value);\n return true;\n }\n catch (error) { }\n return false;\n}\n// Resolves an Ethereum address, ENS name or Addressable object,\n// throwing if the result is null; an explicit null returns null\n//export async function resolveAddress(target?: null, resolver?: null | NameResolver): Promise<null>;\n//export async function resolveAddress(target: string | Addressable, resolver?: null | NameResolver): Promise<string>;\n//export async function resolveAddress(target: null | undefined | string | Addressable, resolver?: null | NameResolver) {\nexport async function resolveAddress(target, resolver) {\n //if (target == null) { return null; }\n if (typeof (target) === \"string\") {\n if (target.match(/^0x[0-9a-f]{40}$/i)) {\n return getAddress(target);\n }\n if (resolver == null) {\n return logger.throwError(\"ENS resolution requires a provider\", \"UNSUPPORTED_OPERATION\", {\n operation: \"resolveName\",\n });\n }\n const result = await resolver.resolveName(target);\n if (result == null || result === \"0x0000000000000000000000000000000000000000\") {\n return logger.throwError(\"unconfigured name\", \"UNCONFIGURED_NAME\", { value: target });\n }\n return getAddress(result);\n }\n else if (isAddressable(target)) {\n const result = await target.getAddress();\n if (result == null) {\n logger.throwArgumentError(\"addressable resolved to null\", \"target\", target);\n }\n return getAddress(result);\n }\n return logger.throwArgumentError(\"unsupported addressable value\", \"target\", target);\n}\n//# sourceMappingURL=checks.js.map","var __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 _Typed_options;\nimport { defineProperties } from \"@ethersproject/properties\";\nconst _gaurd = {};\nfunction n(value, width) {\n let signed = false;\n if (width < 0) {\n signed = true;\n width *= -1;\n }\n // @TODO: Check range is valid for value\n return new Typed(_gaurd, `${signed ? \"\" : \"u\"}int${width}`, value, { signed, width });\n}\nfunction b(value, size) {\n // @TODO: Check range is valid for value\n return new Typed(_gaurd, `bytes${(size) ? size : \"\"}`, value, { size });\n}\nconst _typedSymbol = Symbol.for(\"_ethers_typed\");\nexport class Typed {\n constructor(gaurd, type, value, options = null) {\n _Typed_options.set(this, void 0);\n if (gaurd !== _gaurd) {\n throw new Error(\"private constructor\");\n }\n defineProperties(this, { _typedSymbol, type, value });\n __classPrivateFieldSet(this, _Typed_options, options, \"f\");\n // Check the value is valid\n this.format();\n }\n format() {\n if (this.type === \"array\") {\n throw new Error(\"\");\n }\n else if (this.type === \"dynamicArray\") {\n throw new Error(\"\");\n }\n else if (this.type === \"tuple\") {\n return `tuple(${this.value.map((v) => v.format()).join(\",\")})`;\n }\n return this.type;\n }\n defaultValue() {\n return 0;\n }\n minValue() {\n return 0;\n }\n maxValue() {\n return 0;\n }\n isBigInt() {\n return !!(this.type.match(/^u?int[0-9]+$/));\n }\n isData() {\n return (this.type.substring(0, 5) === \"bytes\");\n }\n isString() {\n return (this.type === \"string\");\n }\n get tupleName() {\n if (this.type !== \"tuple\") {\n throw TypeError(\"not a tuple\");\n }\n return __classPrivateFieldGet(this, _Typed_options, \"f\");\n }\n // Returns the length of this type as an array\n // - `null` indicates the length is unforced, it could be dynamic\n // - `-1` indicates the length is dynamic\n // - any other value indicates it is a static array and is its length\n get arrayLength() {\n if (this.type !== \"array\") {\n throw TypeError(\"not an array\");\n }\n if (__classPrivateFieldGet(this, _Typed_options, \"f\") === true) {\n return -1;\n }\n if (__classPrivateFieldGet(this, _Typed_options, \"f\") === false) {\n return (this.value).length;\n }\n return null;\n }\n static from(type, value) {\n return new Typed(_gaurd, type, value);\n }\n static uint8(v) { return n(v, 8); }\n static uint16(v) { return n(v, 16); }\n static uint24(v) { return n(v, 24); }\n static uint32(v) { return n(v, 32); }\n static uint40(v) { return n(v, 40); }\n static uint48(v) { return n(v, 46); }\n static uint56(v) { return n(v, 56); }\n static uint64(v) { return n(v, 64); }\n static uint72(v) { return n(v, 72); }\n static uint80(v) { return n(v, 80); }\n static uint88(v) { return n(v, 88); }\n static uint96(v) { return n(v, 96); }\n static uint104(v) { return n(v, 104); }\n static uint112(v) { return n(v, 112); }\n static uint120(v) { return n(v, 120); }\n static uint128(v) { return n(v, 128); }\n static uint136(v) { return n(v, 136); }\n static uint144(v) { return n(v, 144); }\n static uint152(v) { return n(v, 152); }\n static uint160(v) { return n(v, 160); }\n static uint168(v) { return n(v, 168); }\n static uint176(v) { return n(v, 176); }\n static uint184(v) { return n(v, 184); }\n static uint192(v) { return n(v, 192); }\n static uint200(v) { return n(v, 200); }\n static uint208(v) { return n(v, 208); }\n static uint216(v) { return n(v, 216); }\n static uint224(v) { return n(v, 224); }\n static uint232(v) { return n(v, 232); }\n static uint240(v) { return n(v, 240); }\n static uint248(v) { return n(v, 248); }\n static uint256(v) { return n(v, 256); }\n static uint(v) { return n(v, 256); }\n static int8(v) { return n(v, -8); }\n static int16(v) { return n(v, -16); }\n static int24(v) { return n(v, -24); }\n static int32(v) { return n(v, -32); }\n static int40(v) { return n(v, -40); }\n static int48(v) { return n(v, -46); }\n static int56(v) { return n(v, -56); }\n static int64(v) { return n(v, -64); }\n static int72(v) { return n(v, -72); }\n static int80(v) { return n(v, -80); }\n static int88(v) { return n(v, -88); }\n static int96(v) { return n(v, -96); }\n static int104(v) { return n(v, -104); }\n static int112(v) { return n(v, -112); }\n static int120(v) { return n(v, -120); }\n static int128(v) { return n(v, -128); }\n static int136(v) { return n(v, -136); }\n static int144(v) { return n(v, -144); }\n static int152(v) { return n(v, -152); }\n static int160(v) { return n(v, -160); }\n static int168(v) { return n(v, -168); }\n static int176(v) { return n(v, -176); }\n static int184(v) { return n(v, -184); }\n static int192(v) { return n(v, -192); }\n static int200(v) { return n(v, -200); }\n static int208(v) { return n(v, -208); }\n static int216(v) { return n(v, -216); }\n static int224(v) { return n(v, -224); }\n static int232(v) { return n(v, -232); }\n static int240(v) { return n(v, -240); }\n static int248(v) { return n(v, -248); }\n static int256(v) { return n(v, -256); }\n static int(v) { return n(v, -256); }\n static bytes(v) { return b(v); }\n static bytes1(v) { return b(v, 1); }\n static bytes2(v) { return b(v, 2); }\n static bytes3(v) { return b(v, 3); }\n static bytes4(v) { return b(v, 4); }\n static bytes5(v) { return b(v, 5); }\n static bytes6(v) { return b(v, 6); }\n static bytes7(v) { return b(v, 7); }\n static bytes8(v) { return b(v, 8); }\n static bytes9(v) { return b(v, 9); }\n static bytes10(v) { return b(v, 10); }\n static bytes11(v) { return b(v, 11); }\n static bytes12(v) { return b(v, 12); }\n static bytes13(v) { return b(v, 13); }\n static bytes14(v) { return b(v, 14); }\n static bytes15(v) { return b(v, 15); }\n static bytes16(v) { return b(v, 16); }\n static bytes17(v) { return b(v, 17); }\n static bytes18(v) { return b(v, 18); }\n static bytes19(v) { return b(v, 19); }\n static bytes20(v) { return b(v, 20); }\n static bytes21(v) { return b(v, 21); }\n static bytes22(v) { return b(v, 22); }\n static bytes23(v) { return b(v, 23); }\n static bytes24(v) { return b(v, 24); }\n static bytes25(v) { return b(v, 25); }\n static bytes26(v) { return b(v, 26); }\n static bytes27(v) { return b(v, 27); }\n static bytes28(v) { return b(v, 28); }\n static bytes29(v) { return b(v, 29); }\n static bytes30(v) { return b(v, 30); }\n static bytes31(v) { return b(v, 31); }\n static bytes32(v) { return b(v, 32); }\n static address(v) { return new Typed(_gaurd, \"address\", v); }\n static bool(v) { return new Typed(_gaurd, \"bool\", !!v); }\n static string(v) { return new Typed(_gaurd, \"string\", v); }\n static array(v, dynamic) {\n throw new Error(\"not implemented yet\");\n return new Typed(_gaurd, \"array\", v, dynamic);\n }\n static tuple(v, name) {\n throw new Error(\"not implemented yet\");\n return new Typed(_gaurd, \"tuple\", v, name);\n }\n static overrides(v) {\n return new Typed(_gaurd, \"overrides\", Object.assign({}, v));\n }\n static isTyped(value) {\n return (value && value._typedSymbol === _typedSymbol);\n }\n static dereference(value, type) {\n if (Typed.isTyped(value)) {\n if (value.type !== type) {\n throw new Error(`invalid type: expecetd ${type}, got ${value.type}`);\n }\n return value.value;\n }\n return value;\n }\n}\n_Typed_options = new WeakMap();\n//# sourceMappingURL=typed.js.map","import { getAddress } from \"@ethersproject/address\";\nimport { toHex } from \"@ethersproject/math\";\nimport { Typed } from \"../typed.js\";\nimport { Coder } from \"./abstract-coder.js\";\nexport class AddressCoder extends Coder {\n constructor(localName) {\n super(\"address\", \"address\", localName, false);\n }\n defaultValue() {\n return \"0x0000000000000000000000000000000000000000\";\n }\n encode(writer, _value) {\n let value = Typed.dereference(_value, \"string\");\n try {\n value = getAddress(value);\n }\n catch (error) {\n return this._throwError(error.message, _value);\n }\n return writer.writeValue(value);\n }\n decode(reader) {\n return getAddress(toHex(reader.readValue(), 20));\n }\n}\n//# sourceMappingURL=address.js.map","import { Coder } from \"./abstract-coder.js\";\n// Clones the functionality of an existing Coder, but without a localName\nexport class AnonymousCoder extends Coder {\n constructor(coder) {\n super(coder.name, coder.type, \"_\", coder.dynamic);\n this.coder = coder;\n }\n defaultValue() {\n return this.coder.defaultValue();\n }\n encode(writer, value) {\n return this.coder.encode(writer, value);\n }\n decode(reader) {\n return this.coder.decode(reader);\n }\n}\n//# sourceMappingURL=anonymous.js.map","import { defineProperties } from \"@ethersproject/properties\";\nimport { isError } from \"@ethersproject/logger\";\nimport { logger } from \"../logger.js\";\nimport { Typed } from \"../typed.js\";\nimport { Coder, Result, WordSize, Writer } from \"./abstract-coder.js\";\nimport { AnonymousCoder } from \"./anonymous.js\";\nexport function pack(writer, coders, values) {\n let arrayValues = [];\n if (Array.isArray(values)) {\n arrayValues = values;\n }\n else if (values && typeof (values) === \"object\") {\n let unique = {};\n arrayValues = coders.map((coder) => {\n const name = coder.localName;\n if (!name) {\n logger.throwError(\"cannot encode object for signature with missing names\", \"INVALID_ARGUMENT\", {\n argument: \"values\",\n info: { coder },\n value: values\n });\n }\n if (unique[name]) {\n logger.throwError(\"cannot encode object for signature with duplicate names\", \"INVALID_ARGUMENT\", {\n argument: \"values\",\n info: { coder },\n value: values\n });\n }\n unique[name] = true;\n return values[name];\n });\n }\n else {\n logger.throwArgumentError(\"invalid tuple value\", \"tuple\", values);\n }\n if (coders.length !== arrayValues.length) {\n logger.throwArgumentError(\"types/value length mismatch\", \"tuple\", values);\n }\n let staticWriter = new Writer();\n let dynamicWriter = new Writer();\n let updateFuncs = [];\n coders.forEach((coder, index) => {\n let value = arrayValues[index];\n if (coder.dynamic) {\n // Get current dynamic offset (for the future pointer)\n let dynamicOffset = dynamicWriter.length;\n // Encode the dynamic value into the dynamicWriter\n coder.encode(dynamicWriter, value);\n // Prepare to populate the correct offset once we are done\n let updateFunc = staticWriter.writeUpdatableValue();\n updateFuncs.push((baseOffset) => {\n updateFunc(baseOffset + dynamicOffset);\n });\n }\n else {\n coder.encode(staticWriter, value);\n }\n });\n // Backfill all the dynamic offsets, now that we know the static length\n updateFuncs.forEach((func) => { func(staticWriter.length); });\n let length = writer.appendWriter(staticWriter);\n length += writer.appendWriter(dynamicWriter);\n return length;\n}\nexport function unpack(reader, coders) {\n let values = [];\n let keys = [];\n // A reader anchored to this base\n let baseReader = reader.subReader(0);\n coders.forEach((coder) => {\n let value = null;\n if (coder.dynamic) {\n let offset = reader.readIndex();\n let offsetReader = baseReader.subReader(offset);\n try {\n value = coder.decode(offsetReader);\n }\n catch (error) {\n // Cannot recover from this\n if (isError(error, \"BUFFER_OVERRUN\")) {\n throw error;\n }\n value = error;\n value.baseType = coder.name;\n value.name = coder.localName;\n value.type = coder.type;\n }\n }\n else {\n try {\n value = coder.decode(reader);\n }\n catch (error) {\n // Cannot recover from this\n if (isError(error, \"BUFFER_OVERRUN\")) {\n throw error;\n }\n value = error;\n value.baseType = coder.name;\n value.name = coder.localName;\n value.type = coder.type;\n }\n }\n if (value == undefined) {\n throw new Error(\"investigate\");\n }\n values.push(value);\n keys.push(coder.localName || null);\n });\n return Result.fromItems(values, keys);\n}\nexport class ArrayCoder extends Coder {\n constructor(coder, length, localName) {\n const type = (coder.type + \"[\" + (length >= 0 ? length : \"\") + \"]\");\n const dynamic = (length === -1 || coder.dynamic);\n super(\"array\", type, localName, dynamic);\n defineProperties(this, { coder, length });\n }\n defaultValue() {\n // Verifies the child coder is valid (even if the array is dynamic or 0-length)\n const defaultChild = this.coder.defaultValue();\n const result = [];\n for (let i = 0; i < this.length; i++) {\n result.push(defaultChild);\n }\n return result;\n }\n encode(writer, _value) {\n const value = Typed.dereference(_value, \"array\");\n if (!Array.isArray(value)) {\n this._throwError(\"expected array value\", value);\n }\n let count = this.length;\n if (count === -1) {\n count = value.length;\n writer.writeValue(value.length);\n }\n logger.assertArgumentCount(value.length, count, \"coder array\" + (this.localName ? (\" \" + this.localName) : \"\"));\n let coders = [];\n for (let i = 0; i < value.length; i++) {\n coders.push(this.coder);\n }\n return pack(writer, coders, value);\n }\n decode(reader) {\n let count = this.length;\n if (count === -1) {\n count = reader.readIndex();\n // Check that there is *roughly* enough data to ensure\n // stray random data is not being read as a length. Each\n // slot requires at least 32 bytes for their value (or 32\n // bytes as a link to the data). This could use a much\n // tighter bound, but we are erroring on the side of safety.\n if (count * WordSize > reader.dataLength) {\n logger.throwError(\"insufficient data length\", \"BUFFER_OVERRUN\", {\n buffer: reader.bytes,\n offset: count * WordSize,\n length: reader.dataLength\n });\n }\n }\n let coders = [];\n for (let i = 0; i < count; i++) {\n coders.push(new AnonymousCoder(this.coder));\n }\n return unpack(reader, coders);\n }\n}\n//# sourceMappingURL=array.js.map","import { Typed } from \"../typed.js\";\nimport { Coder } from \"./abstract-coder.js\";\nexport class BooleanCoder extends Coder {\n constructor(localName) {\n super(\"bool\", \"bool\", localName, false);\n }\n defaultValue() {\n return false;\n }\n encode(writer, _value) {\n const value = Typed.dereference(_value, \"bool\");\n return writer.writeValue(value ? 1 : 0);\n }\n decode(reader) {\n return !!reader.readValue();\n }\n}\n//# sourceMappingURL=boolean.js.map","import { arrayify, hexlify } from \"@ethersproject/bytes\";\nimport { Coder } from \"./abstract-coder.js\";\nexport class DynamicBytesCoder extends Coder {\n constructor(type, localName) {\n super(type, type, localName, true);\n }\n defaultValue() {\n return \"0x\";\n }\n encode(writer, value) {\n value = arrayify(value);\n let length = writer.writeValue(value.length);\n length += writer.writeBytes(value);\n return length;\n }\n decode(reader) {\n return reader.readBytes(reader.readIndex(), true);\n }\n}\nexport class BytesCoder extends DynamicBytesCoder {\n constructor(localName) {\n super(\"bytes\", localName);\n }\n decode(reader) {\n return hexlify(super.decode(reader));\n }\n}\n//# sourceMappingURL=bytes.js.map","import { arrayify, hexlify } from \"@ethersproject/bytes\";\nimport { defineProperties } from \"@ethersproject/properties\";\nimport { Typed } from \"../typed.js\";\nimport { Coder } from \"./abstract-coder.js\";\nexport class FixedBytesCoder extends Coder {\n constructor(size, localName) {\n let name = \"bytes\" + String(size);\n super(name, name, localName, false);\n defineProperties(this, { size }, { size: \"number\" });\n }\n defaultValue() {\n return (\"0x0000000000000000000000000000000000000000000000000000000000000000\").substring(0, 2 + this.size * 2);\n }\n encode(writer, _value) {\n let data = arrayify(Typed.dereference(_value, this.type));\n if (data.length !== this.size) {\n this._throwError(\"incorrect data length\", _value);\n }\n return writer.writeBytes(data);\n }\n decode(reader) {\n return hexlify(reader.readBytes(this.size));\n }\n}\n//# sourceMappingURL=fixed-bytes.js.map","import { Coder } from \"./abstract-coder.js\";\nconst Empty = new Uint8Array([]);\nexport class NullCoder extends Coder {\n constructor(localName) {\n super(\"null\", \"\", localName, false);\n }\n defaultValue() {\n return null;\n }\n encode(writer, value) {\n if (value != null) {\n this._throwError(\"not null\", value);\n }\n return writer.writeBytes(Empty);\n }\n decode(reader) {\n reader.readBytes(0);\n return null;\n }\n}\n//# sourceMappingURL=null.js.map","import { fromTwos, mask, toTwos } from \"@ethersproject/math\";\nimport { defineProperties } from \"@ethersproject/properties\";\nimport { logger } from \"../logger.js\";\nimport { Typed } from \"../typed.js\";\nimport { Coder, WordSize } from \"./abstract-coder.js\";\nconst BN_0 = BigInt(0);\nconst BN_1 = BigInt(1);\nconst BN_MAX_UINT256 = BigInt(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\");\nexport class NumberCoder extends Coder {\n constructor(size, signed, localName) {\n const name = ((signed ? \"int\" : \"uint\") + (size * 8));\n super(name, name, localName, false);\n defineProperties(this, { size, signed }, { size: \"number\", signed: \"boolean\" });\n }\n defaultValue() {\n return 0;\n }\n encode(writer, _value) {\n let value = logger.getBigInt(Typed.dereference(_value, this.type));\n // Check bounds are safe for encoding\n let maxUintValue = mask(BN_MAX_UINT256, WordSize * 8);\n if (this.signed) {\n let bounds = mask(maxUintValue, (this.size * 8) - 1);\n if (value > bounds || value < -(bounds + BN_1)) {\n this._throwError(\"value out-of-bounds\", _value);\n }\n }\n else if (value < BN_0 || value > mask(maxUintValue, this.size * 8)) {\n this._throwError(\"value out-of-bounds\", _value);\n }\n value = mask(toTwos(value, this.size * 8), this.size * 8);\n if (this.signed) {\n value = toTwos(fromTwos(value, this.size * 8), 8 * WordSize);\n }\n return writer.writeValue(value);\n }\n decode(reader) {\n let value = mask(reader.readValue(), this.size * 8);\n if (this.signed) {\n value = fromTwos(value, this.size * 8);\n }\n return value;\n }\n}\n//# sourceMappingURL=number.js.map","export const version = \"@ethersproject/strings@6.0.0-beta.2\";\n//# sourceMappingURL=_version.js.map","import { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version.js\";\nexport const logger = new Logger(version);\n//# sourceMappingURL=logger.js.map","import { logger } from \"./logger.js\";\n///////////////////////////////\nexport var UnicodeNormalizationForm;\n(function (UnicodeNormalizationForm) {\n UnicodeNormalizationForm[\"current\"] = \"\";\n UnicodeNormalizationForm[\"NFC\"] = \"NFC\";\n UnicodeNormalizationForm[\"NFD\"] = \"NFD\";\n UnicodeNormalizationForm[\"NFKC\"] = \"NFKC\";\n UnicodeNormalizationForm[\"NFKD\"] = \"NFKD\";\n})(UnicodeNormalizationForm || (UnicodeNormalizationForm = {}));\n;\nexport var Utf8ErrorReason;\n(function (Utf8ErrorReason) {\n // A continuation byte was present where there was nothing to continue\n // - offset = the index the codepoint began in\n Utf8ErrorReason[\"UNEXPECTED_CONTINUE\"] = \"unexpected continuation byte\";\n // An invalid (non-continuation) byte to start a UTF-8 codepoint was found\n // - offset = the index the codepoint began in\n Utf8ErrorReason[\"BAD_PREFIX\"] = \"bad codepoint prefix\";\n // The string is too short to process the expected codepoint\n // - offset = the index the codepoint began in\n Utf8ErrorReason[\"OVERRUN\"] = \"string overrun\";\n // A missing continuation byte was expected but not found\n // - offset = the index the continuation byte was expected at\n Utf8ErrorReason[\"MISSING_CONTINUE\"] = \"missing continuation byte\";\n // The computed code point is outside the range for UTF-8\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; outside the UTF-8 range\n Utf8ErrorReason[\"OUT_OF_RANGE\"] = \"out of UTF-8 range\";\n // UTF-8 strings may not contain UTF-16 surrogate pairs\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; inside the UTF-16 surrogate range\n Utf8ErrorReason[\"UTF16_SURROGATE\"] = \"UTF-16 surrogate\";\n // The string is an overlong representation\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; already bounds checked\n Utf8ErrorReason[\"OVERLONG\"] = \"overlong representation\";\n})(Utf8ErrorReason || (Utf8ErrorReason = {}));\n;\nfunction errorFunc(reason, offset, bytes, output, badCodepoint) {\n return logger.throwArgumentError(`invalid codepoint at offset ${offset}; ${reason}`, \"bytes\", bytes);\n}\nfunction ignoreFunc(reason, offset, bytes, output, badCodepoint) {\n // If there is an invalid prefix (including stray continuation), skip any additional continuation bytes\n if (reason === Utf8ErrorReason.BAD_PREFIX || reason === Utf8ErrorReason.UNEXPECTED_CONTINUE) {\n let i = 0;\n for (let o = offset + 1; o < bytes.length; o++) {\n if (bytes[o] >> 6 !== 0x02) {\n break;\n }\n i++;\n }\n return i;\n }\n // This byte runs us past the end of the string, so just jump to the end\n // (but the first byte was read already read and therefore skipped)\n if (reason === Utf8ErrorReason.OVERRUN) {\n return bytes.length - offset - 1;\n }\n // Nothing to skip\n return 0;\n}\nfunction replaceFunc(reason, offset, bytes, output, badCodepoint) {\n // Overlong representations are otherwise \"valid\" code points; just non-deistingtished\n if (reason === Utf8ErrorReason.OVERLONG) {\n output.push((badCodepoint != null) ? badCodepoint : -1);\n return 0;\n }\n // Put the replacement character into the output\n output.push(0xfffd);\n // Otherwise, process as if ignoring errors\n return ignoreFunc(reason, offset, bytes, output, badCodepoint);\n}\n// Common error handing strategies\nexport const Utf8ErrorFuncs = Object.freeze({\n error: errorFunc,\n ignore: ignoreFunc,\n replace: replaceFunc\n});\n// http://stackoverflow.com/questions/13356493/decode-utf-8-with-javascript#13691499\nfunction getUtf8CodePoints(_bytes, onError) {\n if (onError == null) {\n onError = Utf8ErrorFuncs.error;\n }\n const bytes = logger.getBytes(_bytes, \"bytes\");\n const result = [];\n let i = 0;\n // Invalid bytes are ignored\n while (i < bytes.length) {\n const c = bytes[i++];\n // 0xxx xxxx\n if (c >> 7 === 0) {\n result.push(c);\n continue;\n }\n // Multibyte; how many bytes left for this character?\n let extraLength = null;\n let overlongMask = null;\n // 110x xxxx 10xx xxxx\n if ((c & 0xe0) === 0xc0) {\n extraLength = 1;\n overlongMask = 0x7f;\n // 1110 xxxx 10xx xxxx 10xx xxxx\n }\n else if ((c & 0xf0) === 0xe0) {\n extraLength = 2;\n overlongMask = 0x7ff;\n // 1111 0xxx 10xx xxxx 10xx xxxx 10xx xxxx\n }\n else if ((c & 0xf8) === 0xf0) {\n extraLength = 3;\n overlongMask = 0xffff;\n }\n else {\n if ((c & 0xc0) === 0x80) {\n i += onError(Utf8ErrorReason.UNEXPECTED_CONTINUE, i - 1, bytes, result);\n }\n else {\n i += onError(Utf8ErrorReason.BAD_PREFIX, i - 1, bytes, result);\n }\n continue;\n }\n // Do we have enough bytes in our data?\n if (i - 1 + extraLength >= bytes.length) {\n i += onError(Utf8ErrorReason.OVERRUN, i - 1, bytes, result);\n continue;\n }\n // Remove the length prefix from the char\n let res = c & ((1 << (8 - extraLength - 1)) - 1);\n for (let j = 0; j < extraLength; j++) {\n let nextChar = bytes[i];\n // Invalid continuation byte\n if ((nextChar & 0xc0) != 0x80) {\n i += onError(Utf8ErrorReason.MISSING_CONTINUE, i, bytes, result);\n res = null;\n break;\n }\n ;\n res = (res << 6) | (nextChar & 0x3f);\n i++;\n }\n // See above loop for invalid continuation byte\n if (res === null) {\n continue;\n }\n // Maximum code point\n if (res > 0x10ffff) {\n i += onError(Utf8ErrorReason.OUT_OF_RANGE, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n // Reserved for UTF-16 surrogate halves\n if (res >= 0xd800 && res <= 0xdfff) {\n i += onError(Utf8ErrorReason.UTF16_SURROGATE, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n // Check for overlong sequences (more bytes than needed)\n if (res <= overlongMask) {\n i += onError(Utf8ErrorReason.OVERLONG, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n result.push(res);\n }\n return result;\n}\n// http://stackoverflow.com/questions/18729405/how-to-convert-utf8-string-to-byte-array\nexport function toUtf8Bytes(str, form = UnicodeNormalizationForm.current) {\n if (form != UnicodeNormalizationForm.current) {\n logger.assertNormalize(form);\n str = str.normalize(form);\n }\n let result = [];\n for (let i = 0; i < str.length; i++) {\n const c = str.charCodeAt(i);\n if (c < 0x80) {\n result.push(c);\n }\n else if (c < 0x800) {\n result.push((c >> 6) | 0xc0);\n result.push((c & 0x3f) | 0x80);\n }\n else if ((c & 0xfc00) == 0xd800) {\n i++;\n const c2 = str.charCodeAt(i);\n if (i >= str.length || (c2 & 0xfc00) !== 0xdc00) {\n throw new Error(\"invalid utf-8 string\");\n }\n // Surrogate Pair\n const pair = 0x10000 + ((c & 0x03ff) << 10) + (c2 & 0x03ff);\n result.push((pair >> 18) | 0xf0);\n result.push(((pair >> 12) & 0x3f) | 0x80);\n result.push(((pair >> 6) & 0x3f) | 0x80);\n result.push((pair & 0x3f) | 0x80);\n }\n else {\n result.push((c >> 12) | 0xe0);\n result.push(((c >> 6) & 0x3f) | 0x80);\n result.push((c & 0x3f) | 0x80);\n }\n }\n return new Uint8Array(result);\n}\n;\nfunction escapeChar(value) {\n const hex = (\"0000\" + value.toString(16));\n return \"\\\\u\" + hex.substring(hex.length - 4);\n}\nexport function _toEscapedUtf8String(bytes, onError) {\n return '\"' + getUtf8CodePoints(bytes, onError).map((codePoint) => {\n if (codePoint < 256) {\n switch (codePoint) {\n case 8: return \"\\\\b\";\n case 9: return \"\\\\t\";\n case 10: return \"\\\\n\";\n case 13: return \"\\\\r\";\n case 34: return \"\\\\\\\"\";\n case 92: return \"\\\\\\\\\";\n }\n if (codePoint >= 32 && codePoint < 127) {\n return String.fromCharCode(codePoint);\n }\n }\n if (codePoint <= 0xffff) {\n return escapeChar(codePoint);\n }\n codePoint -= 0x10000;\n return escapeChar(((codePoint >> 10) & 0x3ff) + 0xd800) + escapeChar((codePoint & 0x3ff) + 0xdc00);\n }).join(\"\") + '\"';\n}\nexport function _toUtf8String(codePoints) {\n return codePoints.map((codePoint) => {\n if (codePoint <= 0xffff) {\n return String.fromCharCode(codePoint);\n }\n codePoint -= 0x10000;\n return String.fromCharCode((((codePoint >> 10) & 0x3ff) + 0xd800), ((codePoint & 0x3ff) + 0xdc00));\n }).join(\"\");\n}\nexport function toUtf8String(bytes, onError) {\n return _toUtf8String(getUtf8CodePoints(bytes, onError));\n}\nexport function toUtf8CodePoints(str, form = UnicodeNormalizationForm.current) {\n return getUtf8CodePoints(toUtf8Bytes(str, form));\n}\n//# sourceMappingURL=utf8.js.map","import { zeroPadBytes } from \"@ethersproject/bytes\";\nimport { logger } from \"./logger.js\";\nimport { toUtf8Bytes, toUtf8String } from \"./utf8.js\";\nexport function formatBytes32String(text) {\n // Get the bytes\n const bytes = toUtf8Bytes(text);\n // Check we have room for null-termination\n if (bytes.length > 31) {\n throw new Error(\"bytes32 string must be less than 32 bytes\");\n }\n // Zero-pad (implicitly null-terminates)\n return zeroPadBytes(bytes, 32);\n}\nexport function parseBytes32String(_bytes) {\n const data = logger.getBytes(_bytes, \"bytes\");\n // Must be 32 bytes with a null-termination\n if (data.length !== 32) {\n throw new Error(\"invalid bytes32 - not 32 bytes long\");\n }\n if (data[31] !== 0) {\n throw new Error(\"invalid bytes32 string - no null terminator\");\n }\n // Find the null termination\n let length = 31;\n while (data[length - 1] === 0) {\n length--;\n }\n // Determine the string value\n return toUtf8String(data.slice(0, length));\n}\n//# sourceMappingURL=bytes32.js.map","import { logger } from \"./logger.js\";\nimport { toUtf8CodePoints, _toUtf8String, UnicodeNormalizationForm } from \"./utf8.js\";\nfunction bytes2(data) {\n if ((data.length % 4) !== 0) {\n throw new Error(\"should not happen; bad data\");\n }\n let result = [];\n for (let i = 0; i < data.length; i += 4) {\n result.push(parseInt(data.substring(i, i + 4), 16));\n }\n return result;\n}\nfunction createTable(data, _func) {\n const func = _func || function (value) { return [parseInt(value, 16)]; };\n let lo = 0;\n let result = {};\n data.split(\",\").forEach((pair) => {\n let comps = pair.split(\":\");\n lo += parseInt(comps[0], 16);\n result[lo] = func(comps[1]);\n });\n return result;\n}\nfunction createRangeTable(data) {\n let hi = 0;\n return data.split(\",\").map((v) => {\n let comps = v.split(\"-\");\n if (comps.length === 1) {\n comps[1] = \"0\";\n }\n else if (comps[1] === \"\") {\n comps[1] = \"1\";\n }\n let lo = hi + parseInt(comps[0], 16);\n hi = parseInt(comps[1], 16);\n return { l: lo, h: hi };\n });\n}\nfunction matchMap(value, ranges) {\n let lo = 0;\n for (let i = 0; i < ranges.length; i++) {\n let range = ranges[i];\n lo += range.l;\n if (value >= lo && value <= lo + range.h && ((value - lo) % (range.d || 1)) === 0) {\n if (range.e && range.e.indexOf(value - lo) !== -1) {\n continue;\n }\n return range;\n }\n }\n return null;\n}\nconst Table_A_1_ranges = createRangeTable(\"221,13-1b,5f-,40-10,51-f,11-3,3-3,2-2,2-4,8,2,15,2d,28-8,88,48,27-,3-5,11-20,27-,8,28,3-5,12,18,b-a,1c-4,6-16,2-d,2-2,2,1b-4,17-9,8f-,10,f,1f-2,1c-34,33-14e,4,36-,13-,6-2,1a-f,4,9-,3-,17,8,2-2,5-,2,8-,3-,4-8,2-3,3,6-,16-6,2-,7-3,3-,17,8,3,3,3-,2,6-3,3-,4-a,5,2-6,10-b,4,8,2,4,17,8,3,6-,b,4,4-,2-e,2-4,b-10,4,9-,3-,17,8,3-,5-,9-2,3-,4-7,3-3,3,4-3,c-10,3,7-2,4,5-2,3,2,3-2,3-2,4-2,9,4-3,6-2,4,5-8,2-e,d-d,4,9,4,18,b,6-3,8,4,5-6,3-8,3-3,b-11,3,9,4,18,b,6-3,8,4,5-6,3-6,2,3-3,b-11,3,9,4,18,11-3,7-,4,5-8,2-7,3-3,b-11,3,13-2,19,a,2-,8-2,2-3,7,2,9-11,4-b,3b-3,1e-24,3,2-,3,2-,2-5,5,8,4,2,2-,3,e,4-,6,2,7-,b-,3-21,49,23-5,1c-3,9,25,10-,2-2f,23,6,3,8-2,5-5,1b-45,27-9,2a-,2-3,5b-4,45-4,53-5,8,40,2,5-,8,2,5-,28,2,5-,20,2,5-,8,2,5-,8,8,18,20,2,5-,8,28,14-5,1d-22,56-b,277-8,1e-2,52-e,e,8-a,18-8,15-b,e,4,3-b,5e-2,b-15,10,b-5,59-7,2b-555,9d-3,5b-5,17-,7-,27-,7-,9,2,2,2,20-,36,10,f-,7,14-,4,a,54-3,2-6,6-5,9-,1c-10,13-1d,1c-14,3c-,10-6,32-b,240-30,28-18,c-14,a0,115-,3,66-,b-76,5,5-,1d,24,2,5-2,2,8-,35-2,19,f-10,1d-3,311-37f,1b,5a-b,d7-19,d-3,41,57-,68-4,29-3,5f,29-37,2e-2,25-c,2c-2,4e-3,30,78-3,64-,20,19b7-49,51a7-59,48e-2,38-738,2ba5-5b,222f-,3c-94,8-b,6-4,1b,6,2,3,3,6d-20,16e-f,41-,37-7,2e-2,11-f,5-b,18-,b,14,5-3,6,88-,2,bf-2,7-,7-,7-,4-2,8,8-9,8-2ff,20,5-b,1c-b4,27-,27-cbb1,f7-9,28-2,b5-221,56,48,3-,2-,3-,5,d,2,5,3,42,5-,9,8,1d,5,6,2-2,8,153-3,123-3,33-27fd,a6da-5128,21f-5df,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3,2-1d,61-ff7d\");\n// @TODO: Make this relative...\nconst Table_B_1_flags = \"ad,34f,1806,180b,180c,180d,200b,200c,200d,2060,feff\".split(\",\").map((v) => parseInt(v, 16));\nconst Table_B_2_ranges = [\n { h: 25, s: 32, l: 65 },\n { h: 30, s: 32, e: [23], l: 127 },\n { h: 54, s: 1, e: [48], l: 64, d: 2 },\n { h: 14, s: 1, l: 57, d: 2 },\n { h: 44, s: 1, l: 17, d: 2 },\n { h: 10, s: 1, e: [2, 6, 8], l: 61, d: 2 },\n { h: 16, s: 1, l: 68, d: 2 },\n { h: 84, s: 1, e: [18, 24, 66], l: 19, d: 2 },\n { h: 26, s: 32, e: [17], l: 435 },\n { h: 22, s: 1, l: 71, d: 2 },\n { h: 15, s: 80, l: 40 },\n { h: 31, s: 32, l: 16 },\n { h: 32, s: 1, l: 80, d: 2 },\n { h: 52, s: 1, l: 42, d: 2 },\n { h: 12, s: 1, l: 55, d: 2 },\n { h: 40, s: 1, e: [38], l: 15, d: 2 },\n { h: 14, s: 1, l: 48, d: 2 },\n { h: 37, s: 48, l: 49 },\n { h: 148, s: 1, l: 6351, d: 2 },\n { h: 88, s: 1, l: 160, d: 2 },\n { h: 15, s: 16, l: 704 },\n { h: 25, s: 26, l: 854 },\n { h: 25, s: 32, l: 55915 },\n { h: 37, s: 40, l: 1247 },\n { h: 25, s: -119711, l: 53248 },\n { h: 25, s: -119763, l: 52 },\n { h: 25, s: -119815, l: 52 },\n { h: 25, s: -119867, e: [1, 4, 5, 7, 8, 11, 12, 17], l: 52 },\n { h: 25, s: -119919, l: 52 },\n { h: 24, s: -119971, e: [2, 7, 8, 17], l: 52 },\n { h: 24, s: -120023, e: [2, 7, 13, 15, 16, 17], l: 52 },\n { h: 25, s: -120075, l: 52 },\n { h: 25, s: -120127, l: 52 },\n { h: 25, s: -120179, l: 52 },\n { h: 25, s: -120231, l: 52 },\n { h: 25, s: -120283, l: 52 },\n { h: 25, s: -120335, l: 52 },\n { h: 24, s: -119543, e: [17], l: 56 },\n { h: 24, s: -119601, e: [17], l: 58 },\n { h: 24, s: -119659, e: [17], l: 58 },\n { h: 24, s: -119717, e: [17], l: 58 },\n { h: 24, s: -119775, e: [17], l: 58 }\n];\nconst Table_B_2_lut_abs = createTable(\"b5:3bc,c3:ff,7:73,2:253,5:254,3:256,1:257,5:259,1:25b,3:260,1:263,2:269,1:268,5:26f,1:272,2:275,7:280,3:283,5:288,3:28a,1:28b,5:292,3f:195,1:1bf,29:19e,125:3b9,8b:3b2,1:3b8,1:3c5,3:3c6,1:3c0,1a:3ba,1:3c1,1:3c3,2:3b8,1:3b5,1bc9:3b9,1c:1f76,1:1f77,f:1f7a,1:1f7b,d:1f78,1:1f79,1:1f7c,1:1f7d,107:63,5:25b,4:68,1:68,1:68,3:69,1:69,1:6c,3:6e,4:70,1:71,1:72,1:72,1:72,7:7a,2:3c9,2:7a,2:6b,1:e5,1:62,1:63,3:65,1:66,2:6d,b:3b3,1:3c0,6:64,1b574:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3\");\nconst Table_B_2_lut_rel = createTable(\"179:1,2:1,2:1,5:1,2:1,a:4f,a:1,8:1,2:1,2:1,3:1,5:1,3:1,4:1,2:1,3:1,4:1,8:2,1:1,2:2,1:1,2:2,27:2,195:26,2:25,1:25,1:25,2:40,2:3f,1:3f,33:1,11:-6,1:-9,1ac7:-3a,6d:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,b:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,c:-8,2:-8,2:-8,2:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,49:-8,1:-8,1:-4a,1:-4a,d:-56,1:-56,1:-56,1:-56,d:-8,1:-8,f:-8,1:-8,3:-7\");\nconst Table_B_2_complex = createTable(\"df:00730073,51:00690307,19:02BC006E,a7:006A030C,18a:002003B9,16:03B903080301,20:03C503080301,1d7:05650582,190f:00680331,1:00740308,1:0077030A,1:0079030A,1:006102BE,b6:03C50313,2:03C503130300,2:03C503130301,2:03C503130342,2a:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,3:1F7003B9,1:03B103B9,1:03AC03B9,2:03B10342,1:03B1034203B9,5:03B103B9,6:1F7403B9,1:03B703B9,1:03AE03B9,2:03B70342,1:03B7034203B9,5:03B703B9,6:03B903080300,1:03B903080301,3:03B90342,1:03B903080342,b:03C503080300,1:03C503080301,1:03C10313,2:03C50342,1:03C503080342,b:1F7C03B9,1:03C903B9,1:03CE03B9,2:03C90342,1:03C9034203B9,5:03C903B9,ac:00720073,5b:00B00063,6:00B00066,d:006E006F,a:0073006D,1:00740065006C,1:0074006D,124f:006800700061,2:00610075,2:006F0076,b:00700061,1:006E0061,1:03BC0061,1:006D0061,1:006B0061,1:006B0062,1:006D0062,1:00670062,3:00700066,1:006E0066,1:03BC0066,4:0068007A,1:006B0068007A,1:006D0068007A,1:00670068007A,1:00740068007A,15:00700061,1:006B00700061,1:006D00700061,1:006700700061,8:00700076,1:006E0076,1:03BC0076,1:006D0076,1:006B0076,1:006D0076,1:00700077,1:006E0077,1:03BC0077,1:006D0077,1:006B0077,1:006D0077,1:006B03C9,1:006D03C9,2:00620071,3:00632215006B0067,1:0063006F002E,1:00640062,1:00670079,2:00680070,2:006B006B,1:006B006D,9:00700068,2:00700070006D,1:00700072,2:00730076,1:00770062,c723:00660066,1:00660069,1:0066006C,1:006600660069,1:00660066006C,1:00730074,1:00730074,d:05740576,1:05740565,1:0574056B,1:057E0576,1:0574056D\", bytes2);\nconst Table_C_ranges = createRangeTable(\"80-20,2a0-,39c,32,f71,18e,7f2-f,19-7,30-4,7-5,f81-b,5,a800-20ff,4d1-1f,110,fa-6,d174-7,2e84-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,2,1f-5f,ff7f-20001\");\nfunction flatten(values) {\n return values.reduce((accum, value) => {\n value.forEach((value) => { accum.push(value); });\n return accum;\n }, []);\n}\nexport function _nameprepTableA1(codepoint) {\n return !!matchMap(codepoint, Table_A_1_ranges);\n}\nexport function _nameprepTableB2(codepoint) {\n const range = matchMap(codepoint, Table_B_2_ranges);\n if (range) {\n if (range.s == null) {\n throw new Error(\"should not happenl bad range\");\n }\n return [codepoint + range.s];\n }\n const codes = Table_B_2_lut_abs[codepoint];\n if (codes) {\n return codes;\n }\n const shift = Table_B_2_lut_rel[codepoint];\n if (shift) {\n return [codepoint + shift[0]];\n }\n const complex = Table_B_2_complex[codepoint];\n if (complex) {\n return complex;\n }\n return null;\n}\nexport function _nameprepTableC(codepoint) {\n return !!matchMap(codepoint, Table_C_ranges);\n}\nexport function nameprep(value) {\n // This allows platforms with incomplete normalize to bypass\n // it for very basic names which the built-in toLowerCase\n // will certainly handle correctly\n if (value.match(/^[a-z0-9-]*$/i) && value.length <= 59) {\n return value.toLowerCase();\n }\n // Get the code points (keeping the current normalization)\n let codes = toUtf8CodePoints(value);\n codes = flatten(codes.map((code) => {\n // Substitute Table B.1 (Maps to Nothing)\n if (Table_B_1_flags.indexOf(code) >= 0) {\n return [];\n }\n if (code >= 0xfe00 && code <= 0xfe0f) {\n return [];\n }\n // Substitute Table B.2 (Case Folding)\n let codesTableB2 = _nameprepTableB2(code);\n if (codesTableB2) {\n return codesTableB2;\n }\n // No Substitution\n return [code];\n }));\n // Normalize using form KC\n codes = toUtf8CodePoints(_toUtf8String(codes), UnicodeNormalizationForm.NFKC);\n // Prohibit Tables C.1.2, C.2.2, C.3, C.4, C.5, C.6, C.7, C.8, C.9\n codes.forEach((code) => {\n if (_nameprepTableC(code)) {\n logger.throwArgumentError(\"STRINGPREP_CONTAINS_PROHIBITED\", \"value\", value);\n }\n });\n // Prohibit Unassigned Code Points (Table A.1)\n codes.forEach((code) => {\n if (_nameprepTableA1(code)) {\n logger.throwArgumentError(\"STRINGPREP_CONTAINS_UNASSIGNED\", \"value\", value);\n }\n });\n // IDNA extras\n let name = _toUtf8String(codes);\n // IDNA: 4.2.3.1\n if (name.substring(0, 1) === \"-\" || name.substring(2, 4) === \"--\" || name.substring(name.length - 1) === \"-\") {\n logger.throwArgumentError(\"invalid hyphen\", \"value\", value);\n }\n // IDNA: 4.2.4\n if (name.length > 63) {\n logger.throwArgumentError(\"too long\", \"value\", value);\n }\n return name;\n}\n//# sourceMappingURL=idna.js.map","import { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\nimport { Typed } from \"../typed.js\";\nimport { DynamicBytesCoder } from \"./bytes.js\";\nexport class StringCoder extends DynamicBytesCoder {\n constructor(localName) {\n super(\"string\", localName);\n }\n defaultValue() {\n return \"\";\n }\n encode(writer, _value) {\n return super.encode(writer, toUtf8Bytes(Typed.dereference(_value, \"string\")));\n }\n decode(reader) {\n return toUtf8String(super.decode(reader));\n }\n}\n//# sourceMappingURL=string.js.map","import { defineProperties } from \"@ethersproject/properties\";\nimport { Typed } from \"../typed.js\";\nimport { Coder } from \"./abstract-coder.js\";\nimport { pack, unpack } from \"./array.js\";\nexport class TupleCoder extends Coder {\n constructor(coders, localName) {\n let dynamic = false;\n const types = [];\n coders.forEach((coder) => {\n if (coder.dynamic) {\n dynamic = true;\n }\n types.push(coder.type);\n });\n const type = (\"tuple(\" + types.join(\",\") + \")\");\n super(\"tuple\", type, localName, dynamic);\n defineProperties(this, { coders: Object.freeze(coders.slice()) });\n }\n defaultValue() {\n const values = [];\n this.coders.forEach((coder) => {\n values.push(coder.defaultValue());\n });\n // We only output named properties for uniquely named coders\n const uniqueNames = this.coders.reduce((accum, coder) => {\n const name = coder.localName;\n if (name) {\n if (!accum[name]) {\n accum[name] = 0;\n }\n accum[name]++;\n }\n return accum;\n }, {});\n // Add named values\n this.coders.forEach((coder, index) => {\n let name = coder.localName;\n if (!name || uniqueNames[name] !== 1) {\n return;\n }\n if (name === \"length\") {\n name = \"_length\";\n }\n if (values[name] != null) {\n return;\n }\n values[name] = values[index];\n });\n return Object.freeze(values);\n }\n encode(writer, _value) {\n const value = Typed.dereference(_value, \"tuple\");\n return pack(writer, this.coders, value);\n }\n decode(reader) {\n return unpack(reader, this.coders);\n }\n}\n//# sourceMappingURL=tuple.js.map","// See: https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI\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 _AbiCoder_instances, _AbiCoder_getCoder;\nimport { logger } from \"./logger.js\";\nimport { Reader, Writer } from \"./coders/abstract-coder.js\";\nimport { AddressCoder } from \"./coders/address.js\";\nimport { ArrayCoder } from \"./coders/array.js\";\nimport { BooleanCoder } from \"./coders/boolean.js\";\nimport { BytesCoder } from \"./coders/bytes.js\";\nimport { FixedBytesCoder } from \"./coders/fixed-bytes.js\";\nimport { NullCoder } from \"./coders/null.js\";\nimport { NumberCoder } from \"./coders/number.js\";\nimport { StringCoder } from \"./coders/string.js\";\nimport { TupleCoder } from \"./coders/tuple.js\";\nimport { ParamType } from \"./fragments.js\";\nconst paramTypeBytes = new RegExp(/^bytes([0-9]*)$/);\nconst paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/);\nexport class AbiCoder {\n constructor() {\n _AbiCoder_instances.add(this);\n }\n getDefaultValue(types) {\n const coders = types.map((type) => __classPrivateFieldGet(this, _AbiCoder_instances, \"m\", _AbiCoder_getCoder).call(this, ParamType.from(type)));\n const coder = new TupleCoder(coders, \"_\");\n return coder.defaultValue();\n }\n encode(types, values) {\n logger.assertArgumentCount(values.length, types.length, \"types/values length mismatch\");\n const coders = types.map((type) => __classPrivateFieldGet(this, _AbiCoder_instances, \"m\", _AbiCoder_getCoder).call(this, ParamType.from(type)));\n const coder = (new TupleCoder(coders, \"_\"));\n const writer = new Writer();\n coder.encode(writer, values);\n return writer.data;\n }\n decode(types, data, loose) {\n const coders = types.map((type) => __classPrivateFieldGet(this, _AbiCoder_instances, \"m\", _AbiCoder_getCoder).call(this, ParamType.from(type)));\n const coder = new TupleCoder(coders, \"_\");\n return coder.decode(new Reader(data, loose));\n }\n}\n_AbiCoder_instances = new WeakSet(), _AbiCoder_getCoder = function _AbiCoder_getCoder(param) {\n if (param.isArray()) {\n return new ArrayCoder(__classPrivateFieldGet(this, _AbiCoder_instances, \"m\", _AbiCoder_getCoder).call(this, param.arrayChildren), param.arrayLength, param.name);\n }\n if (param.isTuple()) {\n return new TupleCoder(param.components.map((c) => __classPrivateFieldGet(this, _AbiCoder_instances, \"m\", _AbiCoder_getCoder).call(this, c)), param.name);\n }\n switch (param.baseType) {\n case \"address\":\n return new AddressCoder(param.name);\n case \"bool\":\n return new BooleanCoder(param.name);\n case \"string\":\n return new StringCoder(param.name);\n case \"bytes\":\n return new BytesCoder(param.name);\n case \"\":\n return new NullCoder(param.name);\n }\n // u?int[0-9]*\n let match = param.type.match(paramTypeNumber);\n if (match) {\n let size = parseInt(match[2] || \"256\");\n if (size === 0 || size > 256 || (size % 8) !== 0) {\n logger.throwArgumentError(\"invalid \" + match[1] + \" bit length\", \"param\", param);\n }\n return new NumberCoder(size / 8, (match[1] === \"int\"), param.name);\n }\n // bytes[0-9]+\n match = param.type.match(paramTypeBytes);\n if (match) {\n let size = parseInt(match[1]);\n if (size === 0 || size > 32) {\n logger.throwArgumentError(\"invalid bytes length\", \"param\", param);\n }\n return new FixedBytesCoder(size, param.name);\n }\n return logger.throwArgumentError(\"invalid type\", \"type\", param.type);\n};\nexport const defaultAbiCoder = new AbiCoder();\n//# sourceMappingURL=abi-coder.js.map","import { keccak256 } from \"@ethersproject/crypto\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nexport function id(value) {\n return keccak256(toUtf8Bytes(value));\n}\n//# sourceMappingURL=id.js.map","export const version = \"@ethersproject/hash@6.0.0-beta.3\";\n//# sourceMappingURL=_version.js.map","import { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version.js\";\nexport const logger = new Logger(version);\n//# sourceMappingURL=logger.js.map","import { concat, hexlify } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/crypto\";\nimport { nameprep, toUtf8Bytes } from \"@ethersproject/strings\";\nimport { logger } from \"./logger.js\";\nconst Zeros = new Uint8Array(32);\nZeros.fill(0);\nconst Partition = new RegExp(\"^((.*)\\\\.)?([^.]+)$\");\nexport function isValidName(name) {\n try {\n const comps = name.split(\".\");\n for (let i = 0; i < comps.length; i++) {\n if (nameprep(comps[i]).length === 0) {\n throw new Error(\"empty\");\n }\n }\n return true;\n }\n catch (error) { }\n return false;\n}\nexport function namehash(name) {\n if (typeof (name) !== \"string\") {\n logger.throwArgumentError(\"invalid ENS name; not a string\", \"name\", name);\n }\n let current = name;\n let result = Zeros;\n while (current.length) {\n const partition = current.match(Partition);\n if (partition == null || partition[2] === \"\") {\n return logger.throwArgumentError(\"invalid ENS name; missing component\", \"name\", name);\n }\n const label = toUtf8Bytes(nameprep(partition[3]));\n result = keccak256(concat([result, keccak256(label)]));\n current = partition[2] || \"\";\n }\n return hexlify(result);\n}\nexport function dnsEncode(name) {\n if (typeof (name) !== \"string\") {\n logger.throwArgumentError(\"invalid DNS name; not a string\", \"name\", name);\n }\n if (name === \"\") {\n return \"0x00\";\n }\n // @TODO: should we enforce the 255 octet limit?\n return concat(name.split(\".\").map((comp) => {\n if (comp === \"\") {\n logger.throwArgumentError(\"invalid DNS name; missing component\", \"name\", name);\n }\n // We jam in an _ prefix to fill in with the length later\n // Note: Nameprep throws if the component is over 63 bytes\n const bytes = toUtf8Bytes(\"_\" + nameprep(comp));\n bytes[0] = bytes.length - 1;\n return bytes;\n })) + \"00\";\n}\n//# sourceMappingURL=namehash.js.map","import { concat } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/crypto\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nexport const messagePrefix = \"\\x19Ethereum Signed Message:\\n\";\nexport function hashMessage(message) {\n if (typeof (message) === \"string\") {\n message = toUtf8Bytes(message);\n }\n return keccak256(concat([\n toUtf8Bytes(messagePrefix),\n toUtf8Bytes(String(message.length)),\n message\n ]));\n}\n//# sourceMappingURL=message.js.map","var __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 _TypedDataEncoder_instances, _TypedDataEncoder_types, _TypedDataEncoder_fullTypes, _TypedDataEncoder_encoderCache, _TypedDataEncoder_getEncoder;\n//import { TypedDataDomain, TypedDataField } from \"@ethersproject/providerabstract-signer\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { arrayify, concat, hexlify, zeroPadValue, isHexString } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/crypto\";\nimport { defineProperties } from \"@ethersproject/properties\";\nimport { mask, toHex, toTwos } from \"@ethersproject/math\";\nimport { id } from \"./id.js\";\nimport { logger } from \"./logger.js\";\nconst padding = new Uint8Array(32);\npadding.fill(0);\nconst BN__1 = BigInt(-1);\nconst BN_0 = BigInt(0);\nconst BN_1 = BigInt(1);\nconst BN_MAX_UINT256 = BigInt(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\");\n;\n;\nfunction hexPadRight(value) {\n const bytes = arrayify(value);\n const padOffset = bytes.length % 32;\n if (padOffset) {\n return concat([bytes, padding.slice(padOffset)]);\n }\n return hexlify(bytes);\n}\nconst hexTrue = toHex(BN_1, 32);\nconst hexFalse = toHex(BN_0, 32);\nconst domainFieldTypes = {\n name: \"string\",\n version: \"string\",\n chainId: \"uint256\",\n verifyingContract: \"address\",\n salt: \"bytes32\"\n};\nconst domainFieldNames = [\n \"name\", \"version\", \"chainId\", \"verifyingContract\", \"salt\"\n];\nfunction checkString(key) {\n return function (value) {\n if (typeof (value) !== \"string\") {\n logger.throwArgumentError(`invalid domain value for ${JSON.stringify(key)}`, `domain.${key}`, value);\n }\n return value;\n };\n}\nconst domainChecks = {\n name: checkString(\"name\"),\n version: checkString(\"version\"),\n chainId: function (value) {\n return logger.getBigInt(value, \"domain.chainId\");\n },\n verifyingContract: function (value) {\n try {\n return getAddress(value).toLowerCase();\n }\n catch (error) { }\n return logger.throwArgumentError(`invalid domain value \"verifyingContract\"`, \"domain.verifyingContract\", value);\n },\n salt: function (value) {\n const bytes = logger.getBytes(value, \"domain.salt\");\n if (bytes.length !== 32) {\n logger.throwArgumentError(`invalid domain value \"salt\"`, \"domain.salt\", value);\n }\n return hexlify(bytes);\n }\n};\nfunction getBaseEncoder(type) {\n // intXX and uintXX\n {\n const match = type.match(/^(u?)int(\\d*)$/);\n if (match) {\n const signed = (match[1] === \"\");\n const width = parseInt(match[2] || \"256\");\n if (width % 8 !== 0 || width > 256 || (match[2] && match[2] !== String(width))) {\n logger.throwArgumentError(\"invalid numeric width\", \"type\", type);\n }\n const boundsUpper = mask(BN_MAX_UINT256, signed ? (width - 1) : width);\n const boundsLower = signed ? ((boundsUpper + BN_1) * BN__1) : BN_0;\n return function (_value) {\n const value = logger.getBigInt(_value, \"value\");\n if (value < boundsLower || value > boundsUpper) {\n logger.throwArgumentError(`value out-of-bounds for ${type}`, \"value\", value);\n }\n return toHex(toTwos(value, 256), 32);\n };\n }\n }\n // bytesXX\n {\n const match = type.match(/^bytes(\\d+)$/);\n if (match) {\n const width = parseInt(match[1]);\n if (width === 0 || width > 32 || match[1] !== String(width)) {\n logger.throwArgumentError(\"invalid bytes width\", \"type\", type);\n }\n return function (value) {\n const bytes = arrayify(value);\n if (bytes.length !== width) {\n logger.throwArgumentError(`invalid length for ${type}`, \"value\", value);\n }\n return hexPadRight(value);\n };\n }\n }\n switch (type) {\n case \"address\": return function (value) {\n return zeroPadValue(getAddress(value), 32);\n };\n case \"bool\": return function (value) {\n return ((!value) ? hexFalse : hexTrue);\n };\n case \"bytes\": return function (value) {\n return keccak256(value);\n };\n case \"string\": return function (value) {\n return id(value);\n };\n }\n return null;\n}\nfunction encodeType(name, fields) {\n return `${name}(${fields.map(({ name, type }) => (type + \" \" + name)).join(\",\")})`;\n}\nexport class TypedDataEncoder {\n constructor(types) {\n _TypedDataEncoder_instances.add(this);\n _TypedDataEncoder_types.set(this, void 0);\n _TypedDataEncoder_fullTypes.set(this, void 0);\n _TypedDataEncoder_encoderCache.set(this, void 0);\n __classPrivateFieldSet(this, _TypedDataEncoder_types, JSON.stringify(types), \"f\");\n __classPrivateFieldSet(this, _TypedDataEncoder_fullTypes, new Map(), \"f\");\n __classPrivateFieldSet(this, _TypedDataEncoder_encoderCache, new Map(), \"f\");\n // Link struct types to their direct child structs\n const links = new Map();\n // Link structs to structs which contain them as a child\n const parents = new Map();\n // Link all subtypes within a given struct\n const subtypes = new Map();\n Object.keys(types).forEach((type) => {\n links.set(type, new Set());\n parents.set(type, []);\n subtypes.set(type, new Set());\n });\n for (const name in types) {\n const uniqueNames = new Set();\n for (const field of types[name]) {\n // Check each field has a unique name\n if (uniqueNames.has(field.name)) {\n logger.throwArgumentError(`duplicate variable name ${JSON.stringify(field.name)} in ${JSON.stringify(name)}`, \"types\", types);\n }\n uniqueNames.add(field.name);\n // Get the base type (drop any array specifiers)\n const baseType = (field.type.match(/^([^\\x5b]*)(\\x5b|$)/))[1] || null;\n if (baseType === name) {\n logger.throwArgumentError(`circular type reference to ${JSON.stringify(baseType)}`, \"types\", types);\n }\n // Is this a base encoding type?\n const encoder = getBaseEncoder(baseType);\n if (encoder) {\n continue;\n }\n if (!parents.has(baseType)) {\n logger.throwArgumentError(`unknown type ${JSON.stringify(baseType)}`, \"types\", types);\n }\n // Add linkage\n parents.get(baseType).push(name);\n links.get(name).add(baseType);\n }\n }\n // Deduce the primary type\n const primaryTypes = Array.from(parents.keys()).filter((n) => (parents.get(n).length === 0));\n if (primaryTypes.length === 0) {\n logger.throwArgumentError(\"missing primary type\", \"types\", types);\n }\n else if (primaryTypes.length > 1) {\n logger.throwArgumentError(`ambiguous primary types or unused types: ${primaryTypes.map((t) => (JSON.stringify(t))).join(\", \")}`, \"types\", types);\n }\n defineProperties(this, { primaryType: primaryTypes[0] });\n // Check for circular type references\n function checkCircular(type, found) {\n if (found.has(type)) {\n logger.throwArgumentError(`circular type reference to ${JSON.stringify(type)}`, \"types\", types);\n }\n found.add(type);\n for (const child of links.get(type)) {\n if (!parents.has(child)) {\n continue;\n }\n // Recursively check children\n checkCircular(child, found);\n // Mark all ancestors as having this decendant\n for (const subtype of found) {\n subtypes.get(subtype).add(child);\n }\n }\n found.delete(type);\n }\n checkCircular(this.primaryType, new Set());\n // Compute each fully describe type\n for (const [name, set] of subtypes) {\n const st = Array.from(set);\n st.sort();\n __classPrivateFieldGet(this, _TypedDataEncoder_fullTypes, \"f\").set(name, encodeType(name, types[name]) + st.map((t) => encodeType(t, types[t])).join(\"\"));\n }\n }\n get types() {\n return JSON.parse(__classPrivateFieldGet(this, _TypedDataEncoder_types, \"f\"));\n }\n getEncoder(type) {\n let encoder = __classPrivateFieldGet(this, _TypedDataEncoder_encoderCache, \"f\").get(type);\n if (!encoder) {\n encoder = __classPrivateFieldGet(this, _TypedDataEncoder_instances, \"m\", _TypedDataEncoder_getEncoder).call(this, type);\n __classPrivateFieldGet(this, _TypedDataEncoder_encoderCache, \"f\").set(type, encoder);\n }\n return encoder;\n }\n encodeType(name) {\n const result = __classPrivateFieldGet(this, _TypedDataEncoder_fullTypes, \"f\").get(name);\n if (!result) {\n return logger.throwArgumentError(`unknown type: ${JSON.stringify(name)}`, \"name\", name);\n }\n return result;\n }\n encodeData(type, value) {\n return this.getEncoder(type)(value);\n }\n hashStruct(name, value) {\n return keccak256(this.encodeData(name, value));\n }\n encode(value) {\n return this.encodeData(this.primaryType, value);\n }\n hash(value) {\n return this.hashStruct(this.primaryType, value);\n }\n _visit(type, value, callback) {\n // Basic encoder type (address, bool, uint256, etc)\n {\n const encoder = getBaseEncoder(type);\n if (encoder) {\n return callback(type, value);\n }\n }\n // Array\n const match = type.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);\n if (match) {\n const subtype = match[1];\n const length = parseInt(match[3]);\n if (length >= 0 && value.length !== length) {\n logger.throwArgumentError(\"array length mismatch; expected length ${ arrayLength }\", \"value\", value);\n }\n return value.map((v) => this._visit(subtype, v, callback));\n }\n // Struct\n const fields = this.types[type];\n if (fields) {\n return fields.reduce((accum, { name, type }) => {\n accum[name] = this._visit(type, value[name], callback);\n return accum;\n }, {});\n }\n return logger.throwArgumentError(`unknown type: ${type}`, \"type\", type);\n }\n visit(value, callback) {\n return this._visit(this.primaryType, value, callback);\n }\n static from(types) {\n return new TypedDataEncoder(types);\n }\n static getPrimaryType(types) {\n return TypedDataEncoder.from(types).primaryType;\n }\n static hashStruct(name, types, value) {\n return TypedDataEncoder.from(types).hashStruct(name, value);\n }\n static hashDomain(domain) {\n const domainFields = [];\n for (const name in domain) {\n const type = domainFieldTypes[name];\n if (!type) {\n logger.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(name)}`, \"domain\", domain);\n }\n domainFields.push({ name, type });\n }\n domainFields.sort((a, b) => {\n return domainFieldNames.indexOf(a.name) - domainFieldNames.indexOf(b.name);\n });\n return TypedDataEncoder.hashStruct(\"EIP712Domain\", { EIP712Domain: domainFields }, domain);\n }\n static encode(domain, types, value) {\n return concat([\n \"0x1901\",\n TypedDataEncoder.hashDomain(domain),\n TypedDataEncoder.from(types).hash(value)\n ]);\n }\n static hash(domain, types, value) {\n return keccak256(TypedDataEncoder.encode(domain, types, value));\n }\n // Replaces all address types with ENS names with their looked up address\n static async resolveNames(domain, types, value, resolveName) {\n // Make a copy to isolate it from the object passed in\n domain = Object.assign({}, domain);\n // Look up all ENS names\n const ensCache = {};\n // Do we need to look up the domain's verifyingContract?\n if (domain.verifyingContract && !isHexString(domain.verifyingContract, 20)) {\n ensCache[domain.verifyingContract] = \"0x\";\n }\n // We are going to use the encoder to visit all the base values\n const encoder = TypedDataEncoder.from(types);\n // Get a list of all the addresses\n encoder.visit(value, (type, value) => {\n if (type === \"address\" && !isHexString(value, 20)) {\n ensCache[value] = \"0x\";\n }\n return value;\n });\n // Lookup each name\n for (const name in ensCache) {\n ensCache[name] = await resolveName(name);\n }\n // Replace the domain verifyingContract if needed\n if (domain.verifyingContract && ensCache[domain.verifyingContract]) {\n domain.verifyingContract = ensCache[domain.verifyingContract];\n }\n // Replace all ENS names with their address\n value = encoder.visit(value, (type, value) => {\n if (type === \"address\" && ensCache[value]) {\n return ensCache[value];\n }\n return value;\n });\n return { domain, value };\n }\n static getPayload(domain, types, value) {\n // Validate the domain fields\n TypedDataEncoder.hashDomain(domain);\n // Derive the EIP712Domain Struct reference type\n const domainValues = {};\n const domainTypes = [];\n domainFieldNames.forEach((name) => {\n const value = domain[name];\n if (value == null) {\n return;\n }\n domainValues[name] = domainChecks[name](value);\n domainTypes.push({ name, type: domainFieldTypes[name] });\n });\n const encoder = TypedDataEncoder.from(types);\n const typesWithDomain = Object.assign({}, types);\n if (typesWithDomain.EIP712Domain) {\n logger.throwArgumentError(\"types must not contain EIP712Domain type\", \"types.EIP712Domain\", types);\n }\n else {\n typesWithDomain.EIP712Domain = domainTypes;\n }\n // Validate the data structures and types\n encoder.encode(value);\n return {\n types: typesWithDomain,\n domain: domainValues,\n primaryType: encoder.primaryType,\n message: encoder.visit(value, (type, value) => {\n // bytes\n if (type.match(/^bytes(\\d*)/)) {\n return hexlify(logger.getBytes(value));\n }\n // uint or int\n if (type.match(/^u?int/)) {\n return logger.getBigInt(value).toString();\n }\n switch (type) {\n case \"address\":\n return value.toLowerCase();\n case \"bool\":\n return !!value;\n case \"string\":\n if (typeof (value) !== \"string\") {\n logger.throwArgumentError(`invalid string`, \"value\", value);\n }\n return value;\n }\n return logger.throwArgumentError(\"unsupported type\", \"type\", type);\n })\n };\n }\n}\n_TypedDataEncoder_types = new WeakMap(), _TypedDataEncoder_fullTypes = new WeakMap(), _TypedDataEncoder_encoderCache = new WeakMap(), _TypedDataEncoder_instances = new WeakSet(), _TypedDataEncoder_getEncoder = function _TypedDataEncoder_getEncoder(type) {\n // Basic encoder type (address, bool, uint256, etc)\n {\n const encoder = getBaseEncoder(type);\n if (encoder) {\n return encoder;\n }\n }\n // Array\n const match = type.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);\n if (match) {\n const subtype = match[1];\n const subEncoder = this.getEncoder(subtype);\n const length = parseInt(match[3]);\n return (value) => {\n if (length >= 0 && value.length !== length) {\n logger.throwArgumentError(\"array length mismatch; expected length ${ arrayLength }\", \"value\", value);\n }\n let result = value.map(subEncoder);\n if (__classPrivateFieldGet(this, _TypedDataEncoder_fullTypes, \"f\").has(subtype)) {\n result = result.map(keccak256);\n }\n return keccak256(concat(result));\n };\n }\n // Struct\n const fields = this.types[type];\n if (fields) {\n const encodedType = id(__classPrivateFieldGet(this, _TypedDataEncoder_fullTypes, \"f\").get(type));\n return (value) => {\n const values = fields.map(({ name, type }) => {\n const result = this.getEncoder(type)(value[name]);\n if (__classPrivateFieldGet(this, _TypedDataEncoder_fullTypes, \"f\").has(type)) {\n return keccak256(result);\n }\n return result;\n });\n values.unshift(encodedType);\n return concat(values);\n };\n }\n return logger.throwArgumentError(`unknown type: ${type}`, \"type\", type);\n};\n//# sourceMappingURL=typed-data.js.map","var __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 _Interface_instances, _Interface_errors, _Interface_events, _Interface_functions, _Interface_abiCoder, _Interface_getFunction, _Interface_getEvent;\nimport { arrayify, concat, dataSlice, hexlify, zeroPadValue, isHexString } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/crypto\";\nimport { id } from \"@ethersproject/hash\";\nimport { defineProperties } from \"@ethersproject/properties\";\nimport { defaultAbiCoder } from \"./abi-coder.js\";\nimport { checkResultErrors, Result } from \"./coders/abstract-coder.js\";\nimport { ConstructorFragment, ErrorFragment, EventFragment, FormatType, Fragment, FunctionFragment, ParamType } from \"./fragments.js\";\nimport { logger } from \"./logger.js\";\nimport { Typed } from \"./typed.js\";\nexport { checkResultErrors, Result };\nexport class LogDescription {\n constructor(fragment, topic, args) {\n const name = fragment.name, signature = fragment.format();\n defineProperties(this, {\n fragment, name, signature, topic, args\n });\n }\n}\nexport class TransactionDescription {\n constructor(fragment, selector, args, value) {\n const name = fragment.name, signature = fragment.format();\n defineProperties(this, {\n fragment, name, args, signature, selector, value\n });\n }\n}\nexport class ErrorDescription {\n constructor(fragment, selector, args) {\n const name = fragment.name, signature = fragment.format();\n defineProperties(this, {\n fragment, name, args, signature, selector\n });\n }\n}\nexport class Indexed {\n constructor(hash) {\n defineProperties(this, { hash, _isIndexed: true });\n }\n static isIndexed(value) {\n return !!(value && value._isIndexed);\n }\n}\n// https://docs.soliditylang.org/en/v0.8.13/control-structures.html?highlight=panic#panic-via-assert-and-error-via-require\nconst PanicReasons = {\n \"0\": \"generic panic\",\n \"1\": \"assert(false)\",\n \"17\": \"arithmetic overflow\",\n \"18\": \"division or modulo by zero\",\n \"33\": \"enum overflow\",\n \"34\": \"invalid encoded storage byte array accessed\",\n \"49\": \"out-of-bounds array access; popping on an empty array\",\n \"50\": \"out-of-bounds access of an array or bytesN\",\n \"65\": \"out of memory\",\n \"81\": \"uninitialized function\",\n};\nconst BuiltinErrors = {\n \"0x08c379a0\": {\n signature: \"Error(string)\",\n name: \"Error\",\n inputs: [\"string\"],\n reason: (message) => {\n return `reverted with reason string ${JSON.stringify(message)}`;\n }\n },\n \"0x4e487b71\": {\n signature: \"Panic(uint256)\",\n name: \"Panic\",\n inputs: [\"uint256\"],\n reason: (code) => {\n let reason = \"unknown panic code\";\n if (code >= 0 && code <= 0xff && PanicReasons[code.toString()]) {\n reason = PanicReasons[code.toString()];\n }\n return `reverted with panic code 0x${code.toString(16)} (${reason})`;\n }\n }\n};\nexport class Interface {\n constructor(fragments) {\n _Interface_instances.add(this);\n _Interface_errors.set(this, void 0);\n _Interface_events.set(this, void 0);\n _Interface_functions.set(this, void 0);\n // #structs: Map<string, StructFragment>;\n _Interface_abiCoder.set(this, void 0);\n let abi = [];\n if (typeof (fragments) === \"string\") {\n abi = JSON.parse(fragments);\n }\n else {\n abi = fragments;\n }\n __classPrivateFieldSet(this, _Interface_functions, new Map(), \"f\");\n __classPrivateFieldSet(this, _Interface_errors, new Map(), \"f\");\n __classPrivateFieldSet(this, _Interface_events, new Map(), \"f\");\n // this.#structs = new Map();\n defineProperties(this, {\n fragments: Object.freeze(abi.map((f) => Fragment.from(f)).filter((f) => (f != null))),\n });\n __classPrivateFieldSet(this, _Interface_abiCoder, this.getAbiCoder(), \"f\");\n // Add all fragments by their signature\n this.fragments.forEach((fragment) => {\n let bucket;\n switch (fragment.type) {\n case \"constructor\":\n if (this.deploy) {\n logger.warn(\"duplicate definition - constructor\");\n return;\n }\n //checkNames(fragment, \"input\", fragment.inputs);\n defineProperties(this, { deploy: fragment });\n return;\n case \"function\":\n //checkNames(fragment, \"input\", fragment.inputs);\n //checkNames(fragment, \"output\", (<FunctionFragment>fragment).outputs);\n bucket = __classPrivateFieldGet(this, _Interface_functions, \"f\");\n break;\n case \"event\":\n //checkNames(fragment, \"input\", fragment.inputs);\n bucket = __classPrivateFieldGet(this, _Interface_events, \"f\");\n break;\n case \"error\":\n bucket = __classPrivateFieldGet(this, _Interface_errors, \"f\");\n break;\n default:\n return;\n }\n const signature = fragment.format();\n if (bucket.has(signature)) {\n logger.warn(\"duplicate definition - \" + signature);\n return;\n }\n bucket.set(signature, fragment);\n });\n // If we do not have a constructor add a default\n if (!this.deploy) {\n defineProperties(this, {\n deploy: ConstructorFragment.fromString(\"constructor()\")\n });\n }\n }\n // @TODO: multi sig?\n format(format) {\n if (!format) {\n format = FormatType.full;\n }\n if (format === FormatType.sighash) {\n logger.throwArgumentError(\"interface does not support formatting sighash\", \"format\", format);\n }\n const abi = this.fragments.map((f) => f.format(format));\n // We need to re-bundle the JSON fragments a bit\n if (format === FormatType.json) {\n return JSON.stringify(abi.map((j) => JSON.parse(j)));\n }\n return abi;\n }\n getAbiCoder() {\n return defaultAbiCoder;\n }\n getFunctionName(key) {\n return (__classPrivateFieldGet(this, _Interface_instances, \"m\", _Interface_getFunction).call(this, key, null, false)).name;\n }\n getFunction(key, values) {\n return __classPrivateFieldGet(this, _Interface_instances, \"m\", _Interface_getFunction).call(this, key, values || null, true);\n }\n getEventName(key) {\n return (__classPrivateFieldGet(this, _Interface_instances, \"m\", _Interface_getEvent).call(this, key, null, false)).name;\n }\n getEvent(key, values) {\n return __classPrivateFieldGet(this, _Interface_instances, \"m\", _Interface_getEvent).call(this, key, values || null, true);\n }\n // Find a function definition by any means necessary (unless it is ambiguous)\n getError(key, values) {\n if (isHexString(key)) {\n const selector = key.toLowerCase();\n for (const fragment of __classPrivateFieldGet(this, _Interface_errors, \"f\").values()) {\n if (selector === this.getSelector(fragment)) {\n return fragment;\n }\n }\n logger.throwArgumentError(\"no matching error\", \"selector\", key);\n }\n // It is a bare name, look up the function (will return null if ambiguous)\n if (key.indexOf(\"(\") === -1) {\n const matching = [];\n for (const [name, fragment] of __classPrivateFieldGet(this, _Interface_errors, \"f\")) {\n if (name.split(\"(\" /* fix:) */)[0] === key) {\n matching.push(fragment);\n }\n }\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching error\", \"name\", key);\n }\n else if (matching.length > 1) {\n // @TODO: refine by Typed\n logger.throwArgumentError(\"multiple matching errors\", \"name\", key);\n }\n return matching[0];\n }\n // Normalize the signature and lookup the function\n const result = __classPrivateFieldGet(this, _Interface_errors, \"f\").get(ErrorFragment.fromString(key).format());\n if (result) {\n return result;\n }\n return logger.throwArgumentError(\"no matching error\", \"signature\", key);\n }\n // Get the 4-byte selector used by Solidity to identify a function\n getSelector(fragment) {\n /*\n if (typeof(fragment) === \"string\") {\n const matches: Array<Fragment> = [ ];\n\n try { matches.push(this.getFunction(fragment)); } catch (error) { }\n try { matches.push(this.getError(<string>fragment)); } catch (_) { }\n\n if (matches.length === 0) {\n logger.throwArgumentError(\"unknown fragment\", \"key\", fragment);\n } else if (matches.length > 1) {\n logger.throwArgumentError(\"ambiguous fragment matches function and error\", \"key\", fragment);\n }\n\n fragment = matches[0];\n }\n */\n return dataSlice(id(fragment.format()), 0, 4);\n }\n // Get the 32-byte topic hash used by Solidity to identify an event\n getEventTopic(fragment) {\n //if (typeof(fragment) === \"string\") { fragment = this.getEvent(eventFragment); }\n return id(fragment.format());\n }\n _decodeParams(params, data) {\n return __classPrivateFieldGet(this, _Interface_abiCoder, \"f\").decode(params, data);\n }\n _encodeParams(params, values) {\n return __classPrivateFieldGet(this, _Interface_abiCoder, \"f\").encode(params, values);\n }\n encodeDeploy(values) {\n return this._encodeParams(this.deploy.inputs, values || []);\n }\n decodeErrorResult(fragment, data) {\n if (typeof (fragment) === \"string\") {\n fragment = this.getError(fragment);\n }\n if (dataSlice(data, 0, 4) !== this.getSelector(fragment)) {\n logger.throwArgumentError(`data signature does not match error ${fragment.name}.`, \"data\", data);\n }\n return this._decodeParams(fragment.inputs, dataSlice(data, 4));\n }\n encodeErrorResult(fragment, values) {\n if (typeof (fragment) === \"string\") {\n fragment = this.getError(fragment);\n }\n return concat([\n this.getSelector(fragment),\n this._encodeParams(fragment.inputs, values || [])\n ]);\n }\n // Decode the data for a function call (e.g. tx.data)\n decodeFunctionData(fragment, data) {\n if (typeof (fragment) === \"string\") {\n fragment = this.getFunction(fragment);\n }\n if (dataSlice(data, 0, 4) !== this.getSelector(fragment)) {\n logger.throwArgumentError(`data signature does not match function ${fragment.name}.`, \"data\", data);\n }\n return this._decodeParams(fragment.inputs, dataSlice(data, 4));\n }\n // Encode the data for a function call (e.g. tx.data)\n encodeFunctionData(fragment, values) {\n if (typeof (fragment) === \"string\") {\n fragment = this.getFunction(fragment);\n }\n return concat([\n this.getSelector(fragment),\n this._encodeParams(fragment.inputs, values || [])\n ]);\n }\n // Decode the result from a function call (e.g. from eth_call)\n decodeFunctionResult(fragment, data) {\n if (typeof (fragment) === \"string\") {\n fragment = this.getFunction(fragment);\n }\n let message = \"invalid length for result data\";\n const bytes = arrayify(data);\n if ((bytes.length % 32) === 0) {\n try {\n return __classPrivateFieldGet(this, _Interface_abiCoder, \"f\").decode(fragment.outputs, bytes);\n }\n catch (error) {\n message = \"could not decode result data\";\n }\n }\n // Call returned data with no error, but the data is junk\n return logger.throwError(message, \"BAD_DATA\", {\n value: hexlify(bytes),\n info: { method: fragment.name, signature: fragment.format() }\n });\n }\n makeError(fragment, _data, tx) {\n if (typeof (fragment) === \"string\") {\n fragment = this.getFunction(fragment);\n }\n const data = logger.getBytes(_data);\n let args = undefined;\n if (tx) {\n try {\n args = __classPrivateFieldGet(this, _Interface_abiCoder, \"f\").decode(fragment.inputs, tx.data || \"0x\");\n }\n catch (error) {\n console.log(error);\n }\n }\n let errorArgs = undefined;\n let errorName = undefined;\n let errorSignature = undefined;\n let reason = \"unknown reason\";\n if (data.length === 0) {\n reason = \"missing error reason\";\n }\n else if ((data.length % 32) === 4) {\n const selector = hexlify(data.slice(0, 4));\n const builtin = BuiltinErrors[selector];\n if (builtin) {\n try {\n errorName = builtin.name;\n errorSignature = builtin.signature;\n errorArgs = __classPrivateFieldGet(this, _Interface_abiCoder, \"f\").decode(builtin.inputs, data.slice(4));\n reason = builtin.reason(...errorArgs);\n }\n catch (error) {\n console.log(error); // @TODO: remove\n }\n }\n else {\n reason = \"unknown custom error\";\n try {\n const error = this.getError(selector);\n errorName = error.name;\n errorSignature = error.format();\n reason = `custom error: ${errorSignature}`;\n try {\n errorArgs = __classPrivateFieldGet(this, _Interface_abiCoder, \"f\").decode(error.inputs, data.slice(4));\n }\n catch (error) {\n reason = `custom error: ${errorSignature} (coult not decode error data)`;\n }\n }\n catch (error) {\n console.log(error); // @TODO: remove\n }\n }\n }\n return logger.makeError(\"call revert exception\", \"CALL_EXCEPTION\", {\n data: hexlify(data), transaction: null,\n method: fragment.name, signature: fragment.format(), args,\n errorArgs, errorName, errorSignature, reason\n });\n }\n // Encode the result for a function call (e.g. for eth_call)\n encodeFunctionResult(functionFragment, values) {\n if (typeof (functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n return hexlify(__classPrivateFieldGet(this, _Interface_abiCoder, \"f\").encode(functionFragment.outputs, values || []));\n }\n /*\n spelunk(inputs: Array<ParamType>, values: ReadonlyArray<any>, processfunc: (type: string, value: any) => Promise<any>): Promise<Array<any>> {\n const promises: Array<Promise<>> = [ ];\n const process = function(type: ParamType, value: any): any {\n if (type.baseType === \"array\") {\n return descend(type.child\n }\n if (type. === \"address\") {\n }\n };\n \n const descend = function (inputs: Array<ParamType>, values: ReadonlyArray<any>) {\n if (inputs.length !== values.length) { throw new Error(\"length mismatch\"); }\n \n };\n \n const result: Array<any> = [ ];\n values.forEach((value, index) => {\n if (value == null) {\n topics.push(null);\n } else if (param.baseType === \"array\" || param.baseType === \"tuple\") {\n logger.throwArgumentError(\"filtering with tuples or arrays not supported\", (\"contract.\" + param.name), value);\n } else if (Array.isArray(value)) {\n topics.push(value.map((value) => encodeTopic(param, value)));\n } else {\n topics.push(encodeTopic(param, value));\n }\n });\n }\n */\n // Create the filter for the event with search criteria (e.g. for eth_filterLog)\n encodeFilterTopics(eventFragment, values) {\n if (typeof (eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n if (values.length > eventFragment.inputs.length) {\n logger.throwError(\"too many arguments for \" + eventFragment.format(), \"UNEXPECTED_ARGUMENT\", {\n count: values.length,\n expectedCount: eventFragment.inputs.length\n });\n }\n const topics = [];\n if (!eventFragment.anonymous) {\n topics.push(this.getEventTopic(eventFragment));\n }\n const encodeTopic = (param, value) => {\n if (param.type === \"string\") {\n return id(value);\n }\n else if (param.type === \"bytes\") {\n return keccak256(hexlify(value));\n }\n // Check addresses are valid\n if (param.type === \"address\") {\n __classPrivateFieldGet(this, _Interface_abiCoder, \"f\").encode([\"address\"], [value]);\n }\n return zeroPadValue(hexlify(value), 32);\n //@TOOD should probably be return toHex(value, 32)\n };\n values.forEach((value, index) => {\n const param = eventFragment.inputs[index];\n if (!param.indexed) {\n if (value != null) {\n logger.throwArgumentError(\"cannot filter non-indexed parameters; must be null\", (\"contract.\" + param.name), value);\n }\n return;\n }\n if (value == null) {\n topics.push(null);\n }\n else if (param.baseType === \"array\" || param.baseType === \"tuple\") {\n logger.throwArgumentError(\"filtering with tuples or arrays not supported\", (\"contract.\" + param.name), value);\n }\n else if (Array.isArray(value)) {\n topics.push(value.map((value) => encodeTopic(param, value)));\n }\n else {\n topics.push(encodeTopic(param, value));\n }\n });\n // Trim off trailing nulls\n while (topics.length && topics[topics.length - 1] === null) {\n topics.pop();\n }\n return topics;\n }\n encodeEventLog(eventFragment, values) {\n if (typeof (eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n const topics = [];\n const dataTypes = [];\n const dataValues = [];\n if (!eventFragment.anonymous) {\n topics.push(this.getEventTopic(eventFragment));\n }\n if (values.length !== eventFragment.inputs.length) {\n logger.throwArgumentError(\"event arguments/values mismatch\", \"values\", values);\n }\n eventFragment.inputs.forEach((param, index) => {\n const value = values[index];\n if (param.indexed) {\n if (param.type === \"string\") {\n topics.push(id(value));\n }\n else if (param.type === \"bytes\") {\n topics.push(keccak256(value));\n }\n else if (param.baseType === \"tuple\" || param.baseType === \"array\") {\n // @TODO\n throw new Error(\"not implemented\");\n }\n else {\n topics.push(__classPrivateFieldGet(this, _Interface_abiCoder, \"f\").encode([param.type], [value]));\n }\n }\n else {\n dataTypes.push(param);\n dataValues.push(value);\n }\n });\n return {\n data: __classPrivateFieldGet(this, _Interface_abiCoder, \"f\").encode(dataTypes, dataValues),\n topics: topics\n };\n }\n // Decode a filter for the event and the search criteria\n decodeEventLog(eventFragment, data, topics) {\n if (typeof (eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n if (topics != null && !eventFragment.anonymous) {\n const eventTopic = this.getEventTopic(eventFragment);\n if (!isHexString(topics[0], 32) || topics[0].toLowerCase() !== eventTopic) {\n logger.throwArgumentError(\"fragment/topic mismatch\", \"topics[0]\", topics[0]);\n }\n topics = topics.slice(1);\n }\n const indexed = [];\n const nonIndexed = [];\n const dynamic = [];\n eventFragment.inputs.forEach((param, index) => {\n if (param.indexed) {\n if (param.type === \"string\" || param.type === \"bytes\" || param.baseType === \"tuple\" || param.baseType === \"array\") {\n indexed.push(ParamType.fromObject({ type: \"bytes32\", name: param.name }));\n dynamic.push(true);\n }\n else {\n indexed.push(param);\n dynamic.push(false);\n }\n }\n else {\n nonIndexed.push(param);\n dynamic.push(false);\n }\n });\n const resultIndexed = (topics != null) ? __classPrivateFieldGet(this, _Interface_abiCoder, \"f\").decode(indexed, concat(topics)) : null;\n const resultNonIndexed = __classPrivateFieldGet(this, _Interface_abiCoder, \"f\").decode(nonIndexed, data, true);\n //const result: (Array<any> & { [ key: string ]: any }) = [ ];\n const values = [];\n const keys = [];\n let nonIndexedIndex = 0, indexedIndex = 0;\n eventFragment.inputs.forEach((param, index) => {\n let value = null;\n if (param.indexed) {\n if (resultIndexed == null) {\n value = new Indexed(null);\n }\n else if (dynamic[index]) {\n value = new Indexed(resultIndexed[indexedIndex++]);\n }\n else {\n try {\n value = resultIndexed[indexedIndex++];\n }\n catch (error) {\n value = error;\n }\n }\n }\n else {\n try {\n value = resultNonIndexed[nonIndexedIndex++];\n }\n catch (error) {\n value = error;\n }\n }\n values.push(value);\n keys.push(param.name || null);\n });\n return Result.fromItems(values, keys);\n }\n // Given a transaction, find the matching function fragment (if any) and\n // determine all its properties and call parameters\n parseTransaction(tx) {\n const data = logger.getBytes(tx.data, \"tx.data\");\n const value = logger.getBigInt((tx.value != null) ? tx.value : 0, \"tx.value\");\n const fragment = this.getFunction(hexlify(data.slice(0, 4)));\n if (!fragment) {\n return null;\n }\n const args = __classPrivateFieldGet(this, _Interface_abiCoder, \"f\").decode(fragment.inputs, data.slice(4));\n return new TransactionDescription(fragment, this.getSelector(fragment), args, value);\n }\n // @TODO\n //parseCallResult(data: BytesLike): ??\n // Given an event log, find the matching event fragment (if any) and\n // determine all its properties and values\n parseLog(log) {\n const fragment = this.getEvent(log.topics[0]);\n if (!fragment || fragment.anonymous) {\n return null;\n }\n // @TODO: If anonymous, and the only method, and the input count matches, should we parse?\n // Probably not, because just because it is the only event in the ABI does\n // not mean we have the full ABI; maybe just a fragment?\n return new LogDescription(fragment, this.getEventTopic(fragment), this.decodeEventLog(fragment, log.data, log.topics));\n }\n parseError(data) {\n const hexData = hexlify(data);\n const fragment = this.getError(dataSlice(hexData, 0, 4));\n if (!fragment) {\n return null;\n }\n const args = __classPrivateFieldGet(this, _Interface_abiCoder, \"f\").decode(fragment.inputs, dataSlice(hexData, 4));\n return new ErrorDescription(fragment, this.getSelector(fragment), args);\n }\n static from(value) {\n // Already an Interface, which is immutable\n if (value instanceof Interface) {\n return value;\n }\n // JSON\n if (typeof (value) === \"string\") {\n return new Interface(JSON.parse(value));\n }\n // Maybe an interface from an older version, or from a symlinked copy\n if (typeof (value.format) === \"function\") {\n return new Interface(value.format(FormatType.json));\n }\n // Array of fragments\n return new Interface(value);\n }\n}\n_Interface_errors = new WeakMap(), _Interface_events = new WeakMap(), _Interface_functions = new WeakMap(), _Interface_abiCoder = new WeakMap(), _Interface_instances = new WeakSet(), _Interface_getFunction = function _Interface_getFunction(key, values, forceUnique) {\n // Selector\n if (isHexString(key)) {\n const selector = key.toLowerCase();\n for (const fragment of __classPrivateFieldGet(this, _Interface_functions, \"f\").values()) {\n if (selector === this.getSelector(fragment)) {\n return fragment;\n }\n }\n logger.throwArgumentError(\"no matching function\", \"selector\", key);\n }\n // It is a bare name, look up the function (will return null if ambiguous)\n if (key.indexOf(\"(\") === -1) {\n const matching = [];\n for (const [name, fragment] of __classPrivateFieldGet(this, _Interface_functions, \"f\")) {\n if (name.split(\"(\" /* fix:) */)[0] === key) {\n matching.push(fragment);\n }\n }\n if (values) {\n const lastValue = (values.length > 0) ? values[values.length - 1] : null;\n let valueLength = values.length;\n let allowOptions = true;\n if (Typed.isTyped(lastValue) && lastValue.type === \"overrides\") {\n allowOptions = false;\n valueLength--;\n }\n // Remove all matches that don't have a compatible length. The args\n // may contain an overrides, so the match may have n or n - 1 parameters\n for (let i = matching.length - 1; i >= 0; i--) {\n const inputs = matching[i].inputs.length;\n if (inputs !== valueLength && (!allowOptions || inputs !== valueLength - 1)) {\n matching.splice(i, 1);\n }\n }\n // Remove all matches that don't match the Typed signature\n for (let i = matching.length - 1; i >= 0; i--) {\n const inputs = matching[i].inputs;\n for (let j = 0; j < values.length; j++) {\n // Not a typed value\n if (!Typed.isTyped(values[j])) {\n continue;\n }\n // We are past the inputs\n if (j >= inputs.length) {\n if (values[j].type === \"overrides\") {\n continue;\n }\n matching.splice(i, 1);\n break;\n }\n // Make sure the value type matches the input type\n if (values[j].type !== inputs[j].baseType) {\n matching.splice(i, 1);\n break;\n }\n }\n }\n }\n // We found a single matching signature with an overrides, but the\n // last value is something that cannot possibly be an options\n if (matching.length === 1 && values && values.length !== matching[0].inputs.length) {\n const lastArg = values[values.length - 1];\n if (lastArg == null || Array.isArray(lastArg) || typeof (lastArg) !== \"object\") {\n matching.splice(0, 1);\n }\n }\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching function\", \"name\", key);\n }\n else if (matching.length > 1 && forceUnique) {\n const matchStr = matching.map((m) => JSON.stringify(m.format())).join(\", \");\n logger.throwArgumentError(`multiple matching functions (i.e. ${matchStr})`, \"name\", key);\n }\n return matching[0];\n }\n // Normalize the signature and lookup the function\n const result = __classPrivateFieldGet(this, _Interface_functions, \"f\").get(FunctionFragment.fromString(key).format());\n if (result) {\n return result;\n }\n return logger.throwArgumentError(\"no matching function\", \"signature\", key);\n}, _Interface_getEvent = function _Interface_getEvent(key, values, forceUnique) {\n // EventTopic\n if (isHexString(key)) {\n const eventTopic = key.toLowerCase();\n for (const fragment of __classPrivateFieldGet(this, _Interface_events, \"f\").values()) {\n if (eventTopic === this.getEventTopic(fragment)) {\n return fragment;\n }\n }\n logger.throwArgumentError(\"no matching event\", \"eventTopic\", key);\n }\n // It is a bare name, look up the function (will return null if ambiguous)\n if (key.indexOf(\"(\") === -1) {\n const matching = [];\n for (const [name, fragment] of __classPrivateFieldGet(this, _Interface_events, \"f\")) {\n if (name.split(\"(\" /* fix:) */)[0] === key) {\n matching.push(fragment);\n }\n }\n if (values) {\n // Remove all matches that don't have a compatible length.\n for (let i = matching.length - 1; i >= 0; i--) {\n if (matching[i].inputs.length < values.length) {\n matching.splice(i, 1);\n }\n }\n // Remove all matches that don't match the Typed signature\n for (let i = matching.length - 1; i >= 0; i--) {\n const inputs = matching[i].inputs;\n for (let j = 0; j < values.length; j++) {\n // Not a typed value\n if (!Typed.isTyped(values[j])) {\n continue;\n }\n // Make sure the value type matches the input type\n if (values[j].type !== inputs[j].baseType) {\n matching.splice(i, 1);\n break;\n }\n }\n }\n }\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching event\", \"name\", key);\n }\n else if (matching.length > 1 && forceUnique) {\n // @TODO: refine by Typed\n logger.throwArgumentError(\"multiple matching events\", \"name\", key);\n }\n return matching[0];\n }\n // Normalize the signature and lookup the function\n const result = __classPrivateFieldGet(this, _Interface_events, \"f\").get(EventFragment.fromString(key).format());\n if (result) {\n return result;\n }\n return logger.throwArgumentError(\"no matching event\", \"signature\", key);\n};\n//# sourceMappingURL=interface.js.map","export const version = \"@ethersproject/web@6.0.0-beta.2\";\n//# sourceMappingURL=_version.js.map","import { version } from \"./_version.js\";\nimport { Logger } from \"@ethersproject/logger\";\nexport const logger = new Logger(version);\n//# sourceMappingURL=logger.js.map","var __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 _FetchResponse_props, _FetchResponse_error;\nimport { hexlify } from \"@ethersproject/bytes\";\nimport { defineProperties, getStore } from \"@ethersproject/properties\";\nimport { toUtf8String } from \"@ethersproject/strings\";\nimport { logger } from \"./logger.js\";\n;\nexport class FetchResponse {\n constructor(statusCode, statusMessage, headers, body, request) {\n _FetchResponse_props.set(this, void 0);\n _FetchResponse_error.set(this, void 0);\n __classPrivateFieldSet(this, _FetchResponse_props, {\n statusCode,\n statusMessage,\n headers: Object.freeze(Object.assign({}, Object.keys(headers).reduce((accum, k) => {\n accum[k.toLowerCase()] = headers[k];\n return accum;\n }, {}))),\n body: ((body == null) ? null : new Uint8Array(body)),\n request: (request || null),\n }, \"f\");\n __classPrivateFieldSet(this, _FetchResponse_error, { message: \"\" }, \"f\");\n }\n toString() {\n const body = getStore(__classPrivateFieldGet(this, _FetchResponse_props, \"f\"), \"body\");\n return `<Response status=${this.statusCode} body=${body ? hexlify(body) : \"null\"}>`;\n }\n get statusCode() { return getStore(__classPrivateFieldGet(this, _FetchResponse_props, \"f\"), \"statusCode\"); }\n get statusMessage() { return getStore(__classPrivateFieldGet(this, _FetchResponse_props, \"f\"), \"statusMessage\"); }\n get headers() { return getStore(__classPrivateFieldGet(this, _FetchResponse_props, \"f\"), \"headers\"); }\n get body() {\n const body = getStore(__classPrivateFieldGet(this, _FetchResponse_props, \"f\"), \"body\");\n return (body == null) ? null : new Uint8Array(body);\n }\n get bodyText() {\n try {\n const body = getStore(__classPrivateFieldGet(this, _FetchResponse_props, \"f\"), \"body\");\n return (body == null) ? \"\" : toUtf8String(body);\n }\n catch (error) {\n return logger.throwError(\"response body is not valid UTF-8 data\", \"UNSUPPORTED_OPERATION\", {\n operation: \"bodyText\", info: { response: this }\n });\n }\n }\n get bodyJson() {\n try {\n return JSON.parse(this.bodyText);\n }\n catch (error) {\n return logger.throwError(\"response body is not valid JSON\", \"UNSUPPORTED_OPERATION\", {\n operation: \"bodyJson\", info: { response: this }\n });\n }\n }\n [(_FetchResponse_props = new WeakMap(), _FetchResponse_error = new WeakMap(), Symbol.iterator)]() {\n const headers = this.headers;\n const keys = Object.keys(headers);\n let index = 0;\n return {\n next: () => {\n if (index < keys.length) {\n const key = keys[index++];\n return {\n value: [key, headers[key]], done: false\n };\n }\n return { value: undefined, done: true };\n }\n };\n }\n makeServerError(message, error) {\n let statusMessage;\n if (!message) {\n message = `${this.statusCode} ${this.statusMessage}`;\n statusMessage = `CLIENT ESCALATED SERVER ERROR (${message})`;\n }\n else {\n statusMessage = `CLIENT ESCALATED SERVER ERROR (${this.statusCode} ${this.statusMessage}; ${message})`;\n }\n const response = new FetchResponse(599, statusMessage, this.headers, this.body, getStore(__classPrivateFieldGet(this, _FetchResponse_props, \"f\"), \"request\") || undefined);\n __classPrivateFieldSet(response, _FetchResponse_error, { message, error }, \"f\");\n return response;\n }\n throwThrottleError(message, stall) {\n if (stall == null) {\n stall = 1000;\n }\n if (typeof (stall) !== \"number\" || !Number.isInteger(stall) || stall < 0) {\n logger.throwArgumentError(\"invalid stall timeout\", \"stall\", stall);\n }\n const error = new Error(message || \"throttling requests\");\n defineProperties(error, { stall, throttle: true });\n throw error;\n }\n getHeader(key) {\n return this.headers[key.toLowerCase()];\n }\n hasBody() {\n const body = getStore(__classPrivateFieldGet(this, _FetchResponse_props, \"f\"), \"body\");\n return (body != null);\n }\n get request() { return getStore(__classPrivateFieldGet(this, _FetchResponse_props, \"f\"), \"request\"); }\n ok() {\n return (__classPrivateFieldGet(this, _FetchResponse_error, \"f\").message === \"\" && this.statusCode >= 200 && this.statusCode < 300);\n }\n assertOk() {\n if (this.ok()) {\n return;\n }\n let { message, error } = __classPrivateFieldGet(this, _FetchResponse_error, \"f\");\n if (message === \"\") {\n message = `server response ${this.statusCode} ${this.statusMessage}`;\n }\n logger.throwError(message, \"SERVER_ERROR\", {\n request: (this.request || \"unknown request\"), response: this, error\n });\n }\n}\n//# sourceMappingURL=response.js.map","import { logger } from \"./logger.js\";\nimport { FetchResponse } from \"./response.js\";\nexport async function getUrl(req, timeout) {\n const protocol = req.url.split(\":\")[0].toLowerCase();\n if (protocol !== \"http\" && protocol !== \"https\") {\n logger.throwError(`unsupported protocol ${protocol}`, \"UNSUPPORTED_OPERATION\", {\n info: { protocol },\n operation: \"request\"\n });\n }\n if (req.credentials && !req.allowInsecureAuthentication) {\n logger.throwError(\"insecure authorized connections unsupported\", \"UNSUPPORTED_OPERATION\", {\n operation: \"request\"\n });\n }\n const init = {\n method: req.method,\n headers: new Headers(Array.from(req)),\n body: req.body || undefined,\n };\n const resp = await fetch(req.url, init);\n const headers = {};\n resp.headers.forEach((value, key) => {\n headers[key.toLowerCase()] = value;\n });\n const body = new Uint8Array(await resp.arrayBuffer());\n return new FetchResponse(resp.status, resp.statusText, headers, body, req);\n}\n//# sourceMappingURL=get-url-browser.js.map","var __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 _FetchRequest_props;\nimport { getStore, setStore } from \"@ethersproject/properties\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nimport { logger } from \"./logger.js\";\nfunction check(value, type, name) {\n if (typeof (value) !== type) {\n throw new Error(`invalid ${name}`);\n }\n return value;\n}\nexport class FetchRequest {\n constructor(url) {\n _FetchRequest_props.set(this, void 0);\n __classPrivateFieldSet(this, _FetchRequest_props, {\n allowInsecure: false,\n gzip: false,\n headers: {},\n method: \"\",\n timeout: 300,\n url: check(url, \"string\", \"url\")\n }, \"f\");\n }\n // URL\n get url() { return getStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"url\"); }\n set url(url) {\n setStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"url\", check(url, \"string\", \"url\"));\n }\n // Body\n get body() {\n const body = getStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"body\");\n if (body == null) {\n return null;\n }\n if (this.isFrozen()) {\n return new Uint8Array(body);\n }\n return body;\n }\n set body(body) {\n if (body == null) {\n setStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"body\", undefined);\n setStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"bodyType\", undefined);\n }\n else if (typeof (body) === \"string\") {\n // @TODO: utf8-check\n setStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"body\", toUtf8Bytes(body));\n setStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"bodyType\", \"text/plain\");\n }\n else if (body instanceof Uint8Array) {\n setStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"body\", body);\n setStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"bodyType\", \"application/octet-stream\");\n }\n else if (typeof (body) === \"object\") {\n setStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"body\", toUtf8Bytes(JSON.stringify(body)));\n setStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"bodyType\", \"application/json\");\n }\n else {\n throw new Error(\"invalid body\");\n }\n }\n hasBody() {\n return (getStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"body\") != null);\n }\n // Method (default: GET with no body, POST with a body)\n get method() {\n const method = getStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"method\");\n if (method) {\n return method.toUpperCase();\n }\n if (this.body) {\n return \"POST\";\n }\n return \"GET\";\n }\n set method(method) {\n if (method == null) {\n method = \"\";\n }\n setStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"method\", check(method, \"string\", \"method\"));\n }\n // Headers (automatically fills content-type if not explicitly set)\n get headers() {\n const headers = Object.assign({}, getStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"headers\"));\n const bodyType = getStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"bodyType\");\n if (this.credentials) { /* TODO */ }\n ;\n if (this.allowGzip) {\n headers[\"accept-encoding\"] = \"gzip\";\n }\n if (headers[\"content-type\"] == null && bodyType) {\n headers[\"content-type\"] = bodyType;\n }\n if (this.body) {\n headers[\"content-length\"] = String(this.body.length);\n }\n return Object.freeze(headers);\n }\n getHeader(key) {\n return this.headers[key.toLowerCase()];\n }\n setHeader(key, value) {\n const headers = getStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"headers\");\n setStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"headers\", headers);\n headers[check(key, \"string\", \"key\").toLowerCase()] = String(value);\n }\n clearHeaders() {\n setStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"headers\", {});\n }\n [(_FetchRequest_props = new WeakMap(), Symbol.iterator)]() {\n const headers = this.headers;\n const keys = Object.keys(headers);\n let index = 0;\n return {\n next: () => {\n if (index < keys.length) {\n const key = keys[index++];\n return {\n value: [key, headers[key]], done: false\n };\n }\n return { value: undefined, done: true };\n }\n };\n }\n // Configure an Authorization header\n get credentials() {\n return getStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"creds\") || null;\n }\n setCredentials(username, password) {\n if (username.match(/:/)) {\n logger.throwArgumentError(\"invalid basic authentication username\", \"username\", \"[REDACTED]\");\n }\n setStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"creds\", `${username}:${password}`);\n // @TODO:\n //const auth = username + \":\" + password;\n //this.setHeader(\"authorization\", \"Basic \" + base64Encode(toUtf8Bytes(auth)))\n //this.setHeader(\"authorization\", \"Basic TODO:\" + auth);\n }\n // Configure the request to allow gzipped responses\n get allowGzip() {\n return getStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"gzip\");\n }\n set allowGzip(value) {\n setStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"gzip\", !!value);\n }\n // Allow credentials to be sent over an insecure (non-HTTPS) channel\n get allowInsecureAuthentication() {\n return !!getStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"allowInsecure\");\n }\n set allowInsecureAuthentication(value) {\n setStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"allowInsecure\", check(value, \"boolean\", \"allowInsecureAuthentication\"));\n }\n // Timeout (seconds)\n get timeout() { return getStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"timeout\"); }\n set timeout(timeout) {\n timeout = check(timeout, \"number\", \"timeout\");\n if (timeout <= 0) {\n throw new Error(\"invalid timerout\");\n }\n setStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"timeout\", timeout);\n }\n redirect(location) {\n // Redirection; for now we only support absolute locataions\n const current = this.url.split(\":\")[0].toLowerCase();\n const target = location.split(\":\")[0].toLowerCase();\n if (this.method !== \"GET\" || (current === \"https\" && target === \"http\") ||\n !location.match(/^https?:/)) {\n return logger.throwError(`unsupported redirect`, \"UNSUPPORTED_OPERATION\", {\n operation: `redirect(${this.method} ${JSON.stringify(this.url)} => ${JSON.stringify(location)})`\n });\n }\n // Create a copy of this request, with a new URL\n const req = new FetchRequest(location);\n req.method = \"GET\";\n req.allowGzip = this.allowGzip;\n req.timeout = this.timeout;\n setStore(__classPrivateFieldGet(req, _FetchRequest_props, \"f\"), \"body\", getStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"body\"));\n setStore(__classPrivateFieldGet(req, _FetchRequest_props, \"f\"), \"headers\", Object.assign({}, getStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"headers\")));\n setStore(__classPrivateFieldGet(req, _FetchRequest_props, \"f\"), \"bodyType\", getStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"bodyType\"));\n // Do not forward credentials unless on the same domain; only absolute\n //req.allowInsecure = false;\n // paths are currently supported; may want a way to specify to forward?\n //setStore(req.#props, \"creds\", getStore(this.#pros, \"creds\"));\n return req;\n }\n clone() {\n const clone = new FetchRequest(this.url);\n // Preserve \"default method\" (i.e. null)\n setStore(__classPrivateFieldGet(clone, _FetchRequest_props, \"f\"), \"method\", getStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"method\"));\n // Preserve \"default body\" with type, copying the Uint8Array is present\n const body = getStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"body\");\n setStore(__classPrivateFieldGet(clone, _FetchRequest_props, \"f\"), \"body\", (body == null) ? undefined : new Uint8Array(body));\n setStore(__classPrivateFieldGet(clone, _FetchRequest_props, \"f\"), \"bodyType\", getStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"bodyType\"));\n // Preserve \"default headers\"\n setStore(__classPrivateFieldGet(clone, _FetchRequest_props, \"f\"), \"headers\", Object.assign({}, getStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"headers\")));\n // Credentials is readonly, so we copy internally\n setStore(__classPrivateFieldGet(clone, _FetchRequest_props, \"f\"), \"creds\", getStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"creds\"));\n if (this.allowGzip) {\n clone.allowGzip = true;\n }\n clone.timeout = this.timeout;\n if (this.allowInsecureAuthentication) {\n clone.allowInsecureAuthentication = true;\n }\n return clone;\n }\n freeze() {\n // Copy the body so any changes to previous access do not modify it\n const body = getStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"body\");\n if (body != null) {\n setStore(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"), \"body\", new Uint8Array(body));\n }\n Object.freeze(__classPrivateFieldGet(this, _FetchRequest_props, \"f\").headers);\n Object.freeze(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"));\n return this;\n }\n isFrozen() {\n return Object.isFrozen(__classPrivateFieldGet(this, _FetchRequest_props, \"f\"));\n }\n}\n//# sourceMappingURL=request.js.map","import { decodeBase64 } from \"@ethersproject/bytes\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nimport { getUrl } from \"./get-url.js\"; /*-browser*/\nimport { logger } from \"./logger.js\";\nimport { FetchRequest } from \"./request.js\";\nimport { FetchResponse } from \"./response.js\";\nasync function delay(duration) {\n return new Promise((resolve) => { setTimeout(resolve, duration); });\n}\n// @TODO: Add option for global preflightRequest?\nfunction getTime() { return (new Date()).getTime(); }\nfunction unpercent(value) {\n value = value.replace(/%([0-9a-f][0-9a-f])/gi, (all, code) => {\n return String.fromCharCode(parseInt(code, 16));\n });\n return toUtf8Bytes(value);\n}\nlet lockGateways = false;\nlet ipfsGateway = \"https:/\\/gateway.ipfs.io/\";\nlet arGateway = \"https:/\\/gateway.ar.io/\";\nexport async function fetchData(connection) {\n const conn = (typeof (connection) === \"string\") ? {\n request: new FetchRequest(connection)\n } : (connection instanceof FetchRequest) ? {\n request: connection\n } : Object.assign({}, connection);\n if (conn.request == null) {\n return logger.throwArgumentError(\"missing request\", \"connection\", connection);\n }\n let req = conn.request.clone().freeze();\n switch (conn.request.url.split(\":\")[0]) {\n case \"data\": {\n const match = req.url.match(/^data:([^;:]*)?(;base64)?,(.*)$/i);\n if (match) {\n try {\n const headers = {\n \"content-type\": (match[1] ? match[1] : \"text/plain\")\n };\n const body = (match[2] ? decodeBase64(match[3]) : unpercent(match[3]));\n return new FetchResponse(200, \"OK\", headers, body, req.clone());\n }\n catch (error) {\n return new FetchResponse(400, \"BAD REQUEST (invalid base64 encoded data)\", {}, null, req.clone());\n }\n }\n return new FetchResponse(500, \"INTERNAL SERVER ERROR (unsupported dara URI)\", {}, null, req.clone());\n }\n case \"ipfs\":\n case \"ipns\":\n case \"ar\":\n throw new Error(\"not implemented yet\");\n console.log(\"FF\", arGateway, ipfsGateway);\n case \"http\":\n case \"https\":\n break;\n default:\n throw new Error(\"unsupported scheme\");\n }\n const attempts = (conn.throttleLimit != null) ? conn.throttleLimit : 12;\n if (!Number.isInteger(attempts) || attempts < 1) {\n return logger.throwArgumentError(\"invalid throttleLimit\", \"connection\", connection);\n }\n const slotInterval = (conn.throttleSlotInterval != null) ? conn.throttleSlotInterval : 100;\n //logger.assertInteger(slotInterval, \"connection.throttleSlotInterval\", connection.throttleSlotInterval);\n if (!Number.isInteger(slotInterval) || attempts < 0) {\n return logger.throwArgumentError(\"invalid throttleSlotInterval\", \"connection\", connection);\n }\n const retryFunc = (conn.throttleRetry != null) ? conn.throttleRetry : null;\n if (retryFunc && typeof (retryFunc) !== \"function\") {\n return logger.throwArgumentError(\"invalid throttleRetry callback\", \"connection\", connection);\n }\n const preflightRequest = conn.preflightRequest || null;\n if (preflightRequest && typeof (preflightRequest) !== \"function\") {\n return logger.throwArgumentError(\"invalid preflightRequest callback\", \"connection\", connection);\n }\n const processResponse = conn.processResponse || null;\n if (processResponse && typeof (processResponse) !== \"function\") {\n return logger.throwArgumentError(\"invalid processResponse callback\", \"connection\", connection);\n }\n // Start time of this fetch (for timeouts)\n const t0 = getTime();\n let response = null;\n for (let a = 0; a < attempts; a++) {\n let request = req.clone();\n if (preflightRequest) {\n request = (await preflightRequest(request.freeze())).clone();\n }\n const remainingTime = getTime() - t0;\n if (remainingTime < 0) {\n return logger.throwError(\"timeout\", \"TIMEOUT\", { operation: \"request\", request });\n }\n response = await getUrl(request, remainingTime);\n // Retry logic (server forced)\n if (a < attempts) {\n if (response.statusCode === 301 || response.statusCode === 302) {\n // Try following the redirect; the request will through if the\n // type of redirect is not supported\n try {\n req = request.redirect(response.headers.location || \"\");\n continue;\n }\n catch (error) { }\n ;\n // Things won't get any better on another attempt; abort\n return response;\n }\n else if (response.statusCode === 429) {\n if (retryFunc == null || (await retryFunc(request.freeze(), response, a))) {\n const retryAfter = response.headers[\"retry-after\"];\n if (typeof (retryAfter) === \"string\" && retryAfter.match(/^[1-9][0-9]*$/)) {\n await delay(parseInt(retryAfter));\n }\n else {\n await delay(slotInterval * Math.trunc(Math.random() * Math.pow(2, a)));\n }\n continue;\n }\n }\n }\n // Optional post-processing response; also allows trapping\n // HTTP status errors and doing \"something different\",\n // including any further throttling.\n if (processResponse) {\n try {\n return await processResponse(request, response);\n }\n catch (error) {\n // response.throwThrottleError\n if (error.throttle && typeof (error.stall) === \"number\") {\n if (a < attempts) {\n await delay(error.stall);\n continue;\n }\n // Too many retries should behave more like a 5xx server error\n return response.makeServerError(\"exceeded maximum retry limit\", error);\n }\n // Something went wrong during processing; throw a 5xx server error\n response.makeServerError(\"error in post-processing function\", error).assertOk();\n }\n }\n return response;\n }\n // Too many retries should behave more like a 5xx server error\n return response.makeServerError(\"exceeded maximum retry limit\");\n}\nfetchData.lock = function () {\n lockGateways = true;\n};\n// @TODO: Allow a master Gateway function\nfetchData.setGateway = function (gateway) {\n};\nfetchData.setIpfsGateway = function (gateway) {\n if (lockGateways) {\n logger.throwError(\"gateways are locked\", \"UNSUPPORTED_OPERATION\", {\n operation: \"setIpfsGateway\"\n });\n }\n ipfsGateway = gateway;\n};\nfetchData.setArGateway = function (gateway) {\n if (lockGateways) {\n logger.throwError(\"gateways are locked\", \"UNSUPPORTED_OPERATION\", {\n operation: \"setArGateway\"\n });\n }\n arGateway = gateway;\n};\n//# sourceMappingURL=fetch-data.js.map","export const version = \"@ethersproject/providers@6.0.0-beta.4\";\n//# sourceMappingURL=_version.js.map","import { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version.js\";\nexport const logger = new Logger(version);\n//# sourceMappingURL=logger.js.map","var __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 _a, _EnsResolver_supports2544, _EnsResolver_getResolver;\nimport { concat, dataSlice, hexlify, zeroPadValue } from \"@ethersproject/bytes\";\nimport { dnsEncode, namehash } from \"@ethersproject/hash\";\nimport { defineProperties } from \"@ethersproject/properties\";\nimport { encodeBase58, toArray, toNumber } from \"@ethersproject/math\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\nimport { fetchData } from \"@ethersproject/web\";\nimport { logger } from \"./logger.js\";\nconst BN_1 = BigInt(1);\nconst Empty = new Uint8Array([]);\nconst HashZero = \"0x0000000000000000000000000000000000000000000000000000000000000000\";\nfunction parseBytes(result, start) {\n if (result === \"0x\") {\n return null;\n }\n const offset = toNumber(dataSlice(result, start, start + 32));\n const length = toNumber(dataSlice(result, offset, offset + 32));\n return dataSlice(result, offset + 32, offset + 32 + length);\n}\nfunction parseString(result, start) {\n try {\n const bytes = parseBytes(result, start);\n if (bytes != null) {\n return toUtf8String(bytes);\n }\n }\n catch (error) { }\n return null;\n}\nfunction numPad(value) {\n const result = toArray(value);\n if (result.length > 32) {\n throw new Error(\"internal; should not happen\");\n }\n const padded = new Uint8Array(32);\n padded.set(result, 32 - result.length);\n return padded;\n}\nfunction bytesPad(value) {\n if ((value.length % 32) === 0) {\n return value;\n }\n const result = new Uint8Array(Math.ceil(value.length / 32) * 32);\n result.set(value);\n return result;\n}\n// ABI Encodes a series of (bytes, bytes, ...)\nfunction encodeBytes(datas) {\n const result = [];\n let byteCount = 0;\n // Add place-holders for pointers as we add items\n for (let i = 0; i < datas.length; i++) {\n result.push(Empty);\n byteCount += 32;\n }\n for (let i = 0; i < datas.length; i++) {\n const data = logger.getBytes(datas[i]);\n // Update the bytes offset\n result[i] = numPad(byteCount);\n // The length and padded value of data\n result.push(numPad(data.length));\n result.push(bytesPad(data));\n byteCount += 32 + Math.ceil(data.length / 32) * 32;\n }\n return concat(result);\n}\n// @TODO: This should use the fetch-data:ipfs gateway\n// Trim off the ipfs:// prefix and return the default gateway URL\nfunction getIpfsLink(link) {\n if (link.match(/^ipfs:\\/\\/ipfs\\//i)) {\n link = link.substring(12);\n }\n else if (link.match(/^ipfs:\\/\\//i)) {\n link = link.substring(7);\n }\n else {\n logger.throwArgumentError(\"unsupported IPFS format\", \"link\", link);\n }\n return `https:/\\/gateway.ipfs.io/ipfs/${link}`;\n}\n;\n;\nexport class MulticoinProviderPlugin {\n constructor(name) {\n defineProperties(this, { name });\n }\n validate(proivder) {\n return this;\n }\n supportsCoinType(coinType) {\n return false;\n }\n async encodeAddress(coinType, address) {\n throw new Error(\"unsupported coin\");\n }\n async decodeAddress(coinType, data) {\n throw new Error(\"unsupported coin\");\n }\n}\nconst BasicMulticoinPluginId = \"org.ethers.provider-prugins.basicmulticoin\";\nexport class BasicMulticoinProviderPlugin extends MulticoinProviderPlugin {\n constructor() {\n super(BasicMulticoinPluginId);\n }\n}\nconst matcherIpfs = new RegExp(\"^(ipfs):/\\/(.*)$\", \"i\");\nconst matchers = [\n new RegExp(\"^(https):/\\/(.*)$\", \"i\"),\n new RegExp(\"^(data):(.*)$\", \"i\"),\n matcherIpfs,\n new RegExp(\"^eip155:[0-9]+/(erc[0-9]+):(.*)$\", \"i\"),\n];\nexport class EnsResolver {\n constructor(provider, address, name) {\n // For EIP-2544 names, the ancestor that provided the resolver\n _EnsResolver_supports2544.set(this, void 0);\n defineProperties(this, { provider, address, name });\n __classPrivateFieldSet(this, _EnsResolver_supports2544, null, \"f\");\n }\n async supportsWildcard() {\n if (!__classPrivateFieldGet(this, _EnsResolver_supports2544, \"f\")) {\n // supportsInterface(bytes4 = selector(\"resolve(bytes,bytes)\"))\n __classPrivateFieldSet(this, _EnsResolver_supports2544, this.provider.call({\n to: this.address,\n data: \"0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000\"\n }).then((result) => {\n return (logger.getBigInt(result) === BN_1);\n }).catch((error) => {\n if (error.code === \"CALL_EXCEPTION\") {\n return false;\n }\n // Rethrow the error: link is down, etc. Let future attempts retry.\n __classPrivateFieldSet(this, _EnsResolver_supports2544, null, \"f\");\n throw error;\n }), \"f\");\n }\n return await __classPrivateFieldGet(this, _EnsResolver_supports2544, \"f\");\n }\n async _fetch(selector, parameters = \"0x\") {\n // e.g. keccak256(\"addr(bytes32,uint256)\")\n const addrData = concat([selector, namehash(this.name), parameters]);\n const tx = {\n to: this.address,\n enableCcipRead: true,\n data: addrData\n };\n // Wildcard support; use EIP-2544 to resolve the request\n let wrapped = false;\n if (await this.supportsWildcard()) {\n wrapped = true;\n // selector(\"resolve(bytes,bytes)\")\n tx.data = concat([\"0x9061b923\", encodeBytes([dnsEncode(this.name), addrData])]);\n }\n try {\n let data = await this.provider.call(tx);\n if ((logger.getBytes(data).length % 32) === 4) {\n return logger.throwError(\"resolver threw error\", \"CALL_EXCEPTION\", {\n transaction: tx, data\n });\n }\n if (wrapped) {\n return parseBytes(data, 0);\n }\n return data;\n }\n catch (error) {\n if (error.code !== \"CALL_EXCEPTION\") {\n throw error;\n }\n }\n return null;\n }\n async getAddress(coinType = 60) {\n if (coinType === 60) {\n try {\n // keccak256(\"addr(bytes32)\")\n const result = await this._fetch(\"0x3b3b57de\");\n // No address\n if (result === \"0x\" || result === HashZero) {\n return null;\n }\n const network = await this.provider.getNetwork();\n return network.formatter.callAddress(result);\n }\n catch (error) {\n if (error.code === \"CALL_EXCEPTION\") {\n return null;\n }\n throw error;\n }\n }\n let coinPlugin = null;\n for (const plugin of this.provider.plugins) {\n if (!(plugin instanceof MulticoinProviderPlugin)) {\n continue;\n }\n if (plugin.supportsCoinType(coinType)) {\n coinPlugin = plugin;\n break;\n }\n }\n if (coinPlugin == null) {\n return null;\n }\n // keccak256(\"addr(bytes32,uint256\")\n const data = parseBytes((await this._fetch(\"0xf1cb7e06\", numPad(coinType))) || \"0x\", 0);\n // No address\n if (data == null || data === \"0x\") {\n return null;\n }\n // Compute the address\n const address = await coinPlugin.encodeAddress(coinType, data);\n if (address != null) {\n return address;\n }\n return logger.throwError(`invalid coin data`, \"UNSUPPORTED_OPERATION\", {\n operation: `getAddress(${coinType})`,\n info: { coinType, data }\n });\n }\n async getText(key) {\n // The key encoded as parameter to fetchBytes\n let keyBytes = toUtf8Bytes(key);\n // The nodehash consumes the first slot, so the string pointer targets\n // offset 64, with the length at offset 64 and data starting at offset 96\n const calldata = logger.getBytes(concat([numPad(64), numPad(keyBytes.length), keyBytes]));\n const hexBytes = parseBytes((await this._fetch(\"0x59d1d43c\", bytesPad(calldata))) || \"0x\", 0);\n if (hexBytes == null || hexBytes === \"0x\") {\n return null;\n }\n return toUtf8String(hexBytes);\n }\n async getContentHash() {\n // keccak256(\"contenthash()\")\n const hexBytes = parseBytes((await this._fetch(\"0xbc1c58d1\")) || \"0x\", 0);\n // No contenthash\n if (hexBytes == null || hexBytes === \"0x\") {\n return null;\n }\n // IPFS (CID: 1, Type: 70=DAG-PB, 72=libp2p-key)\n const ipfs = hexBytes.match(/^0x(e3010170|e5010172)(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);\n if (ipfs) {\n const scheme = (ipfs[1] === \"e3010170\") ? \"ipfs\" : \"ipns\";\n const length = parseInt(ipfs[4], 16);\n if (ipfs[5].length === length * 2) {\n return `${scheme}:/\\/${encodeBase58(\"0x\" + ipfs[2])}`;\n }\n }\n // Swarm (CID: 1, Type: swarm-manifest; hash/length hard-coded to keccak256/32)\n const swarm = hexBytes.match(/^0xe40101fa011b20([0-9a-f]*)$/);\n if (swarm && swarm[1].length === 64) {\n return `bzz:/\\/${swarm[1]}`;\n }\n return logger.throwError(`invalid or unsupported content hash data`, \"UNSUPPORTED_OPERATION\", {\n operation: \"getContentHash()\",\n info: { data: hexBytes }\n });\n }\n async getAvatar() {\n return (await this._getAvatar()).url;\n }\n async _getAvatar() {\n const linkage = [{ type: \"name\", value: this.name }];\n try {\n // test data for ricmoo.eth\n //const avatar = \"eip155:1/erc721:0x265385c7f4132228A0d54EB1A9e7460b91c0cC68/29233\";\n const avatar = await this.getText(\"avatar\");\n if (avatar == null) {\n linkage.push({ type: \"!avatar\", value: \"\" });\n throw new Error(\"!avatar\");\n }\n linkage.push({ type: \"avatar\", value: avatar });\n for (let i = 0; i < matchers.length; i++) {\n const match = avatar.match(matchers[i]);\n if (match == null) {\n continue;\n }\n const scheme = match[1].toLowerCase();\n switch (scheme) {\n case \"https\":\n case \"data\":\n linkage.push({ type: \"url\", value: avatar });\n return { linkage, url: avatar };\n case \"ipfs\": {\n const url = getIpfsLink(avatar);\n linkage.push({ type: \"ipfs\", value: avatar });\n linkage.push({ type: \"url\", value: url });\n return { linkage, url };\n }\n case \"erc721\":\n case \"erc1155\": {\n // Depending on the ERC type, use tokenURI(uint256) or url(uint256)\n const selector = (scheme === \"erc721\") ? \"0xc87b56dd\" : \"0x0e89341c\";\n linkage.push({ type: scheme, value: avatar });\n // The owner of this name\n const owner = await this.getAddress();\n if (owner == null) {\n linkage.push({ type: \"!owner\", value: \"\" });\n throw new Error(\"!owner\");\n }\n const comps = (match[2] || \"\").split(\"/\");\n if (comps.length !== 2) {\n linkage.push({ type: `!${scheme}caip`, value: (match[2] || \"\") });\n throw new Error(\"!caip\");\n }\n const formatter = (await this.provider.getNetwork()).formatter;\n const addr = formatter.address(comps[0]);\n const tokenId = numPad(comps[1]);\n // Check that this account owns the token\n if (scheme === \"erc721\") {\n // ownerOf(uint256 tokenId)\n const tokenOwner = formatter.callAddress(await this.provider.call({\n to: addr, data: concat([\"0x6352211e\", tokenId])\n }));\n if (owner !== tokenOwner) {\n linkage.push({ type: \"!owner\", value: tokenOwner });\n throw new Error(\"!owner\");\n }\n linkage.push({ type: \"owner\", value: tokenOwner });\n }\n else if (scheme === \"erc1155\") {\n // balanceOf(address owner, uint256 tokenId)\n const balance = logger.getBigInt(await this.provider.call({\n to: addr, data: concat([\"0x00fdd58e\", zeroPadValue(owner, 32), tokenId])\n }));\n if (!balance) {\n linkage.push({ type: \"!balance\", value: \"0\" });\n throw new Error(\"!balance\");\n }\n linkage.push({ type: \"balance\", value: balance.toString() });\n }\n // Call the token contract for the metadata URL\n const tx = {\n to: comps[0],\n data: concat([selector, tokenId])\n };\n let metadataUrl = parseString(await this.provider.call(tx), 0);\n if (metadataUrl == null) {\n linkage.push({ type: \"!metadata-url\", value: \"\" });\n throw new Error(\"!metadata-url\");\n }\n linkage.push({ type: \"metadata-url-base\", value: metadataUrl });\n // ERC-1155 allows a generic {id} in the URL\n if (scheme === \"erc1155\") {\n metadataUrl = metadataUrl.replace(\"{id}\", hexlify(tokenId).substring(2));\n linkage.push({ type: \"metadata-url-expanded\", value: metadataUrl });\n }\n // Transform IPFS metadata links\n if (metadataUrl.match(/^ipfs:/i)) {\n metadataUrl = getIpfsLink(metadataUrl);\n }\n linkage.push({ type: \"metadata-url\", value: metadataUrl });\n // Get the token metadata\n let metadata = {};\n const response = await fetchData(metadataUrl);\n response.assertOk();\n try {\n metadata = response.bodyJson;\n }\n catch (error) {\n try {\n linkage.push({ type: \"!metadata\", value: response.bodyText });\n }\n catch (error) {\n const bytes = response.body;\n if (bytes) {\n linkage.push({ type: \"!metadata\", value: hexlify(bytes) });\n }\n throw error;\n }\n throw error;\n }\n if (!metadata) {\n linkage.push({ type: \"!metadata\", value: \"\" });\n throw new Error(\"!metadata\");\n }\n linkage.push({ type: \"metadata\", value: JSON.stringify(metadata) });\n // Pull the image URL out\n let imageUrl = metadata.image;\n if (typeof (imageUrl) !== \"string\") {\n linkage.push({ type: \"!imageUrl\", value: \"\" });\n throw new Error(\"!imageUrl\");\n }\n if (imageUrl.match(/^(https:\\/\\/|data:)/i)) {\n // Allow\n }\n else {\n // Transform IPFS link to gateway\n const ipfs = imageUrl.match(matcherIpfs);\n if (ipfs == null) {\n linkage.push({ type: \"!imageUrl-ipfs\", value: imageUrl });\n throw new Error(\"!imageUrl-ipfs\");\n }\n linkage.push({ type: \"imageUrl-ipfs\", value: imageUrl });\n imageUrl = getIpfsLink(imageUrl);\n }\n linkage.push({ type: \"url\", value: imageUrl });\n return { linkage, url: imageUrl };\n }\n }\n }\n }\n catch (error) {\n console.log(\"EE\", error);\n }\n return { linkage, url: null };\n }\n static async fromName(provider, name) {\n let currentName = name;\n while (true) {\n if (currentName === \"\" || currentName === \".\") {\n return null;\n }\n // Optimization since the eth node cannot change and does\n // not have a wildcar resolver\n if (name !== \"eth\" && currentName === \"eth\") {\n return null;\n }\n // Check the current node for a resolver\n const addr = await __classPrivateFieldGet(EnsResolver, _a, \"m\", _EnsResolver_getResolver).call(EnsResolver, provider, currentName);\n // Found a resolver!\n if (addr != null) {\n const resolver = new EnsResolver(provider, addr, name);\n // Legacy resolver found, using EIP-2544 so it isn't safe to use\n if (currentName !== name && !(await resolver.supportsWildcard())) {\n return null;\n }\n return resolver;\n }\n // Get the parent node\n currentName = currentName.split(\".\").slice(1).join(\".\");\n }\n }\n}\n_a = EnsResolver, _EnsResolver_supports2544 = new WeakMap(), _EnsResolver_getResolver = async function _EnsResolver_getResolver(provider, name) {\n const network = await provider.getNetwork();\n const ensPlugin = network.getPlugin(\"org.ethers.plugins.ens\");\n // No ENS...\n if (!ensPlugin) {\n return logger.throwError(\"network does not support ENS\", \"UNSUPPORTED_OPERATION\", {\n operation: \"getResolver\", info: { network: network.name }\n });\n }\n try {\n // keccak256(\"resolver(bytes32)\")\n const addrData = await provider.call({\n to: ensPlugin.address,\n data: concat([\"0x0178b8bf\", namehash(name)]),\n enableCcipRead: true\n });\n const addr = network.formatter.callAddress(addrData);\n if (addr === dataSlice(HashZero, 0, 20)) {\n return null;\n }\n return addr;\n }\n catch (error) {\n // ENS registry cannot throw errors on resolver(bytes32),\n // so probably a link error\n throw error;\n }\n return null;\n};\n//# sourceMappingURL=ens-resolver.js.map","export const version = \"@ethersproject/signing-key@6.0.0-beta.2\";\n//# sourceMappingURL=_version.js.map","import { version } from \"./_version.js\";\nimport { Logger } from \"@ethersproject/logger\";\nexport const logger = new Logger(version);\n//# sourceMappingURL=logger.js.map","var __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 _Signature_props;\nimport { concat, dataLength, hexlify, isHexString } from \"@ethersproject/bytes\";\nimport { getStore, setStore } from \"@ethersproject/properties\";\nimport { logger } from \"./logger.js\";\n// Constants\nconst BN_0 = BigInt(0);\nconst BN_1 = BigInt(1);\nconst BN_2 = BigInt(2);\nconst BN_27 = BigInt(27);\nconst BN_28 = BigInt(28);\nconst BN_35 = BigInt(35);\nconst _guard = {};\nconst Zero = \"0x0000000000000000000000000000000000000000000000000000000000000000\";\nexport class Signature {\n constructor(guard, r, s, v) {\n _Signature_props.set(this, void 0);\n logger.assertPrivate(guard, _guard, \"Signature\");\n __classPrivateFieldSet(this, _Signature_props, { r, s, v, networkV: null }, \"f\");\n }\n get r() { return getStore(__classPrivateFieldGet(this, _Signature_props, \"f\"), \"r\"); }\n set r(value) {\n if (dataLength(value) !== 32) {\n logger.throwArgumentError(\"invalid r\", \"value\", value);\n }\n setStore(__classPrivateFieldGet(this, _Signature_props, \"f\"), \"r\", hexlify(value));\n }\n get s() { return getStore(__classPrivateFieldGet(this, _Signature_props, \"f\"), \"s\"); }\n set s(value) {\n if (dataLength(value) !== 32) {\n logger.throwArgumentError(\"invalid r\", \"value\", value);\n }\n else if (logger.getBytes(value)[0] & 0x80) {\n logger.throwArgumentError(\"non-canonical s\", \"value\", value);\n }\n setStore(__classPrivateFieldGet(this, _Signature_props, \"f\"), \"s\", hexlify(value));\n }\n get v() { return getStore(__classPrivateFieldGet(this, _Signature_props, \"f\"), \"v\"); }\n set v(value) {\n const v = logger.getNumber(value, \"value\");\n if (v !== 27 && v !== 28) {\n throw new Error(\"@TODO\");\n }\n setStore(__classPrivateFieldGet(this, _Signature_props, \"f\"), \"v\", v);\n }\n get networkV() { return getStore(__classPrivateFieldGet(this, _Signature_props, \"f\"), \"networkV\"); }\n get legacyChainId() {\n const v = this.networkV;\n if (v == null) {\n return null;\n }\n return Signature.getChainId(v);\n }\n get yParity() {\n if (this.v === 27) {\n return 0;\n }\n return 1;\n /*\n // When v is 0 or 1 it is the recid directly\n if (this.v.isZero()) { return 0; }\n if (this.v.eq(1)) { return 1; }\n\n // Otherwise, odd (e.g. 27) is 0 and even (e.g. 28) is 1\n return this.v.and(1).isZero() ? 1: 0;\n */\n }\n get yParityAndS() {\n // The EIP-2098 compact representation\n const yParityAndS = logger.getBytes(this.s);\n if (this.yParity) {\n yParityAndS[0] |= 0x80;\n }\n return hexlify(yParityAndS);\n }\n get compactSerialized() {\n return concat([this.r, this.yParityAndS]);\n }\n get serialized() {\n return concat([this.r, this.s, (this.yParity ? \"0x1c\" : \"0x1b\")]);\n }\n [(_Signature_props = new WeakMap(), Symbol.for('nodejs.util.inspect.custom'))]() {\n return `Signature { r: \"${this.r}\", s: \"${this.s}\", yParity: ${this.yParity}, networkV: ${this.networkV} }`;\n }\n clone() {\n const clone = new Signature(_guard, this.r, this.s, this.v);\n if (this.networkV) {\n setStore(__classPrivateFieldGet(clone, _Signature_props, \"f\"), \"networkV\", this.networkV);\n }\n return clone;\n }\n freeze() {\n Object.freeze(__classPrivateFieldGet(this, _Signature_props, \"f\"));\n return this;\n }\n isFrozen() {\n return Object.isFrozen(__classPrivateFieldGet(this, _Signature_props, \"f\"));\n }\n toJSON() {\n const networkV = this.networkV;\n return {\n _type: \"signature\",\n networkV: ((networkV != null) ? networkV.toString() : null),\n r: this.r, s: this.s, v: this.v,\n };\n }\n static create() {\n return new Signature(_guard, Zero, Zero, 27);\n }\n // Get the chain ID from an EIP-155 v\n static getChainId(v) {\n const bv = logger.getBigInt(v, \"v\");\n // The v is not an EIP-155 v, so it is the unspecified chain ID\n if ((bv == BN_27) || (bv == BN_28)) {\n return BN_0;\n }\n // Bad value for an EIP-155 v\n if (bv < BN_35) {\n logger.throwArgumentError(\"invalid EIP-155 v\", \"v\", v);\n }\n return (bv - BN_35) / BN_2;\n }\n // Get the EIP-155 v transformed for a given chainId\n static getChainIdV(chainId, v) {\n return (logger.getBigInt(chainId) * BN_2) + BigInt(35 + v - 27);\n }\n // Convert an EIP-155 v into a normalized v\n static getNormalizedV(v) {\n const bv = logger.getBigInt(v);\n if (bv == BN_0) {\n return 27;\n }\n if (bv == BN_1) {\n return 28;\n }\n // Otherwise, EIP-155 v means odd is 27 and even is 28\n return (bv & BN_1) ? 27 : 28;\n }\n static from(sig) {\n const throwError = (message) => {\n return logger.throwArgumentError(message, \"signature\", sig);\n };\n if (typeof (sig) === \"string\") {\n const bytes = logger.getBytes(sig, \"signature\");\n if (bytes.length === 64) {\n const r = hexlify(bytes.slice(0, 32));\n const s = bytes.slice(32, 64);\n const v = (s[0] & 0x80) ? 28 : 27;\n s[0] &= 0x7f;\n return new Signature(_guard, r, hexlify(s), v);\n }\n if (dataLength(sig) !== 65) {\n const r = hexlify(sig.slice(0, 32));\n const s = bytes.slice(32, 64);\n if (s[0] & 0x80) {\n throwError(\"non-canonical s\");\n }\n const v = Signature.getNormalizedV(bytes[64]);\n return new Signature(_guard, r, hexlify(s), v);\n }\n return throwError(\"invlaid raw signature length\");\n }\n if (sig instanceof Signature) {\n return sig.clone();\n }\n // Get r\n const r = sig.r;\n if (r == null) {\n throwError(\"missing r\");\n }\n if (!isHexString(r, 32)) {\n throwError(\"invalid r\");\n }\n // Get s; by any means necessary (we check consistency below)\n const s = (function (s, yParityAndS) {\n if (s != null) {\n if (!isHexString(s, 32)) {\n throwError(\"invalid s\");\n }\n return s;\n }\n if (yParityAndS != null) {\n if (!isHexString(yParityAndS, 32)) {\n throwError(\"invalid yParityAndS\");\n }\n const bytes = logger.getBytes(yParityAndS);\n bytes[0] &= 0x7f;\n return hexlify(bytes);\n }\n return throwError(\"missing s\");\n })(sig.s, sig.yParityAndS);\n if (logger.getBytes(s)[0] & 0x80) {\n throwError(\"non-canonical s\");\n }\n // Get v; by any means necessary (we check consistency below)\n const { networkV, v } = (function (_v, yParityAndS, yParity) {\n if (_v != null) {\n const v = logger.getBigInt(_v);\n return {\n networkV: ((v >= BN_35) ? v : undefined),\n v: Signature.getNormalizedV(v)\n };\n }\n if (yParityAndS != null) {\n if (!isHexString(yParityAndS, 32)) {\n throwError(\"invalid yParityAndS\");\n }\n return { v: ((logger.getBytes(yParityAndS)[0] & 0x80) ? 28 : 27) };\n }\n if (yParity != null) {\n switch (yParity) {\n case 0: return { v: 27 };\n case 1: return { v: 28 };\n }\n return throwError(\"invalid yParity\");\n }\n return throwError(\"missing v\");\n })(sig.v, sig.yParityAndS, sig.yParity);\n const result = new Signature(_guard, r, s, v);\n if (networkV) {\n setStore(__classPrivateFieldGet(result, _Signature_props, \"f\"), \"networkV\", networkV);\n }\n // If multiple of v, yParity, yParityAndS we given, check they match\n if (\"yParity\" in sig && sig.yParity !== result.yParity) {\n throwError(\"yParity mismatch\");\n }\n else if (\"yParityAndS\" in sig && sig.yParityAndS !== result.yParityAndS) {\n throwError(\"yParityAndS mismatch\");\n }\n return result;\n }\n}\n//# sourceMappingURL=signature.js.map","/*! noble-secp256k1 - MIT License (c) 2019 Paul Miller (paulmillr.com) */\nimport nodeCrypto from 'crypto';\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst _3n = BigInt(3);\nconst _8n = BigInt(8);\nconst POW_2_256 = _2n ** BigInt(256);\nconst CURVE = {\n a: _0n,\n b: BigInt(7),\n P: POW_2_256 - _2n ** BigInt(32) - BigInt(977),\n n: POW_2_256 - BigInt('432420386565659656852420866394968145599'),\n h: _1n,\n Gx: BigInt('55066263022277343669578718895168534326250603453777594175500187360389116729240'),\n Gy: BigInt('32670510020758816978083085130507043184471273380659243275938904335757337482424'),\n beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n};\nexport { CURVE };\nfunction weistrass(x) {\n const { a, b } = CURVE;\n const x2 = mod(x * x);\n const x3 = mod(x2 * x);\n return mod(x3 + a * x + b);\n}\nconst USE_ENDOMORPHISM = CURVE.a === _0n;\nclass JacobianPoint {\n constructor(x, y, z) {\n this.x = x;\n this.y = y;\n this.z = z;\n }\n static fromAffine(p) {\n if (!(p instanceof Point)) {\n throw new TypeError('JacobianPoint#fromAffine: expected Point');\n }\n return new JacobianPoint(p.x, p.y, _1n);\n }\n static toAffineBatch(points) {\n const toInv = invertBatch(points.map((p) => p.z));\n return points.map((p, i) => p.toAffine(toInv[i]));\n }\n static normalizeZ(points) {\n return JacobianPoint.toAffineBatch(points).map(JacobianPoint.fromAffine);\n }\n equals(other) {\n if (!(other instanceof JacobianPoint))\n throw new TypeError('JacobianPoint expected');\n const { x: X1, y: Y1, z: Z1 } = this;\n const { x: X2, y: Y2, z: Z2 } = other;\n const Z1Z1 = mod(Z1 ** _2n);\n const Z2Z2 = mod(Z2 ** _2n);\n const U1 = mod(X1 * Z2Z2);\n const U2 = mod(X2 * Z1Z1);\n const S1 = mod(mod(Y1 * Z2) * Z2Z2);\n const S2 = mod(mod(Y2 * Z1) * Z1Z1);\n return U1 === U2 && S1 === S2;\n }\n negate() {\n return new JacobianPoint(this.x, mod(-this.y), this.z);\n }\n double() {\n const { x: X1, y: Y1, z: Z1 } = this;\n const A = mod(X1 ** _2n);\n const B = mod(Y1 ** _2n);\n const C = mod(B ** _2n);\n const D = mod(_2n * (mod((X1 + B) ** _2n) - A - C));\n const E = mod(_3n * A);\n const F = mod(E ** _2n);\n const X3 = mod(F - _2n * D);\n const Y3 = mod(E * (D - X3) - _8n * C);\n const Z3 = mod(_2n * Y1 * Z1);\n return new JacobianPoint(X3, Y3, Z3);\n }\n add(other) {\n if (!(other instanceof JacobianPoint))\n throw new TypeError('JacobianPoint expected');\n const { x: X1, y: Y1, z: Z1 } = this;\n const { x: X2, y: Y2, z: Z2 } = other;\n if (X2 === _0n || Y2 === _0n)\n return this;\n if (X1 === _0n || Y1 === _0n)\n return other;\n const Z1Z1 = mod(Z1 ** _2n);\n const Z2Z2 = mod(Z2 ** _2n);\n const U1 = mod(X1 * Z2Z2);\n const U2 = mod(X2 * Z1Z1);\n const S1 = mod(mod(Y1 * Z2) * Z2Z2);\n const S2 = mod(mod(Y2 * Z1) * Z1Z1);\n const H = mod(U2 - U1);\n const r = mod(S2 - S1);\n if (H === _0n) {\n if (r === _0n) {\n return this.double();\n }\n else {\n return JacobianPoint.ZERO;\n }\n }\n const HH = mod(H ** _2n);\n const HHH = mod(H * HH);\n const V = mod(U1 * HH);\n const X3 = mod(r ** _2n - HHH - _2n * V);\n const Y3 = mod(r * (V - X3) - S1 * HHH);\n const Z3 = mod(Z1 * Z2 * H);\n return new JacobianPoint(X3, Y3, Z3);\n }\n subtract(other) {\n return this.add(other.negate());\n }\n multiplyUnsafe(scalar) {\n let n = normalizeScalar(scalar);\n const G = JacobianPoint.BASE;\n const P0 = JacobianPoint.ZERO;\n if (n === _0n)\n return P0;\n if (n === _1n)\n return this;\n if (!USE_ENDOMORPHISM) {\n let p = P0;\n let d = this;\n while (n > _0n) {\n if (n & _1n)\n p = p.add(d);\n d = d.double();\n n >>= _1n;\n }\n return p;\n }\n let { k1neg, k1, k2neg, k2 } = splitScalarEndo(n);\n let k1p = P0;\n let k2p = P0;\n let d = this;\n while (k1 > _0n || k2 > _0n) {\n if (k1 & _1n)\n k1p = k1p.add(d);\n if (k2 & _1n)\n k2p = k2p.add(d);\n d = d.double();\n k1 >>= _1n;\n k2 >>= _1n;\n }\n if (k1neg)\n k1p = k1p.negate();\n if (k2neg)\n k2p = k2p.negate();\n k2p = new JacobianPoint(mod(k2p.x * CURVE.beta), k2p.y, k2p.z);\n return k1p.add(k2p);\n }\n precomputeWindow(W) {\n const windows = USE_ENDOMORPHISM ? 128 / W + 1 : 256 / W + 1;\n const points = [];\n let p = this;\n let base = p;\n for (let window = 0; window < windows; window++) {\n base = p;\n points.push(base);\n for (let i = 1; i < 2 ** (W - 1); i++) {\n base = base.add(p);\n points.push(base);\n }\n p = base.double();\n }\n return points;\n }\n wNAF(n, affinePoint) {\n if (!affinePoint && this.equals(JacobianPoint.BASE))\n affinePoint = Point.BASE;\n const W = (affinePoint && affinePoint._WINDOW_SIZE) || 1;\n if (256 % W) {\n throw new Error('Point#wNAF: Invalid precomputation window, must be power of 2');\n }\n let precomputes = affinePoint && pointPrecomputes.get(affinePoint);\n if (!precomputes) {\n precomputes = this.precomputeWindow(W);\n if (affinePoint && W !== 1) {\n precomputes = JacobianPoint.normalizeZ(precomputes);\n pointPrecomputes.set(affinePoint, precomputes);\n }\n }\n let p = JacobianPoint.ZERO;\n let f = JacobianPoint.ZERO;\n const windows = 1 + (USE_ENDOMORPHISM ? 128 / W : 256 / W);\n const windowSize = 2 ** (W - 1);\n const mask = BigInt(2 ** W - 1);\n const maxNumber = 2 ** W;\n const shiftBy = BigInt(W);\n for (let window = 0; window < windows; window++) {\n const offset = window * windowSize;\n let wbits = Number(n & mask);\n n >>= shiftBy;\n if (wbits > windowSize) {\n wbits -= maxNumber;\n n += _1n;\n }\n if (wbits === 0) {\n let pr = precomputes[offset];\n if (window % 2)\n pr = pr.negate();\n f = f.add(pr);\n }\n else {\n let cached = precomputes[offset + Math.abs(wbits) - 1];\n if (wbits < 0)\n cached = cached.negate();\n p = p.add(cached);\n }\n }\n return { p, f };\n }\n multiply(scalar, affinePoint) {\n let n = normalizeScalar(scalar);\n let point;\n let fake;\n if (USE_ENDOMORPHISM) {\n const { k1neg, k1, k2neg, k2 } = splitScalarEndo(n);\n let { p: k1p, f: f1p } = this.wNAF(k1, affinePoint);\n let { p: k2p, f: f2p } = this.wNAF(k2, affinePoint);\n if (k1neg)\n k1p = k1p.negate();\n if (k2neg)\n k2p = k2p.negate();\n k2p = new JacobianPoint(mod(k2p.x * CURVE.beta), k2p.y, k2p.z);\n point = k1p.add(k2p);\n fake = f1p.add(f2p);\n }\n else {\n const { p, f } = this.wNAF(n, affinePoint);\n point = p;\n fake = f;\n }\n return JacobianPoint.normalizeZ([point, fake])[0];\n }\n toAffine(invZ = invert(this.z)) {\n const { x, y, z } = this;\n const iz1 = invZ;\n const iz2 = mod(iz1 * iz1);\n const iz3 = mod(iz2 * iz1);\n const ax = mod(x * iz2);\n const ay = mod(y * iz3);\n const zz = mod(z * iz1);\n if (zz !== _1n)\n throw new Error('invZ was invalid');\n return new Point(ax, ay);\n }\n}\nJacobianPoint.BASE = new JacobianPoint(CURVE.Gx, CURVE.Gy, _1n);\nJacobianPoint.ZERO = new JacobianPoint(_0n, _1n, _0n);\nconst pointPrecomputes = new WeakMap();\nexport class Point {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n _setWindowSize(windowSize) {\n this._WINDOW_SIZE = windowSize;\n pointPrecomputes.delete(this);\n }\n static fromCompressedHex(bytes) {\n const isShort = bytes.length === 32;\n const x = bytesToNumber(isShort ? bytes : bytes.subarray(1));\n if (!isValidFieldElement(x))\n throw new Error('Point is not on curve');\n const y2 = weistrass(x);\n let y = sqrtMod(y2);\n const isYOdd = (y & _1n) === _1n;\n if (isShort) {\n if (isYOdd)\n y = mod(-y);\n }\n else {\n const isFirstByteOdd = (bytes[0] & 1) === 1;\n if (isFirstByteOdd !== isYOdd)\n y = mod(-y);\n }\n const point = new Point(x, y);\n point.assertValidity();\n return point;\n }\n static fromUncompressedHex(bytes) {\n const x = bytesToNumber(bytes.subarray(1, 33));\n const y = bytesToNumber(bytes.subarray(33, 65));\n const point = new Point(x, y);\n point.assertValidity();\n return point;\n }\n static fromHex(hex) {\n const bytes = ensureBytes(hex);\n const len = bytes.length;\n const header = bytes[0];\n if (len === 32 || (len === 33 && (header === 0x02 || header === 0x03))) {\n return this.fromCompressedHex(bytes);\n }\n if (len === 65 && header === 0x04)\n return this.fromUncompressedHex(bytes);\n throw new Error(`Point.fromHex: received invalid point. Expected 32-33 compressed bytes or 65 uncompressed bytes, not ${len}`);\n }\n static fromPrivateKey(privateKey) {\n return Point.BASE.multiply(normalizePrivateKey(privateKey));\n }\n static fromSignature(msgHash, signature, recovery) {\n msgHash = ensureBytes(msgHash);\n const h = truncateHash(msgHash);\n const { r, s } = normalizeSignature(signature);\n if (recovery !== 0 && recovery !== 1) {\n throw new Error('Cannot recover signature: invalid recovery bit');\n }\n if (h === _0n)\n throw new Error('Cannot recover signature: msgHash cannot be 0');\n const prefix = recovery & 1 ? '03' : '02';\n const R = Point.fromHex(prefix + numTo32bStr(r));\n const { n } = CURVE;\n const rinv = invert(r, n);\n const u1 = mod(-h * rinv, n);\n const u2 = mod(s * rinv, n);\n const Q = Point.BASE.multiplyAndAddUnsafe(R, u1, u2);\n if (!Q)\n throw new Error('Cannot recover signature: point at infinify');\n Q.assertValidity();\n return Q;\n }\n toRawBytes(isCompressed = false) {\n return hexToBytes(this.toHex(isCompressed));\n }\n toHex(isCompressed = false) {\n const x = numTo32bStr(this.x);\n if (isCompressed) {\n const prefix = this.y & _1n ? '03' : '02';\n return `${prefix}${x}`;\n }\n else {\n return `04${x}${numTo32bStr(this.y)}`;\n }\n }\n toHexX() {\n return this.toHex(true).slice(2);\n }\n toRawX() {\n return this.toRawBytes(true).slice(1);\n }\n assertValidity() {\n const msg = 'Point is not on elliptic curve';\n const { x, y } = this;\n if (!isValidFieldElement(x) || !isValidFieldElement(y))\n throw new Error(msg);\n const left = mod(y * y);\n const right = weistrass(x);\n if (mod(left - right) !== _0n)\n throw new Error(msg);\n }\n equals(other) {\n return this.x === other.x && this.y === other.y;\n }\n negate() {\n return new Point(this.x, mod(-this.y));\n }\n double() {\n return JacobianPoint.fromAffine(this).double().toAffine();\n }\n add(other) {\n return JacobianPoint.fromAffine(this).add(JacobianPoint.fromAffine(other)).toAffine();\n }\n subtract(other) {\n return this.add(other.negate());\n }\n multiply(scalar) {\n return JacobianPoint.fromAffine(this).multiply(scalar, this).toAffine();\n }\n multiplyAndAddUnsafe(Q, a, b) {\n const P = JacobianPoint.fromAffine(this);\n const aP = P.multiply(a);\n const bQ = JacobianPoint.fromAffine(Q).multiplyUnsafe(b);\n const sum = aP.add(bQ);\n return sum.equals(JacobianPoint.ZERO) ? undefined : sum.toAffine();\n }\n}\nPoint.BASE = new Point(CURVE.Gx, CURVE.Gy);\nPoint.ZERO = new Point(_0n, _0n);\nfunction sliceDER(s) {\n return Number.parseInt(s[0], 16) >= 8 ? '00' + s : s;\n}\nfunction parseDERInt(data) {\n if (data.length < 2 || data[0] !== 0x02) {\n throw new Error(`Invalid signature integer tag: ${bytesToHex(data)}`);\n }\n const len = data[1];\n const res = data.subarray(2, len + 2);\n if (!len || res.length !== len) {\n throw new Error(`Invalid signature integer: wrong length`);\n }\n if (res[0] === 0x00 && res[1] <= 0x7f) {\n throw new Error('Invalid signature integer: trailing length');\n }\n return { data: bytesToNumber(res), left: data.subarray(len + 2) };\n}\nfunction parseDERSignature(data) {\n if (data.length < 2 || data[0] != 0x30) {\n throw new Error(`Invalid signature tag: ${bytesToHex(data)}`);\n }\n if (data[1] !== data.length - 2) {\n throw new Error('Invalid signature: incorrect length');\n }\n const { data: r, left: sBytes } = parseDERInt(data.subarray(2));\n const { data: s, left: rBytesLeft } = parseDERInt(sBytes);\n if (rBytesLeft.length) {\n throw new Error(`Invalid signature: left bytes after parsing: ${bytesToHex(rBytesLeft)}`);\n }\n return { r, s };\n}\nexport class Signature {\n constructor(r, s) {\n this.r = r;\n this.s = s;\n this.assertValidity();\n }\n static fromCompact(hex) {\n const arr = isUint8a(hex);\n const name = 'Signature.fromCompact';\n if (typeof hex !== 'string' && !arr)\n throw new TypeError(`${name}: Expected string or Uint8Array`);\n const str = arr ? bytesToHex(hex) : hex;\n if (str.length !== 128)\n throw new Error(`${name}: Expected 64-byte hex`);\n return new Signature(hexToNumber(str.slice(0, 64)), hexToNumber(str.slice(64, 128)));\n }\n static fromDER(hex) {\n const arr = isUint8a(hex);\n if (typeof hex !== 'string' && !arr)\n throw new TypeError(`Signature.fromDER: Expected string or Uint8Array`);\n const { r, s } = parseDERSignature(arr ? hex : hexToBytes(hex));\n return new Signature(r, s);\n }\n static fromHex(hex) {\n return this.fromDER(hex);\n }\n assertValidity() {\n const { r, s } = this;\n if (!isWithinCurveOrder(r))\n throw new Error('Invalid Signature: r must be 0 < r < n');\n if (!isWithinCurveOrder(s))\n throw new Error('Invalid Signature: s must be 0 < s < n');\n }\n hasHighS() {\n const HALF = CURVE.n >> _1n;\n return this.s > HALF;\n }\n normalizeS() {\n return this.hasHighS() ? new Signature(this.r, CURVE.n - this.s) : this;\n }\n toDERRawBytes(isCompressed = false) {\n return hexToBytes(this.toDERHex(isCompressed));\n }\n toDERHex(isCompressed = false) {\n const sHex = sliceDER(numberToHexUnpadded(this.s));\n if (isCompressed)\n return sHex;\n const rHex = sliceDER(numberToHexUnpadded(this.r));\n const rLen = numberToHexUnpadded(rHex.length / 2);\n const sLen = numberToHexUnpadded(sHex.length / 2);\n const length = numberToHexUnpadded(rHex.length / 2 + sHex.length / 2 + 4);\n return `30${length}02${rLen}${rHex}02${sLen}${sHex}`;\n }\n toRawBytes() {\n return this.toDERRawBytes();\n }\n toHex() {\n return this.toDERHex();\n }\n toCompactRawBytes() {\n return hexToBytes(this.toCompactHex());\n }\n toCompactHex() {\n return numTo32bStr(this.r) + numTo32bStr(this.s);\n }\n}\nfunction concatBytes(...arrays) {\n if (!arrays.every(isUint8a))\n throw new Error('Uint8Array list expected');\n if (arrays.length === 1)\n return arrays[0];\n const length = arrays.reduce((a, arr) => a + arr.length, 0);\n const result = new Uint8Array(length);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const arr = arrays[i];\n result.set(arr, pad);\n pad += arr.length;\n }\n return result;\n}\nfunction isUint8a(bytes) {\n return bytes instanceof Uint8Array;\n}\nconst hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));\nfunction bytesToHex(uint8a) {\n if (!(uint8a instanceof Uint8Array))\n throw new Error('Expected Uint8Array');\n let hex = '';\n for (let i = 0; i < uint8a.length; i++) {\n hex += hexes[uint8a[i]];\n }\n return hex;\n}\nfunction numTo32bStr(num) {\n if (num > POW_2_256)\n throw new Error('Expected number < 2^256');\n return num.toString(16).padStart(64, '0');\n}\nfunction numTo32b(num) {\n return hexToBytes(numTo32bStr(num));\n}\nfunction numberToHexUnpadded(num) {\n const hex = num.toString(16);\n return hex.length & 1 ? `0${hex}` : hex;\n}\nfunction hexToNumber(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToNumber: expected string, got ' + typeof hex);\n }\n return BigInt(`0x${hex}`);\n}\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToBytes: expected string, got ' + typeof hex);\n }\n if (hex.length % 2)\n throw new Error('hexToBytes: received invalid unpadded hex' + hex.length);\n const array = new Uint8Array(hex.length / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\nfunction bytesToNumber(bytes) {\n return hexToNumber(bytesToHex(bytes));\n}\nfunction ensureBytes(hex) {\n return hex instanceof Uint8Array ? Uint8Array.from(hex) : hexToBytes(hex);\n}\nfunction normalizeScalar(num) {\n if (typeof num === 'number' && Number.isSafeInteger(num) && num > 0)\n return BigInt(num);\n if (typeof num === 'bigint' && isWithinCurveOrder(num))\n return num;\n throw new TypeError('Expected valid private scalar: 0 < scalar < curve.n');\n}\nfunction mod(a, b = CURVE.P) {\n const result = a % b;\n return result >= _0n ? result : b + result;\n}\nfunction pow2(x, power) {\n const { P } = CURVE;\n let res = x;\n while (power-- > _0n) {\n res *= res;\n res %= P;\n }\n return res;\n}\nfunction sqrtMod(x) {\n const { P } = CURVE;\n const _6n = BigInt(6);\n const _11n = BigInt(11);\n const _22n = BigInt(22);\n const _23n = BigInt(23);\n const _44n = BigInt(44);\n const _88n = BigInt(88);\n const b2 = (x * x * x) % P;\n const b3 = (b2 * b2 * x) % P;\n const b6 = (pow2(b3, _3n) * b3) % P;\n const b9 = (pow2(b6, _3n) * b3) % P;\n const b11 = (pow2(b9, _2n) * b2) % P;\n const b22 = (pow2(b11, _11n) * b11) % P;\n const b44 = (pow2(b22, _22n) * b22) % P;\n const b88 = (pow2(b44, _44n) * b44) % P;\n const b176 = (pow2(b88, _88n) * b88) % P;\n const b220 = (pow2(b176, _44n) * b44) % P;\n const b223 = (pow2(b220, _3n) * b3) % P;\n const t1 = (pow2(b223, _23n) * b22) % P;\n const t2 = (pow2(t1, _6n) * b2) % P;\n return pow2(t2, _2n);\n}\nfunction invert(number, modulo = CURVE.P) {\n if (number === _0n || modulo <= _0n) {\n throw new Error(`invert: expected positive integers, got n=${number} mod=${modulo}`);\n }\n let a = mod(number, modulo);\n let b = modulo;\n let x = _0n, y = _1n, u = _1n, v = _0n;\n while (a !== _0n) {\n const q = b / a;\n const r = b % a;\n const m = x - u * q;\n const n = y - v * q;\n b = a, a = r, x = u, y = v, u = m, v = n;\n }\n const gcd = b;\n if (gcd !== _1n)\n throw new Error('invert: does not exist');\n return mod(x, modulo);\n}\nfunction invertBatch(nums, p = CURVE.P) {\n const scratch = new Array(nums.length);\n const lastMultiplied = nums.reduce((acc, num, i) => {\n if (num === _0n)\n return acc;\n scratch[i] = acc;\n return mod(acc * num, p);\n }, _1n);\n const inverted = invert(lastMultiplied, p);\n nums.reduceRight((acc, num, i) => {\n if (num === _0n)\n return acc;\n scratch[i] = mod(acc * scratch[i], p);\n return mod(acc * num, p);\n }, inverted);\n return scratch;\n}\nconst divNearest = (a, b) => (a + b / _2n) / b;\nconst POW_2_128 = _2n ** BigInt(128);\nfunction splitScalarEndo(k) {\n const { n } = CURVE;\n const a1 = BigInt('0x3086d221a7d46bcde86c90e49284eb15');\n const b1 = -_1n * BigInt('0xe4437ed6010e88286f547fa90abfe4c3');\n const a2 = BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8');\n const b2 = a1;\n const c1 = divNearest(b2 * k, n);\n const c2 = divNearest(-b1 * k, n);\n let k1 = mod(k - c1 * a1 - c2 * a2, n);\n let k2 = mod(-c1 * b1 - c2 * b2, n);\n const k1neg = k1 > POW_2_128;\n const k2neg = k2 > POW_2_128;\n if (k1neg)\n k1 = n - k1;\n if (k2neg)\n k2 = n - k2;\n if (k1 > POW_2_128 || k2 > POW_2_128) {\n throw new Error('splitScalarEndo: Endomorphism failed, k=' + k);\n }\n return { k1neg, k1, k2neg, k2 };\n}\nfunction truncateHash(hash) {\n const { n } = CURVE;\n const byteLength = hash.length;\n const delta = byteLength * 8 - 256;\n let h = bytesToNumber(hash);\n if (delta > 0)\n h = h >> BigInt(delta);\n if (h >= n)\n h -= n;\n return h;\n}\nclass HmacDrbg {\n constructor() {\n this.v = new Uint8Array(32).fill(1);\n this.k = new Uint8Array(32).fill(0);\n this.counter = 0;\n }\n hmac(...values) {\n return utils.hmacSha256(this.k, ...values);\n }\n hmacSync(...values) {\n if (typeof utils.hmacSha256Sync !== 'function')\n throw new Error('utils.hmacSha256Sync is undefined, you need to set it');\n const res = utils.hmacSha256Sync(this.k, ...values);\n if (res instanceof Promise)\n throw new Error('To use sync sign(), ensure utils.hmacSha256 is sync');\n return res;\n }\n incr() {\n if (this.counter >= 1000) {\n throw new Error('Tried 1,000 k values for sign(), all were invalid');\n }\n this.counter += 1;\n }\n async reseed(seed = new Uint8Array()) {\n this.k = await this.hmac(this.v, Uint8Array.from([0x00]), seed);\n this.v = await this.hmac(this.v);\n if (seed.length === 0)\n return;\n this.k = await this.hmac(this.v, Uint8Array.from([0x01]), seed);\n this.v = await this.hmac(this.v);\n }\n reseedSync(seed = new Uint8Array()) {\n this.k = this.hmacSync(this.v, Uint8Array.from([0x00]), seed);\n this.v = this.hmacSync(this.v);\n if (seed.length === 0)\n return;\n this.k = this.hmacSync(this.v, Uint8Array.from([0x01]), seed);\n this.v = this.hmacSync(this.v);\n }\n async generate() {\n this.incr();\n this.v = await this.hmac(this.v);\n return this.v;\n }\n generateSync() {\n this.incr();\n this.v = this.hmacSync(this.v);\n return this.v;\n }\n}\nfunction isWithinCurveOrder(num) {\n return _0n < num && num < CURVE.n;\n}\nfunction isValidFieldElement(num) {\n return _0n < num && num < CURVE.P;\n}\nfunction kmdToSig(kBytes, m, d) {\n const k = bytesToNumber(kBytes);\n if (!isWithinCurveOrder(k))\n return;\n const { n } = CURVE;\n const q = Point.BASE.multiply(k);\n const r = mod(q.x, n);\n if (r === _0n)\n return;\n const s = mod(invert(k, n) * mod(m + d * r, n), n);\n if (s === _0n)\n return;\n const sig = new Signature(r, s);\n const recovery = (q.x === sig.r ? 0 : 2) | Number(q.y & _1n);\n return { sig, recovery };\n}\nfunction normalizePrivateKey(key) {\n let num;\n if (typeof key === 'bigint') {\n num = key;\n }\n else if (typeof key === 'number' && Number.isSafeInteger(key) && key > 0) {\n num = BigInt(key);\n }\n else if (typeof key === 'string') {\n if (key.length !== 64)\n throw new Error('Expected 32 bytes of private key');\n num = hexToNumber(key);\n }\n else if (isUint8a(key)) {\n if (key.length !== 32)\n throw new Error('Expected 32 bytes of private key');\n num = bytesToNumber(key);\n }\n else {\n throw new TypeError('Expected valid private key');\n }\n if (!isWithinCurveOrder(num))\n throw new Error('Expected private key: 0 < key < n');\n return num;\n}\nfunction normalizePublicKey(publicKey) {\n if (publicKey instanceof Point) {\n publicKey.assertValidity();\n return publicKey;\n }\n else {\n return Point.fromHex(publicKey);\n }\n}\nfunction normalizeSignature(signature) {\n if (signature instanceof Signature) {\n signature.assertValidity();\n return signature;\n }\n try {\n return Signature.fromDER(signature);\n }\n catch (error) {\n return Signature.fromCompact(signature);\n }\n}\nexport function getPublicKey(privateKey, isCompressed = false) {\n return Point.fromPrivateKey(privateKey).toRawBytes(isCompressed);\n}\nexport function recoverPublicKey(msgHash, signature, recovery, isCompressed = false) {\n return Point.fromSignature(msgHash, signature, recovery).toRawBytes(isCompressed);\n}\nfunction isPub(item) {\n const arr = isUint8a(item);\n const str = typeof item === 'string';\n const len = (arr || str) && item.length;\n if (arr)\n return len === 33 || len === 65;\n if (str)\n return len === 66 || len === 130;\n if (item instanceof Point)\n return true;\n return false;\n}\nexport function getSharedSecret(privateA, publicB, isCompressed = false) {\n if (isPub(privateA))\n throw new TypeError('getSharedSecret: first arg must be private key');\n if (!isPub(publicB))\n throw new TypeError('getSharedSecret: second arg must be public key');\n const b = normalizePublicKey(publicB);\n b.assertValidity();\n return b.multiply(normalizePrivateKey(privateA)).toRawBytes(isCompressed);\n}\nfunction bits2int(bytes) {\n const slice = bytes.length > 32 ? bytes.slice(0, 32) : bytes;\n return bytesToNumber(slice);\n}\nfunction bits2octets(bytes) {\n const z1 = bits2int(bytes);\n const z2 = mod(z1, CURVE.n);\n return int2octets(z2 < _0n ? z1 : z2);\n}\nfunction int2octets(num) {\n if (typeof num !== 'bigint')\n throw new Error('Expected bigint');\n const hex = numTo32bStr(num);\n return hexToBytes(hex);\n}\nfunction initSigArgs(msgHash, privateKey, extraEntropy) {\n if (msgHash == null)\n throw new Error(`sign: expected valid message hash, not \"${msgHash}\"`);\n const h1 = ensureBytes(msgHash);\n const d = normalizePrivateKey(privateKey);\n const seedArgs = [int2octets(d), bits2octets(h1)];\n if (extraEntropy != null) {\n if (extraEntropy === true)\n extraEntropy = utils.randomBytes(32);\n const e = ensureBytes(extraEntropy);\n if (e.length !== 32)\n throw new Error('sign: Expected 32 bytes of extra data');\n seedArgs.push(e);\n }\n const seed = concatBytes(...seedArgs);\n const m = bits2int(h1);\n return { seed, m, d };\n}\nfunction finalizeSig(recSig, opts) {\n let { sig, recovery } = recSig;\n const { canonical, der, recovered } = Object.assign({ canonical: true, der: true }, opts);\n if (canonical && sig.hasHighS()) {\n sig = sig.normalizeS();\n recovery ^= 1;\n }\n const hashed = der ? sig.toDERRawBytes() : sig.toCompactRawBytes();\n return recovered ? [hashed, recovery] : hashed;\n}\nasync function sign(msgHash, privKey, opts = {}) {\n const { seed, m, d } = initSigArgs(msgHash, privKey, opts.extraEntropy);\n let sig;\n const drbg = new HmacDrbg();\n await drbg.reseed(seed);\n while (!(sig = kmdToSig(await drbg.generate(), m, d)))\n await drbg.reseed();\n return finalizeSig(sig, opts);\n}\nfunction signSync(msgHash, privKey, opts = {}) {\n const { seed, m, d } = initSigArgs(msgHash, privKey, opts.extraEntropy);\n let sig;\n const drbg = new HmacDrbg();\n drbg.reseedSync(seed);\n while (!(sig = kmdToSig(drbg.generateSync(), m, d)))\n drbg.reseedSync();\n return finalizeSig(sig, opts);\n}\nexport { sign, signSync };\nconst vopts = { strict: true };\nexport function verify(signature, msgHash, publicKey, opts = vopts) {\n let sig;\n try {\n sig = normalizeSignature(signature);\n msgHash = ensureBytes(msgHash);\n }\n catch (error) {\n return false;\n }\n const { r, s } = sig;\n if (opts.strict && sig.hasHighS())\n return false;\n const h = truncateHash(msgHash);\n if (h === _0n)\n return false;\n let P;\n try {\n P = normalizePublicKey(publicKey);\n }\n catch (error) {\n return false;\n }\n const { n } = CURVE;\n const sinv = invert(s, n);\n const u1 = mod(h * sinv, n);\n const u2 = mod(r * sinv, n);\n const R = Point.BASE.multiplyAndAddUnsafe(P, u1, u2);\n if (!R)\n return false;\n const v = mod(R.x, n);\n return v === r;\n}\nasync function taggedHash(tag, ...messages) {\n const tagB = new Uint8Array(tag.split('').map((c) => c.charCodeAt(0)));\n const tagH = await utils.sha256(tagB);\n const h = await utils.sha256(concatBytes(tagH, tagH, ...messages));\n return bytesToNumber(h);\n}\nasync function createChallenge(x, P, message) {\n const rx = numTo32b(x);\n const t = await taggedHash('BIP0340/challenge', rx, P.toRawX(), message);\n return mod(t, CURVE.n);\n}\nfunction hasEvenY(point) {\n return (point.y & _1n) === _0n;\n}\nclass SchnorrSignature {\n constructor(r, s) {\n this.r = r;\n this.s = s;\n this.assertValidity();\n }\n static fromHex(hex) {\n const bytes = ensureBytes(hex);\n if (bytes.length !== 64)\n throw new TypeError(`SchnorrSignature.fromHex: expected 64 bytes, not ${bytes.length}`);\n const r = bytesToNumber(bytes.subarray(0, 32));\n const s = bytesToNumber(bytes.subarray(32, 64));\n return new SchnorrSignature(r, s);\n }\n assertValidity() {\n const { r, s } = this;\n if (!isValidFieldElement(r) || !isWithinCurveOrder(s))\n throw new Error('Invalid signature');\n }\n toHex() {\n return numTo32bStr(this.r) + numTo32bStr(this.s);\n }\n toRawBytes() {\n return hexToBytes(this.toHex());\n }\n}\nfunction schnorrGetPublicKey(privateKey) {\n return Point.fromPrivateKey(privateKey).toRawX();\n}\nasync function schnorrSign(message, privateKey, auxRand = utils.randomBytes()) {\n if (message == null)\n throw new TypeError(`sign: Expected valid message, not \"${message}\"`);\n const { n } = CURVE;\n const m = ensureBytes(message);\n const d0 = normalizePrivateKey(privateKey);\n const rand = ensureBytes(auxRand);\n if (rand.length !== 32)\n throw new TypeError('sign: Expected 32 bytes of aux randomness');\n const P = Point.fromPrivateKey(d0);\n const d = hasEvenY(P) ? d0 : n - d0;\n const t0h = await taggedHash('BIP0340/aux', rand);\n const t = d ^ t0h;\n const k0h = await taggedHash('BIP0340/nonce', numTo32b(t), P.toRawX(), m);\n const k0 = mod(k0h, n);\n if (k0 === _0n)\n throw new Error('sign: Creation of signature failed. k is zero');\n const R = Point.fromPrivateKey(k0);\n const k = hasEvenY(R) ? k0 : n - k0;\n const e = await createChallenge(R.x, P, m);\n const sig = new SchnorrSignature(R.x, mod(k + e * d, n)).toRawBytes();\n const isValid = await schnorrVerify(sig, m, P.toRawX());\n if (!isValid)\n throw new Error('sign: Invalid signature produced');\n return sig;\n}\nasync function schnorrVerify(signature, message, publicKey) {\n const raw = signature instanceof SchnorrSignature;\n let sig;\n try {\n sig = raw ? signature : SchnorrSignature.fromHex(signature);\n if (raw)\n sig.assertValidity();\n }\n catch (error) {\n return false;\n }\n const { r, s } = sig;\n const m = ensureBytes(message);\n let P;\n try {\n P = normalizePublicKey(publicKey);\n }\n catch (error) {\n return false;\n }\n const e = await createChallenge(r, P, m);\n const R = Point.BASE.multiplyAndAddUnsafe(P, normalizePrivateKey(s), mod(-e, CURVE.n));\n if (!R || !hasEvenY(R) || R.x !== r)\n return false;\n return true;\n}\nexport const schnorr = {\n Signature: SchnorrSignature,\n getPublicKey: schnorrGetPublicKey,\n sign: schnorrSign,\n verify: schnorrVerify,\n};\nPoint.BASE._setWindowSize(8);\nconst crypto = {\n node: nodeCrypto,\n web: typeof self === 'object' && 'crypto' in self ? self.crypto : undefined,\n};\nexport const utils = {\n isValidPrivateKey(privateKey) {\n try {\n normalizePrivateKey(privateKey);\n return true;\n }\n catch (error) {\n return false;\n }\n },\n hashToPrivateKey: (hash) => {\n hash = ensureBytes(hash);\n if (hash.length < 40 || hash.length > 1024)\n throw new Error('Expected 40-1024 bytes of private key as per FIPS 186');\n const num = mod(bytesToNumber(hash), CURVE.n);\n if (num === _0n || num === _1n)\n throw new Error('Invalid private key');\n return numTo32b(num);\n },\n randomBytes: (bytesLength = 32) => {\n if (crypto.web) {\n return crypto.web.getRandomValues(new Uint8Array(bytesLength));\n }\n else if (crypto.node) {\n const { randomBytes } = crypto.node;\n return Uint8Array.from(randomBytes(bytesLength));\n }\n else {\n throw new Error(\"The environment doesn't have randomBytes function\");\n }\n },\n randomPrivateKey: () => {\n return utils.hashToPrivateKey(utils.randomBytes(40));\n },\n bytesToHex,\n mod,\n sha256: async (message) => {\n if (crypto.web) {\n const buffer = await crypto.web.subtle.digest('SHA-256', message.buffer);\n return new Uint8Array(buffer);\n }\n else if (crypto.node) {\n const { createHash } = crypto.node;\n return Uint8Array.from(createHash('sha256').update(message).digest());\n }\n else {\n throw new Error(\"The environment doesn't have sha256 function\");\n }\n },\n hmacSha256: async (key, ...messages) => {\n if (crypto.web) {\n const ckey = await crypto.web.subtle.importKey('raw', key, { name: 'HMAC', hash: { name: 'SHA-256' } }, false, ['sign']);\n const message = concatBytes(...messages);\n const buffer = await crypto.web.subtle.sign('HMAC', ckey, message);\n return new Uint8Array(buffer);\n }\n else if (crypto.node) {\n const { createHmac } = crypto.node;\n const hash = createHmac('sha256', key);\n messages.forEach((m) => hash.update(m));\n return Uint8Array.from(hash.digest());\n }\n else {\n throw new Error(\"The environment doesn't have hmac-sha256 function\");\n }\n },\n sha256Sync: undefined,\n hmacSha256Sync: undefined,\n precompute(windowSize = 8, point = Point.BASE) {\n const cached = point === Point.BASE ? point : new Point(point.x, point.y);\n cached._setWindowSize(windowSize);\n cached.multiply(_3n);\n return cached;\n },\n};\n","var __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 _SigningKey_privateKey;\nimport * as secp256k1 from \"@noble/secp256k1\";\nimport { arrayify, concat, dataLength, hexlify } from \"@ethersproject/bytes\";\nimport { computeHmac } from \"@ethersproject/crypto\";\nimport { toHex } from \"@ethersproject/math\";\nimport { Signature } from \"./signature.js\";\nimport { logger } from \"./logger.js\";\n// Make noble-secp256k1 sync\nsecp256k1.utils.hmacSha256Sync = function (key, ...messages) {\n return arrayify(computeHmac(\"sha256\", key, concat(messages)));\n};\nexport class SigningKey {\n constructor(privateKey) {\n _SigningKey_privateKey.set(this, void 0);\n logger.assertArgument((dataLength(privateKey) === 32), \"invalid private key length\", \"privateKey\", \"[REDACTED]\");\n __classPrivateFieldSet(this, _SigningKey_privateKey, hexlify(privateKey), \"f\");\n }\n get privateKey() { return __classPrivateFieldGet(this, _SigningKey_privateKey, \"f\"); }\n get publicKey() { return SigningKey.computePublicKey(__classPrivateFieldGet(this, _SigningKey_privateKey, \"f\")); }\n get compressedPublicKey() { return SigningKey.computePublicKey(__classPrivateFieldGet(this, _SigningKey_privateKey, \"f\"), true); }\n sign(digest) {\n logger.assertArgument((dataLength(digest) === 32), \"invalid digest length\", \"digest\", digest);\n const [sigDer, recid] = secp256k1.signSync(arrayify(digest), arrayify(__classPrivateFieldGet(this, _SigningKey_privateKey, \"f\")), {\n recovered: true,\n canonical: true\n });\n const sig = secp256k1.Signature.fromHex(sigDer);\n return Signature.from({\n r: toHex(\"0x\" + sig.r.toString(16), 32),\n s: toHex(\"0x\" + sig.s.toString(16), 32),\n v: (recid ? 0x1c : 0x1b)\n }).freeze();\n }\n computeShardSecret(other) {\n const pubKey = SigningKey.computePublicKey(other);\n return hexlify(secp256k1.getSharedSecret(arrayify(__classPrivateFieldGet(this, _SigningKey_privateKey, \"f\")), pubKey));\n }\n static computePublicKey(key, compressed) {\n let bytes = logger.getBytes(key, \"key\");\n if (bytes.length === 32) {\n const pubKey = secp256k1.getPublicKey(bytes, !!compressed);\n return hexlify(pubKey);\n }\n if (bytes.length === 64) {\n const pub = new Uint8Array(65);\n pub[0] = 0x04;\n pub.set(bytes, 1);\n bytes = pub;\n }\n const point = secp256k1.Point.fromHex(bytes);\n return hexlify(point.toRawBytes(compressed));\n }\n static recoverPublicKey(digest, signature) {\n const sig = Signature.from(signature);\n const der = secp256k1.Signature.fromCompact(arrayify(concat([sig.r, sig.s]))).toDERRawBytes();\n const pubKey = secp256k1.recoverPublicKey(arrayify(digest), der, sig.yParity);\n if (pubKey != null) {\n return hexlify(pubKey);\n }\n return logger.throwArgumentError(\"invalid signautre for digest\", \"signature\", signature);\n }\n static _addPoints(p0, p1, compressed) {\n const pub0 = secp256k1.Point.fromHex(SigningKey.computePublicKey(p0).substring(2));\n const pub1 = secp256k1.Point.fromHex(SigningKey.computePublicKey(p1).substring(2));\n return \"0x\" + pub0.add(pub1).toHex(!!compressed);\n }\n}\n_SigningKey_privateKey = new WeakMap();\n/*\nconst key = new SigningKey(\"0x1234567890123456789012345678901234567890123456789012345678901234\");\nconsole.log(key);\nconsole.log(key.sign(\"0x1234567890123456789012345678901234567890123456789012345678901234\"));\n{\n const privKey = \"0x1234567812345678123456781234567812345678123456781234567812345678\";\n const signingKey = new SigningKey(privKey);\n console.log(\"0\", signingKey, signingKey.publicKey, signingKey.publicKeyCompressed);\n\n let pubKey = SigningKey.computePublicKey(privKey);\n let pubKeyComp = SigningKey.computePublicKey(privKey, true);\n let pubKeyRaw = \"0x\" + SigningKey.computePublicKey(privKey).substring(4);\n console.log(\"A\", pubKey, pubKeyComp);\n\n let a = SigningKey.computePublicKey(pubKey);\n let b = SigningKey.computePublicKey(pubKey, true);\n console.log(\"B\", a, b);\n\n a = SigningKey.computePublicKey(pubKeyComp);\n b = SigningKey.computePublicKey(pubKeyComp, true);\n console.log(\"C\", a, b);\n\n a = SigningKey.computePublicKey(pubKeyRaw);\n b = SigningKey.computePublicKey(pubKeyRaw, true);\n console.log(\"D\", a, b);\n\n const digest = \"0x1122334411223344112233441122334411223344112233441122334411223344\";\n const sig = signingKey.sign(digest);\n console.log(\"SS\", sig, sig.r, sig.s, sig.yParity);\n\n console.log(\"R\", SigningKey.recoverPublicKey(digest, sig));\n}\n*/\n//# sourceMappingURL=signing-key.js.map","import { getAddress } from \"@ethersproject/address\";\nimport { dataLength } from \"@ethersproject/bytes\";\nfunction accessSetify(addr, storageKeys) {\n return {\n address: getAddress(addr),\n storageKeys: (storageKeys || []).map((storageKey, index) => {\n if (dataLength(storageKey) !== 32) {\n //logger.throwArgumentError(\"invalid access list storageKey\", `accessList[${ addr }>\n throw new Error(\"\");\n }\n return storageKey.toLowerCase();\n })\n };\n}\nexport function accessListify(value) {\n if (Array.isArray(value)) {\n return value.map((set, index) => {\n if (Array.isArray(set)) {\n if (set.length > 2) {\n //logger.throwArgumentError(\"access list expected to be [ address, storageKeys[>\n throw new Error(\"\");\n }\n return accessSetify(set[0], set[1]);\n }\n return accessSetify(set.address, set.storageKeys);\n });\n }\n const result = Object.keys(value).map((addr) => {\n const storageKeys = value[addr].reduce((accum, storageKey) => {\n accum[storageKey] = true;\n return accum;\n }, {});\n return accessSetify(addr, Object.keys(storageKeys).sort());\n });\n result.sort((a, b) => (a.address.localeCompare(b.address)));\n return result;\n}\n//# sourceMappingURL=accesslist.js.map","import { getAddress } from \"@ethersproject/address\";\nimport { keccak256 } from \"@ethersproject/crypto\";\nimport { SigningKey } from \"@ethersproject/signing-key\";\nexport function computeAddress(key) {\n const publicKey = SigningKey.computePublicKey(key, false);\n return getAddress(keccak256(\"0x\" + publicKey.substring(4)).substring(26));\n}\nexport function recoverAddress(digest, signature) {\n return computeAddress(SigningKey.recoverPublicKey(digest, signature));\n}\n//# sourceMappingURL=address.js.map","export const version = \"@ethersproject/transaction@6.0.0-beta.2\";\n//# sourceMappingURL=_version.js.map","import { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version.js\";\nexport const logger = new Logger(version);\n//# sourceMappingURL=logger.js.map","var __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 _Transaction_props;\nimport { getAddress } from \"@ethersproject/address\";\nimport { arrayify, concat, hexlify, zeroPadValue } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/crypto\";\nimport { toArray } from \"@ethersproject/math\";\nimport { getStore, setStore } from \"@ethersproject/properties\";\nimport { decodeRlp, encodeRlp } from \"@ethersproject/rlp\";\nimport { Signature } from \"@ethersproject/signing-key\";\nimport { accessListify } from \"./accesslist.js\";\nimport { recoverAddress } from \"./address.js\";\nimport { logger } from \"./logger.js\";\nconst BN_0 = BigInt(0);\nconst BN_2 = BigInt(2);\nconst BN_27 = BigInt(27);\nconst BN_28 = BigInt(28);\nconst BN_35 = BigInt(35);\nconst BN_MAX_UINT = BigInt(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\");\nfunction handleAddress(value) {\n if (value === \"0x\") {\n return null;\n }\n return getAddress(value);\n}\nfunction handleData(value, param) {\n try {\n return hexlify(value);\n }\n catch (error) {\n return logger.throwArgumentError(\"invalid data\", param, value);\n }\n}\nfunction handleAccessList(value, param) {\n try {\n return accessListify(value);\n }\n catch (error) {\n return logger.throwArgumentError(\"invalid accessList\", param, value);\n }\n}\nfunction handleNumber(_value, param) {\n if (_value === \"0x\") {\n return 0;\n }\n return logger.getNumber(_value, param);\n}\nfunction handleUint(_value, param) {\n if (_value === \"0x\") {\n return BN_0;\n }\n const value = logger.getBigInt(_value, param);\n if (value > BN_MAX_UINT) {\n logger.throwArgumentError(\"value exceeds uint size\", param, value);\n }\n return value;\n}\nfunction formatNumber(_value, name) {\n const value = logger.getBigInt(_value, \"value\");\n const result = toArray(value);\n if (result.length > 32) {\n logger.throwArgumentError(`value too large`, `tx.${name}`, value);\n }\n return result;\n}\nfunction formatAccessList(value) {\n return accessListify(value).map((set) => [set.address, set.storageKeys]);\n}\nfunction _parseLegacy(data) {\n const fields = decodeRlp(data);\n if (!Array.isArray(fields) || (fields.length !== 9 && fields.length !== 6)) {\n return logger.throwArgumentError(\"invalid field count for legacy transaction\", \"data\", data);\n }\n const tx = {\n type: 0,\n nonce: handleNumber(fields[0], \"nonce\"),\n gasPrice: handleUint(fields[1], \"gasPrice\"),\n gasLimit: handleUint(fields[2], \"gasLimit\"),\n to: handleAddress(fields[3]),\n value: handleUint(fields[4], \"value\"),\n data: handleData(fields[5], \"dta\"),\n chainId: BN_0\n };\n // Legacy unsigned transaction\n if (fields.length === 6) {\n return tx;\n }\n const v = handleUint(fields[6], \"v\");\n const r = handleUint(fields[7], \"r\");\n const s = handleUint(fields[8], \"s\");\n if (r === BN_0 && s === BN_0) {\n // EIP-155 unsigned transaction\n tx.chainId = v;\n }\n else {\n // Compute the EIP-155 chain ID (or 0 for legacy)\n let chainId = (v - BN_35) / BN_2;\n if (chainId < BN_0) {\n chainId = BN_0;\n }\n tx.chainId = chainId;\n // Signed Legacy Transaction\n if (chainId === BN_0 && (v < BN_27 || v > BN_28)) {\n logger.throwArgumentError(\"non-canonical legacy v\", \"v\", fields[6]);\n }\n tx.signature = Signature.from({\n r: zeroPadValue(fields[7], 32),\n s: zeroPadValue(fields[8], 32),\n v\n });\n tx.hash = keccak256(data);\n }\n return tx;\n}\nfunction _serializeLegacy(tx, sig) {\n const fields = [\n formatNumber(tx.nonce || 0, \"nonce\"),\n formatNumber(tx.gasPrice || 0, \"gasPrice\"),\n formatNumber(tx.gasLimit || 0, \"gasLimit\"),\n ((tx.to != null) ? getAddress(tx.to) : \"0x\"),\n formatNumber(tx.value || 0, \"value\"),\n (tx.data || \"0x\"),\n ];\n let chainId = BN_0;\n if (tx.chainId != null) {\n // A chainId was provided; if non-zero we'll use EIP-155\n chainId = logger.getBigInt(tx.chainId, \"tx.chainId\");\n // We have a chainId in the tx and an EIP-155 v in the signature,\n // make sure they agree with each other\n if (sig && sig.networkV != null && sig.legacyChainId !== chainId) {\n logger.throwArgumentError(\"tx.chainId/sig.v mismatch\", \"sig\", sig);\n }\n }\n else if (sig) {\n // No chainId provided, but the signature is signing with EIP-155; derive chainId\n const legacy = sig.legacyChainId;\n if (legacy != null) {\n chainId = legacy;\n }\n }\n // Requesting an unsigned transaction\n if (!sig) {\n // We have an EIP-155 transaction (chainId was specified and non-zero)\n if (chainId !== BN_0) {\n fields.push(toArray(chainId));\n fields.push(\"0x\");\n fields.push(\"0x\");\n }\n return encodeRlp(fields);\n }\n // We pushed a chainId and null r, s on for hashing only; remove those\n let v = BigInt(27 + sig.yParity);\n if (chainId !== BN_0) {\n v = Signature.getChainIdV(chainId, sig.v);\n }\n else if (BigInt(sig.v) !== v) {\n logger.throwArgumentError(\"tx.chainId/sig.v mismatch\", \"sig\", sig);\n }\n fields.push(toArray(v));\n fields.push(toArray(sig.r));\n fields.push(toArray(sig.s));\n return encodeRlp(fields);\n}\nfunction _parseEipSignature(tx, fields, serialize) {\n let yParity;\n try {\n yParity = handleNumber(fields[0], \"yParity\");\n if (yParity !== 0 && yParity !== 1) {\n throw new Error(\"bad yParity\");\n }\n }\n catch (error) {\n return logger.throwArgumentError(\"invalid yParity\", \"yParity\", fields[0]);\n }\n const r = zeroPadValue(fields[1], 32);\n const s = zeroPadValue(fields[2], 32);\n const signature = Signature.from({ r, s, yParity });\n tx.signature = signature;\n}\nfunction _parseEip1559(data) {\n const fields = decodeRlp(logger.getBytes(data).slice(1));\n if (!Array.isArray(fields) || (fields.length !== 9 && fields.length !== 12)) {\n logger.throwArgumentError(\"invalid field count for transaction type: 2\", \"data\", hexlify(data));\n }\n const maxPriorityFeePerGas = handleUint(fields[2], \"maxPriorityFeePerGas\");\n const maxFeePerGas = handleUint(fields[3], \"maxFeePerGas\");\n const tx = {\n type: 2,\n chainId: handleUint(fields[0], \"chainId\"),\n nonce: handleNumber(fields[1], \"nonce\"),\n maxPriorityFeePerGas: maxPriorityFeePerGas,\n maxFeePerGas: maxFeePerGas,\n gasPrice: null,\n gasLimit: handleUint(fields[4], \"gasLimit\"),\n to: handleAddress(fields[5]),\n value: handleUint(fields[6], \"value\"),\n data: handleData(fields[7], \"data\"),\n accessList: handleAccessList(fields[8], \"accessList\"),\n };\n // Unsigned EIP-1559 Transaction\n if (fields.length === 9) {\n return tx;\n }\n tx.hash = keccak256(data);\n _parseEipSignature(tx, fields.slice(9), _serializeEip1559);\n return tx;\n}\nfunction _serializeEip1559(tx, sig) {\n const fields = [\n formatNumber(tx.chainId || 0, \"chainId\"),\n formatNumber(tx.nonce || 0, \"nonce\"),\n formatNumber(tx.maxPriorityFeePerGas || 0, \"maxPriorityFeePerGas\"),\n formatNumber(tx.maxFeePerGas || 0, \"maxFeePerGas\"),\n formatNumber(tx.gasLimit || 0, \"gasLimit\"),\n ((tx.to != null) ? getAddress(tx.to) : \"0x\"),\n formatNumber(tx.value || 0, \"value\"),\n (tx.data || \"0x\"),\n (formatAccessList(tx.accessList || []))\n ];\n if (sig) {\n fields.push(formatNumber(sig.yParity, \"yParity\"));\n fields.push(toArray(sig.r));\n fields.push(toArray(sig.s));\n }\n return concat([\"0x02\", encodeRlp(fields)]);\n}\nfunction _parseEip2930(data) {\n const fields = decodeRlp(logger.getBytes(data).slice(1));\n if (!Array.isArray(fields) || (fields.length !== 8 && fields.length !== 11)) {\n logger.throwArgumentError(\"invalid field count for transaction type: 1\", \"data\", hexlify(data));\n }\n const tx = {\n type: 1,\n chainId: handleUint(fields[0], \"chainId\"),\n nonce: handleNumber(fields[1], \"nonce\"),\n gasPrice: handleUint(fields[2], \"gasPrice\"),\n gasLimit: handleUint(fields[3], \"gasLimit\"),\n to: handleAddress(fields[4]),\n value: handleUint(fields[5], \"value\"),\n data: handleData(fields[6], \"data\"),\n accessList: handleAccessList(fields[7], \"accessList\")\n };\n // Unsigned EIP-2930 Transaction\n if (fields.length === 8) {\n return tx;\n }\n tx.hash = keccak256(data);\n _parseEipSignature(tx, fields.slice(8), _serializeEip2930);\n return tx;\n}\nfunction _serializeEip2930(tx, sig) {\n const fields = [\n formatNumber(tx.chainId || 0, \"chainId\"),\n formatNumber(tx.nonce || 0, \"nonce\"),\n formatNumber(tx.gasPrice || 0, \"gasPrice\"),\n formatNumber(tx.gasLimit || 0, \"gasLimit\"),\n ((tx.to != null) ? getAddress(tx.to) : \"0x\"),\n formatNumber(tx.value || 0, \"value\"),\n (tx.data || \"0x\"),\n (formatAccessList(tx.accessList || []))\n ];\n if (sig) {\n fields.push(formatNumber(sig.yParity, \"recoveryParam\"));\n fields.push(toArray(sig.r));\n fields.push(toArray(sig.s));\n }\n return concat([\"0x01\", encodeRlp(fields)]);\n}\nexport class Transaction {\n constructor() {\n _Transaction_props.set(this, void 0);\n __classPrivateFieldSet(this, _Transaction_props, {\n type: null,\n to: null,\n nonce: 0,\n gasLimit: BigInt(0),\n gasPrice: null,\n maxPriorityFeePerGas: null,\n maxFeePerGas: null,\n data: \"0x\",\n value: BigInt(0),\n chainId: BigInt(0),\n sig: null,\n accessList: null\n }, \"f\");\n }\n // A type of null indicates the type will be populated automatically\n get type() { return getStore(__classPrivateFieldGet(this, _Transaction_props, \"f\"), \"type\"); }\n get typeName() {\n switch (this.type) {\n case 0: return \"legacy\";\n case 1: return \"eip-2930\";\n case 2: return \"eip-1559\";\n }\n return null;\n }\n set type(value) {\n switch (value) {\n case null:\n setStore(__classPrivateFieldGet(this, _Transaction_props, \"f\"), \"type\", null);\n break;\n case 0:\n case \"legacy\":\n setStore(__classPrivateFieldGet(this, _Transaction_props, \"f\"), \"type\", 0);\n break;\n case 1:\n case \"berlin\":\n case \"eip-2930\":\n setStore(__classPrivateFieldGet(this, _Transaction_props, \"f\"), \"type\", 1);\n break;\n case 2:\n case \"london\":\n case \"eip-1559\":\n setStore(__classPrivateFieldGet(this, _Transaction_props, \"f\"), \"type\", 2);\n break;\n default:\n throw new Error(`unsupported transaction type`);\n }\n }\n get to() { return getStore(__classPrivateFieldGet(this, _Transaction_props, \"f\"), \"to\"); }\n set to(value) {\n setStore(__classPrivateFieldGet(this, _Transaction_props, \"f\"), \"to\", (value == null) ? null : getAddress(value));\n }\n get nonce() { return getStore(__classPrivateFieldGet(this, _Transaction_props, \"f\"), \"nonce\"); }\n set nonce(value) { setStore(__classPrivateFieldGet(this, _Transaction_props, \"f\"), \"nonce\", logger.getNumber(value, \"value\")); }\n get gasLimit() { return getStore(__classPrivateFieldGet(this, _Transaction_props, \"f\"), \"gasLimit\"); }\n set gasLimit(value) { setStore(__classPrivateFieldGet(this, _Transaction_props, \"f\"), \"gasLimit\", logger.getBigInt(value)); }\n get gasPrice() {\n const value = getStore(__classPrivateFieldGet(this, _Transaction_props, \"f\"), \"gasPrice\");\n if (value == null && (this.type === 0 || this.type === 1)) {\n return BN_0;\n }\n return value;\n }\n set gasPrice(value) {\n setStore(__classPrivateFieldGet(this, _Transaction_props, \"f\"), \"gasPrice\", (value == null) ? null : logger.getBigInt(value, \"gasPrice\"));\n }\n get maxPriorityFeePerGas() {\n const value = getStore(__classPrivateFieldGet(this, _Transaction_props, \"f\"), \"maxPriorityFeePerGas\");\n if (value == null && this.type === 2) {\n return BN_0;\n }\n return value;\n }\n set maxPriorityFeePerGas(value) {\n setStore(__classPrivateFieldGet(this, _Transaction_props, \"f\"), \"maxPriorityFeePerGas\", (value == null) ? null : logger.getBigInt(value, \"maxPriorityFeePerGas\"));\n }\n get maxFeePerGas() {\n const value = getStore(__classPrivateFieldGet(this, _Transaction_props, \"f\"), \"maxFeePerGas\");\n if (value == null && this.type === 2) {\n return BN_0;\n }\n return value;\n }\n set maxFeePerGas(value) {\n setStore(__classPrivateFieldGet(this, _Transaction_props, \"f\"), \"maxFeePerGas\", (value == null) ? null : logger.getBigInt(value, \"maxFeePerGas\"));\n }\n get data() { return getStore(__classPrivateFieldGet(this, _Transaction_props, \"f\"), \"data\"); }\n set data(value) { setStore(__classPrivateFieldGet(this, _Transaction_props, \"f\"), \"data\", hexlify(value)); }\n get value() { return getStore(__classPrivateFieldGet(this, _Transaction_props, \"f\"), \"value\"); }\n set value(value) {\n setStore(__classPrivateFieldGet(this, _Transaction_props, \"f\"), \"value\", logger.getBigInt(value, \"value\"));\n }\n get chainId() { return getStore(__classPrivateFieldGet(this, _Transaction_props, \"f\"), \"chainId\"); }\n set chainId(value) { setStore(__classPrivateFieldGet(this, _Transaction_props, \"f\"), \"chainId\", logger.getBigInt(value)); }\n get signature() { return getStore(__classPrivateFieldGet(this, _Transaction_props, \"f\"), \"sig\") || null; }\n set signature(value) {\n setStore(__classPrivateFieldGet(this, _Transaction_props, \"f\"), \"sig\", (value == null) ? null : Signature.from(value));\n }\n get accessList() {\n const value = getStore(__classPrivateFieldGet(this, _Transaction_props, \"f\"), \"accessList\") || null;\n if (value == null && (this.type === 1 || this.type === 2)) {\n return [];\n }\n return value;\n }\n set accessList(value) {\n setStore(__classPrivateFieldGet(this, _Transaction_props, \"f\"), \"accessList\", (value == null) ? null : accessListify(value));\n }\n get hash() {\n if (this.signature == null) {\n throw new Error(\"cannot hash unsigned transaction; maybe you meant .unsignedHash\");\n }\n return keccak256(this.serialized);\n }\n get unsignedHash() {\n return keccak256(this.unsignedSerialized);\n }\n get from() {\n if (this.signature == null) {\n return null;\n }\n return recoverAddress(this.unsignedSerialized, this.signature);\n }\n get fromPublicKey() {\n if (this.signature == null) {\n return null;\n }\n // use ecrecover\n return \"\";\n }\n isSigned() {\n return this.signature != null;\n }\n get serialized() {\n if (this.signature == null) {\n throw new Error(\"cannot serialize unsigned transaction; maybe you meant .unsignedSerialized\");\n }\n const types = this.inferTypes();\n if (types.length !== 1) {\n throw new Error(\"cannot determine transaction type; specify type manually\");\n }\n switch (types[0]) {\n case 0:\n return _serializeLegacy(this, this.signature);\n case 1:\n return _serializeEip2930(this, this.signature);\n case 2:\n return _serializeEip1559(this, this.signature);\n }\n throw new Error(\"unsupported type\");\n }\n get unsignedSerialized() {\n const types = this.inferTypes();\n if (types.length !== 1) {\n throw new Error(\"cannot determine transaction type; specify type manually\");\n }\n switch (types[0]) {\n case 0:\n return _serializeLegacy(this);\n case 1:\n return _serializeEip2930(this);\n case 2:\n return _serializeEip1559(this);\n }\n throw new Error(\"unsupported type\");\n }\n // Validates properties and lists possible types this transaction adheres to\n inferTypes() {\n // Checks that there are no conflicting properties set\n const hasGasPrice = this.gasPrice != null;\n const hasFee = (this.maxFeePerGas != null || this.maxPriorityFeePerGas != null);\n const hasAccessList = (this.accessList != null);\n //if (hasGasPrice && hasFee) {\n // throw new Error(\"transaction cannot have gasPrice and maxFeePerGas\");\n //}\n if (this.maxFeePerGas != null && this.maxPriorityFeePerGas != null) {\n if (this.maxFeePerGas < this.maxPriorityFeePerGas) {\n throw new Error(\"priorityFee cannot be more than maxFee\");\n }\n }\n //if (this.type === 2 && hasGasPrice) {\n // throw new Error(\"eip-1559 transaction cannot have gasPrice\");\n //}\n if ((this.type === 0 || this.type === 1) && hasFee) {\n throw new Error(\"transaction type cannot have maxFeePerGas or maxPriorityFeePerGas\");\n }\n if (this.type === 0 && hasAccessList) {\n throw new Error(\"legacy transaction cannot have accessList\");\n }\n const types = [];\n // Explicit type\n if (this.type != null) {\n types.push(this.type);\n }\n else {\n if (hasFee) {\n types.push(2);\n }\n else if (hasGasPrice) {\n types.push(1);\n if (!hasAccessList) {\n types.push(0);\n }\n }\n else if (hasAccessList) {\n types.push(1);\n types.push(2);\n }\n else {\n types.push(0);\n types.push(1);\n types.push(2);\n }\n }\n types.sort();\n return types;\n }\n isLegacy() { return (this.type === 0); }\n isBerlin() { return (this.type === 1); }\n isLondon() { return (this.type === 2); }\n clone() {\n return Transaction.from(this);\n }\n freeze() {\n if (__classPrivateFieldGet(this, _Transaction_props, \"f\").sig) {\n __classPrivateFieldGet(this, _Transaction_props, \"f\").sig = (__classPrivateFieldGet(this, _Transaction_props, \"f\").sig.clone().freeze());\n }\n if (__classPrivateFieldGet(this, _Transaction_props, \"f\").accessList) {\n __classPrivateFieldGet(this, _Transaction_props, \"f\").accessList = Object.freeze(__classPrivateFieldGet(this, _Transaction_props, \"f\").accessList.map((set) => {\n Object.freeze(set.storageKeys);\n return Object.freeze(set);\n }));\n }\n Object.freeze(__classPrivateFieldGet(this, _Transaction_props, \"f\"));\n return this;\n }\n isFrozen() {\n return Object.isFrozen(__classPrivateFieldGet(this, _Transaction_props, \"f\"));\n }\n static from(tx) {\n if (typeof (tx) === \"string\") {\n const payload = arrayify(tx);\n if (payload[0] >= 0x7f) { // @TODO: > vs >= ??\n return Transaction.from(_parseLegacy(payload));\n }\n switch (payload[0]) {\n case 1: return Transaction.from(_parseEip2930(payload));\n case 2: return Transaction.from(_parseEip1559(payload));\n }\n throw new Error(\"unsupported transaction type\");\n }\n const result = new Transaction();\n if (tx.type != null) {\n result.type = tx.type;\n }\n if (tx.to != null) {\n result.to = tx.to;\n }\n if (tx.nonce != null) {\n result.nonce = tx.nonce;\n }\n if (tx.gasLimit != null) {\n result.gasLimit = tx.gasLimit;\n }\n if (tx.gasPrice != null) {\n result.gasPrice = tx.gasPrice;\n }\n if (tx.maxPriorityFeePerGas != null) {\n result.maxPriorityFeePerGas = tx.maxPriorityFeePerGas;\n }\n if (tx.maxFeePerGas != null) {\n result.maxFeePerGas = tx.maxFeePerGas;\n }\n if (tx.data != null) {\n result.data = tx.data;\n }\n if (tx.value != null) {\n result.value = tx.value;\n }\n if (tx.chainId != null) {\n result.chainId = tx.chainId;\n }\n if (tx.signature != null) {\n result.signature = Signature.from(tx.signature);\n }\n if (tx.accessList != null) {\n result.accessList = tx.accessList;\n }\n if (tx.hash != null) {\n if (result.isSigned()) {\n if (result.hash !== tx.hash) {\n throw new Error(\"hash mismatch\");\n }\n }\n else {\n throw new Error(\"unsigned transaction cannot have a hashs\");\n }\n }\n if (tx.from != null) {\n if (result.isSigned()) {\n if (result.from.toLowerCase() !== (tx.from || \"\").toLowerCase()) {\n throw new Error(\"from mismatch\");\n }\n }\n else {\n throw new Error(\"unsigned transaction cannot have a from\");\n }\n }\n return result;\n }\n}\n_Transaction_props = new WeakMap();\n//# sourceMappingURL=transaction.js.map","var __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 _Block_transactions, _TransactionReceipt_logs;\n//import { resolveAddress } from \"@ethersproject/address\";\nimport { hexlify } from \"@ethersproject/bytes\";\nimport { defineProperties } from \"@ethersproject/properties\";\nimport { accessListify } from \"@ethersproject/transaction\";\nimport { logger } from \"./logger.js\";\n// -----------------------\nfunction getValue(value) {\n if (value == null) {\n return null;\n }\n return value;\n}\nfunction toJson(value) {\n if (value == null) {\n return null;\n }\n return value.toString();\n}\n// @TODO? <T extends FeeData = { }> implements Required<T>\nexport class FeeData {\n constructor(gasPrice, maxFeePerGas, maxPriorityFeePerGas) {\n defineProperties(this, {\n gasPrice: getValue(gasPrice),\n maxFeePerGas: getValue(maxFeePerGas),\n maxPriorityFeePerGas: getValue(maxPriorityFeePerGas)\n });\n }\n toJSON() {\n const { gasPrice, maxFeePerGas, maxPriorityFeePerGas } = this;\n return {\n _type: \"FeeData\",\n gasPrice: toJson(gasPrice),\n maxFeePerGas: toJson(maxFeePerGas),\n maxPriorityFeePerGas: toJson(maxPriorityFeePerGas),\n };\n }\n}\n;\nexport function copyRequest(req) {\n const result = {};\n // These could be addresses, ENS names or Addressables\n if (req.to) {\n result.to = req.to;\n }\n if (req.from) {\n result.from = req.from;\n }\n if (req.data) {\n result.data = hexlify(req.data);\n }\n const bigIntKeys = \"chainId,gasLimit,gasPrice,maxFeePerGas, maxPriorityFeePerGas,value\".split(/,/);\n for (const key in bigIntKeys) {\n if (!(key in req) || req[key] == null) {\n continue;\n }\n result[key] = logger.getBigInt(req[key], `request.${key}`);\n }\n const numberKeys = \"type,nonce\".split(/,/);\n for (const key in numberKeys) {\n if (!(key in req) || req[key] == null) {\n continue;\n }\n result[key] = logger.getNumber(req[key], `request.${key}`);\n }\n if (req.accessList) {\n result.accessList = accessListify(req.accessList);\n }\n if (\"blockTag\" in req) {\n result.blockTag = req.blockTag;\n }\n if (\"enableCcipRead\" in req) {\n result.enableCcipReadEnabled = !!req.enableCcipRead;\n }\n if (\"customData\" in req) {\n result.customData = req.customData;\n }\n return result;\n}\n;\nexport class Block {\n constructor(block, provider) {\n _Block_transactions.set(this, void 0);\n if (provider == null) {\n provider = dummyProvider;\n }\n __classPrivateFieldSet(this, _Block_transactions, Object.freeze(block.transactions.map((tx) => {\n if (typeof (tx) !== \"string\" && tx.provider !== provider) {\n throw new Error(\"provider mismatch\");\n }\n return tx;\n })), \"f\");\n ;\n defineProperties(this, {\n provider,\n hash: getValue(block.hash),\n number: block.number,\n timestamp: block.timestamp,\n parentHash: block.parentHash,\n nonce: block.nonce,\n difficulty: block.difficulty,\n gasLimit: block.gasLimit,\n gasUsed: block.gasUsed,\n miner: block.miner,\n extraData: block.extraData,\n baseFeePerGas: getValue(block.baseFeePerGas)\n });\n }\n get transactions() { return __classPrivateFieldGet(this, _Block_transactions, \"f\"); }\n //connect(provider: Provider): Block<T> {\n // return new Block(this, provider);\n //}\n toJSON() {\n const { baseFeePerGas, difficulty, extraData, gasLimit, gasUsed, hash, miner, nonce, number, parentHash, timestamp, transactions } = this;\n return {\n _type: \"Block\",\n baseFeePerGas: toJson(baseFeePerGas),\n difficulty: toJson(difficulty),\n extraData,\n gasLimit: toJson(gasLimit),\n gasUsed: toJson(gasUsed),\n hash, miner, nonce, number, parentHash, timestamp,\n transactions,\n };\n }\n [(_Block_transactions = new WeakMap(), Symbol.iterator)]() {\n let index = 0;\n return {\n next: () => {\n if (index < this.length) {\n return {\n value: this.transactions[index++], done: false\n };\n }\n return { value: undefined, done: true };\n }\n };\n }\n get length() { return this.transactions.length; }\n get date() {\n if (this.timestamp == null) {\n return null;\n }\n return new Date(this.timestamp * 1000);\n }\n async getTransaction(index) {\n const tx = this.transactions[index];\n if (tx == null) {\n throw new Error(\"no such tx\");\n }\n if (typeof (tx) === \"string\") {\n return (await this.provider.getTransaction(tx));\n }\n else {\n return tx;\n }\n }\n isMined() { return !!this.hash; }\n isLondon() { return !!this.baseFeePerGas; }\n orphanedEvent() {\n if (!this.isMined()) {\n throw new Error(\"\");\n }\n return createOrphanedBlockFilter(this);\n }\n}\nexport class Log {\n constructor(log, provider) {\n if (provider == null) {\n provider = dummyProvider;\n }\n this.provider = provider;\n const topics = Object.freeze(log.topics.slice());\n defineProperties(this, {\n transactionHash: log.transactionHash,\n blockHash: log.blockHash,\n blockNumber: log.blockNumber,\n removed: log.removed,\n address: log.address,\n data: log.data,\n topics,\n index: log.index,\n transactionIndex: log.transactionIndex,\n });\n }\n //connect(provider: Provider): Log {\n // return new Log(this, provider);\n //}\n toJSON() {\n const { address, blockHash, blockNumber, data, index, removed, topics, transactionHash, transactionIndex } = this;\n return {\n _type: \"log\",\n address, blockHash, blockNumber, data, index,\n removed, topics, transactionHash, transactionIndex\n };\n }\n async getBlock() {\n return (await this.provider.getBlock(this.blockHash));\n }\n async getTransaction() {\n return (await this.provider.getTransaction(this.transactionHash));\n }\n async getTransactionReceipt() {\n return (await this.provider.getTransactionReceipt(this.transactionHash));\n }\n removedEvent() {\n return createRemovedLogFilter(this);\n }\n}\nexport class TransactionReceipt {\n constructor(tx, provider) {\n _TransactionReceipt_logs.set(this, void 0);\n if (provider == null) {\n provider = dummyProvider;\n }\n __classPrivateFieldSet(this, _TransactionReceipt_logs, Object.freeze(tx.logs.map((log) => {\n if (provider !== log.provider) {\n //return log.connect(provider);\n throw new Error(\"provider mismatch\");\n }\n return log;\n })), \"f\");\n defineProperties(this, {\n provider,\n to: tx.to,\n from: tx.from,\n contractAddress: tx.contractAddress,\n hash: tx.hash,\n index: tx.index,\n blockHash: tx.blockHash,\n blockNumber: tx.blockNumber,\n logsBloom: tx.logsBloom,\n gasUsed: tx.gasUsed,\n cumulativeGasUsed: tx.cumulativeGasUsed,\n gasPrice: (tx.effectiveGasPrice || tx.gasPrice),\n byzantium: tx.byzantium,\n status: tx.status,\n root: tx.root\n });\n }\n get logs() { return __classPrivateFieldGet(this, _TransactionReceipt_logs, \"f\"); }\n //connect(provider: Provider): TransactionReceipt {\n // return new TransactionReceipt(this, provider);\n //}\n toJSON() {\n const { to, from, contractAddress, hash, index, blockHash, blockNumber, logsBloom, logs, byzantium, status, root } = this;\n return {\n _type: \"TransactionReceipt\",\n blockHash, blockNumber, byzantium, contractAddress,\n cumulativeGasUsed: toJson(this.cumulativeGasUsed),\n from,\n gasPrice: toJson(this.gasPrice),\n gasUsed: toJson(this.gasUsed),\n hash, index, logs, logsBloom, root, status, to\n };\n }\n get length() { return this.logs.length; }\n [(_TransactionReceipt_logs = new WeakMap(), Symbol.iterator)]() {\n let index = 0;\n return {\n next: () => {\n if (index < this.length) {\n return { value: this.logs[index++], done: false };\n }\n return { value: undefined, done: true };\n }\n };\n }\n get fee() {\n return this.gasUsed * this.gasPrice;\n }\n async getBlock() {\n const block = await this.provider.getBlock(this.blockHash);\n if (block == null) {\n throw new Error(\"TODO\");\n }\n return block;\n }\n async getTransaction() {\n const tx = await this.provider.getTransaction(this.hash);\n if (tx == null) {\n throw new Error(\"TODO\");\n }\n return tx;\n }\n async confirmations() {\n return (await this.provider.getBlockNumber()) - this.blockNumber + 1;\n }\n removedEvent() {\n return createRemovedTransactionFilter(this);\n }\n reorderedEvent(other) {\n if (other && !other.isMined()) {\n return logger.throwError(\"unmined 'other' transction cannot be orphaned\", \"UNSUPPORTED_OPERATION\", {\n operation: \"reorderedEvent(other)\"\n });\n }\n return createReorderedTransactionFilter(this, other);\n }\n}\n;\nexport class TransactionResponse {\n constructor(tx, provider) {\n if (provider == null) {\n provider = dummyProvider;\n }\n this.provider = provider;\n this.blockNumber = (tx.blockNumber != null) ? tx.blockNumber : null;\n this.blockHash = (tx.blockHash != null) ? tx.blockHash : null;\n this.hash = tx.hash;\n this.index = tx.index;\n this.type = tx.type;\n this.from = tx.from;\n this.to = tx.to || null;\n this.gasLimit = tx.gasLimit;\n this.nonce = tx.nonce;\n this.data = tx.data;\n this.value = tx.value;\n this.gasPrice = tx.gasPrice;\n this.maxPriorityFeePerGas = (tx.maxPriorityFeePerGas != null) ? tx.maxPriorityFeePerGas : null;\n this.maxFeePerGas = (tx.maxFeePerGas != null) ? tx.maxFeePerGas : null;\n this.chainId = tx.chainId;\n this.signature = tx.signature;\n this.accessList = (tx.accessList != null) ? tx.accessList : null;\n }\n //connect(provider: Provider): TransactionResponse {\n // return new TransactionResponse(this, provider);\n //}\n toJSON() {\n const { blockNumber, blockHash, index, hash, type, to, from, nonce, data, signature, accessList } = this;\n return {\n _type: \"TransactionReceipt\",\n accessList, blockNumber, blockHash,\n chainId: toJson(this.chainId),\n data, from,\n gasLimit: toJson(this.gasLimit),\n gasPrice: toJson(this.gasPrice),\n hash,\n maxFeePerGas: toJson(this.maxFeePerGas),\n maxPriorityFeePerGas: toJson(this.maxPriorityFeePerGas),\n nonce, signature, to, index, type,\n value: toJson(this.value),\n };\n }\n async getBlock() {\n let blockNumber = this.blockNumber;\n if (blockNumber == null) {\n const tx = await this.getTransaction();\n if (tx) {\n blockNumber = tx.blockNumber;\n }\n }\n if (blockNumber == null) {\n return null;\n }\n const block = this.provider.getBlock(blockNumber);\n if (block == null) {\n throw new Error(\"TODO\");\n }\n return block;\n }\n async getTransaction() {\n return this.provider.getTransaction(this.hash);\n }\n async wait(confirms) {\n return this.provider.waitForTransaction(this.hash, confirms);\n }\n isMined() {\n return (this.blockHash != null);\n }\n isLegacy() {\n return (this.type === 0);\n }\n isBerlin() {\n return (this.type === 1);\n }\n isLondon() {\n return (this.type === 2);\n }\n removedEvent() {\n if (!this.isMined()) {\n return logger.throwError(\"unmined transaction canot be orphaned\", \"UNSUPPORTED_OPERATION\", {\n operation: \"removeEvent()\"\n });\n }\n return createRemovedTransactionFilter(this);\n }\n reorderedEvent(other) {\n if (!this.isMined()) {\n return logger.throwError(\"unmined transaction canot be orphaned\", \"UNSUPPORTED_OPERATION\", {\n operation: \"removeEvent()\"\n });\n }\n if (other && !other.isMined()) {\n return logger.throwError(\"unmined 'other' transaction canot be orphaned\", \"UNSUPPORTED_OPERATION\", {\n operation: \"removeEvent()\"\n });\n }\n return createReorderedTransactionFilter(this, other);\n }\n}\nfunction createOrphanedBlockFilter(block) {\n return { orphan: \"drop-block\", hash: block.hash, number: block.number };\n}\nfunction createReorderedTransactionFilter(tx, other) {\n return { orphan: \"reorder-transaction\", tx, other };\n}\nfunction createRemovedTransactionFilter(tx) {\n return { orphan: \"drop-transaction\", tx };\n}\nfunction createRemovedLogFilter(log) {\n return { orphan: \"drop-log\", log: {\n transactionHash: log.transactionHash,\n blockHash: log.blockHash,\n blockNumber: log.blockNumber,\n address: log.address,\n data: log.data,\n topics: Object.freeze(log.topics.slice()),\n index: log.index\n } };\n}\nfunction fail() {\n throw new Error(\"this provider should not be used\");\n}\nclass DummyProvider {\n get provider() { return this; }\n async getNetwork() { return fail(); }\n async getFeeData() { return fail(); }\n async estimateGas(tx) { return fail(); }\n async call(tx) { return fail(); }\n async resolveName(name) { return fail(); }\n // State\n async getBlockNumber() { return fail(); }\n // Account\n async getBalanceOf(address, blockTag) {\n return fail();\n }\n async getTransactionCountOf(address, blockTag) {\n return fail();\n }\n async getCode(address, blockTag) {\n return fail();\n }\n async getStorageAt(address, position, blockTag) {\n return fail();\n }\n // Write\n async broadcastTransaction(signedTx) { return fail(); }\n // Queries\n async getBlock(blockHashOrBlockTag) {\n return fail();\n }\n async getBlockWithTransactions(blockHashOrBlockTag) {\n return fail();\n }\n async getTransaction(hash) {\n return fail();\n }\n async getTransactionReceipt(hash) {\n return fail();\n }\n // Bloom-filter Queries\n async getLogs(filter) {\n return fail();\n }\n // ENS\n async lookupAddress(address) {\n return fail();\n }\n async waitForTransaction(hash, confirms, timeout) {\n return fail();\n }\n async waitForBlock(blockTag) {\n return fail();\n }\n // EventEmitterable\n async on(event, listener) { return fail(); }\n async once(event, listener) { return fail(); }\n async emit(event, ...args) { return fail(); }\n async listenerCount(event) { return fail(); }\n async listeners(event) { return fail(); }\n async off(event, listener) { return fail(); }\n async removeAllListeners(event) { return fail(); }\n async addListener(event, listener) { return fail(); }\n async removeListener(event, listener) { return fail(); }\n}\n// A singleton provider instance that can be used as a placeholder. This\n// allows API that have a Provider added later to not require a null check.\nexport const dummyProvider = new DummyProvider();\n//# sourceMappingURL=provider.js.map","// Belongs to Networks; requires abstract-provider\n// provider requires abstract-provider and network\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 _Formatter_format, _Formatter_baseBlock;\n/**\n * Formatter\n *\n * This is responsibile for converting much of the various\n * loose network values into a concrete ethers-ready value.\n *\n * For example, converting addresses to checksum addresses,\n * validating a hash is 32 bytes, and so on.\n *\n * By sub-classing this class and providing it in a custom\n * Network object this allows exotic (non-Ethereum) networks\n * to be fairly simple to adapt to ethers.\n */\nimport { getAddress, getCreateAddress } from \"@ethersproject/address\";\nimport { dataLength, dataSlice, isHexString, quantity } from \"@ethersproject/bytes\";\nimport { toHex } from \"@ethersproject/math\";\nimport { Signature } from \"@ethersproject/signing-key\";\nimport { accessListify } from \"@ethersproject/transaction\";\nimport { Block, Log, TransactionReceipt, TransactionResponse } from \"./provider.js\";\nimport { logger } from \"./logger.js\";\nconst BN_MAX_UINT256 = BigInt(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\");\n//export type AccessListSet = { address: string, storageKeys: Array<string> };\n//export type AccessList = Array<AccessListSet>;\n//export type AccessListish = AccessList |\n// Array<[ string, Array<string> ]> |\n// Record<string, Array<string>>;\nfunction stringify(value) {\n if (typeof (value) !== \"string\") {\n throw new Error(\"invalid string\");\n }\n return value;\n}\nexport class Formatter {\n constructor() {\n _Formatter_format.set(this, void 0);\n _Formatter_baseBlock.set(this, void 0);\n const address = this.address.bind(this);\n const bigNumber = this.bigNumber.bind(this);\n const blockTag = this.blockTag.bind(this);\n const data = this.data.bind(this);\n const hash = this.hash.bind(this);\n const number = this.number.bind(this);\n const uint256 = this.uint256.bind(this);\n const topics = this.arrayOf(hash);\n __classPrivateFieldSet(this, _Formatter_format, {\n address,\n bigNumber,\n blockTag,\n data,\n hash,\n number,\n uint256,\n topics,\n filter: this.object({\n fromBlock: this.allowNull(blockTag, undefined),\n toBlock: this.allowNull(blockTag, undefined),\n blockHash: this.allowNull(hash, undefined),\n address: this.allowNull(address, undefined),\n topics: this.allowNull(topics, undefined)\n }),\n transactionRequest: this.object({\n from: this.allowNull(address),\n type: this.allowNull(number),\n to: this.allowNull(address),\n nonce: this.allowNull(number),\n gasLimit: this.allowNull(uint256),\n gasPrice: this.allowNull(uint256),\n maxFeePerGas: this.allowNull(uint256),\n maxPriorityFeePerGas: this.allowNull(uint256),\n data: this.allowNull(data),\n value: this.allowNull(uint256),\n }),\n transactionResponse: this.object({\n hash: hash,\n index: number,\n type: this.allowNull(number, 0),\n // These can be null for pending blocks\n blockHash: this.allowNull(hash),\n blockNumber: this.allowNull(number),\n // For Legacy transactions, this comes from the v\n chainId: this.allowNull(number),\n from: address,\n to: this.address,\n gasLimit: bigNumber,\n gasPrice: this.allowNull(bigNumber),\n maxFeePerGas: this.allowNull(bigNumber),\n maxPriorityFeePerGas: this.allowNull(bigNumber),\n value: bigNumber,\n data: data,\n nonce: number,\n r: hash,\n s: hash,\n v: number,\n accessList: this.allowNull(this.accessList)\n }, {\n index: [\"transactionIndex\"]\n }),\n }, \"f\");\n __classPrivateFieldSet(this, _Formatter_baseBlock, this.object({\n number: number,\n hash: this.allowNull(hash, null),\n timestamp: number,\n parentHash: hash,\n nonce: this.allowNull(stringify, \"0x0000000000000000\"),\n difficulty: bigNumber,\n gasLimit: bigNumber,\n gasUsed: bigNumber,\n miner: this.allowNull(address, \"0x0000000000000000000000000000000000000000\"),\n extraData: stringify,\n baseFeePerGas: this.allowNull(bigNumber),\n }), \"f\");\n }\n // An address\n address(value) {\n return getAddress(value);\n }\n // An address from a call result; may be zero-padded\n callAddress(value) {\n if (dataLength(value) !== 32 || dataSlice(value, 0, 12) !== \"0x000000000000000000000000\") {\n logger.throwArgumentError(\"invalid call address\", \"value\", value);\n }\n return this.address(dataSlice(value, 12));\n }\n // An address from a transaction (e.g. { from: string, nonce: number })\n contractAddress(value) {\n return getCreateAddress({\n from: this.address(value.from),\n nonce: logger.getNumber(value.nonce, \"value.nonce\")\n });\n }\n // Block Tag\n blockTag(value) {\n if (value == null) {\n return \"latest\";\n }\n switch (value) {\n case \"earliest\":\n return \"0x0\";\n case \"latest\":\n case \"pending\":\n return value;\n }\n if (typeof (value) === \"number\" || (isHexString(value) && dataLength(value) < 32)) {\n return quantity(value);\n }\n return logger.throwArgumentError(\"invalid blockTag\", \"value\", value);\n }\n // Block objects\n block(value, provider) {\n const params = __classPrivateFieldGet(this, _Formatter_baseBlock, \"f\").call(this, value);\n params.transactions = value.transactions.map((t) => this.hash(t));\n return new Block(params, provider);\n }\n blockWithTransactions(value, provider) {\n throw new Error();\n }\n // Transactions\n transactionRequest(value, provider) {\n return __classPrivateFieldGet(this, _Formatter_format, \"f\").transactionRequest(value);\n }\n transactionResponse(value, provider) {\n value = Object.assign({}, value);\n // @TODO: Use the remap feature\n if (value.data == null && value.input != null) {\n value.data = value.input;\n }\n if (value.gasLimit == null && value.gas) {\n value.gasLimit = value.gas;\n }\n value = __classPrivateFieldGet(this, _Formatter_format, \"f\").transactionResponse(value);\n const sig = Signature.from({ r: value.r, s: value.s, v: value.v });\n value.signature = sig;\n if (value.chainId == null) {\n value.chainId = sig.legacyChainId;\n }\n return new TransactionResponse(value, provider);\n }\n // Receipts\n log(value, provider) {\n const log = this.object({\n address: this.address,\n blockHash: this.hash,\n blockNumber: this.number,\n data: this.data,\n index: this.number,\n removed: this.boolean,\n topics: this.topics,\n transactionHash: this.hash,\n transactionIndex: this.number,\n }, {\n index: [\"logIndex\"]\n })(value);\n return new Log(log, provider);\n }\n receipt(value, provider) {\n const receipt = this.object({\n blockHash: this.hash,\n blockNumber: this.number,\n contractAddress: this.allowNull(this.address),\n cumulativeGasUsed: this.bigNumber,\n from: this.address,\n gasUsed: this.bigNumber,\n logs: this.arrayOf((v) => (this.log(v, provider))),\n logsBloom: this.data,\n root: this.allowNull(this.data),\n status: this.allowNull(this.number),\n to: this.address,\n gasPrice: this.allowNull(this.bigNumber),\n hash: this.hash,\n index: this.number,\n type: this.allowNull(this.number, 0),\n }, {\n hash: [\"transactionHash\"],\n gasPrice: [\"effectiveGasPrice\"],\n index: [\"transactionIndex\"]\n })(value);\n // RSK incorrectly implemented EIP-658, so we munge things a bit here for it\n if (receipt.root != null) {\n if (receipt.root.length <= 4) {\n // Could be 0x00, 0x0, 0x01 or 0x1\n const value = parseInt(receipt.root);\n if (value === 0 || value === 1) {\n // Make sure if both are specified, they match\n if (receipt.status != null && receipt.status !== value) {\n return logger.throwError(\"alt-root-status/status mismatch\", \"BAD_DATA\", {\n value: { root: receipt.root, status: receipt.status }\n });\n }\n receipt.status = value;\n delete receipt.root;\n }\n else {\n return logger.throwError(\"invalid alt-root-status\", \"BAD_DATA\", {\n value: receipt.root\n });\n }\n }\n else if (!isHexString(receipt.root, 32)) {\n // Must be a valid bytes32\n return logger.throwError(\"invalid receipt root hash\", \"BAD_DATA\", {\n value: receipt.root\n });\n }\n }\n //receipt.byzantium = (receipt.root == null);\n return new TransactionReceipt(receipt, provider);\n }\n // Fitlers\n topics(value) {\n return __classPrivateFieldGet(this, _Formatter_format, \"f\").topics(value);\n }\n filter(value) {\n return __classPrivateFieldGet(this, _Formatter_format, \"f\").filter(value);\n }\n filterLog(value) {\n console.log(\"ME\", value);\n return null;\n }\n // Converts a serialized transaction to a TransactionResponse\n transaction(value) {\n throw new Error();\n }\n // Useful utility formatters functions, which if need be use the\n // methods within the formatter to ensure internal compatibility\n // Access List; converts an AccessListish to an AccessList\n accessList(value) {\n return accessListify(value);\n }\n // Converts falsish values to a specific value, otherwise use the formatter. Calls preserve `this`.\n allowFalsish(format, ifFalse) {\n return ((value) => {\n if (!value) {\n return ifFalse;\n }\n return format.call(this, value);\n });\n }\n // Allows null, optionally replacing it with a default value. Calls preserve `this`.\n allowNull(format, ifNull) {\n return ((value) => {\n if (value == null) {\n return ifNull;\n }\n return format.call(this, value);\n });\n }\n // Requires an Array satisfying the formatter. Calls preserves `this`.\n arrayOf(format) {\n return ((array) => {\n if (!Array.isArray(array)) {\n throw new Error(\"not an array\");\n }\n return array.map((i) => format.call(this, i));\n });\n }\n // Requires a value which is a value BigNumber\n bigNumber(value) {\n return logger.getBigInt(value, \"value\");\n }\n uint256(value) {\n const result = this.bigNumber(value);\n if (result < 0 || result > BN_MAX_UINT256) {\n logger.throwArgumentError(\"invalid uint256\", \"value\", value);\n }\n return result;\n }\n // Requires a value which is a value boolean or string equivalent\n boolean(value) {\n switch (value) {\n case true:\n case \"true\":\n return true;\n case false:\n case \"false\":\n return false;\n }\n return logger.throwArgumentError(`invalid boolean; ${JSON.stringify(value)}`, \"value\", value);\n }\n // Requires a value which is a valid hexstring. If dataOrLength is true,\n // the length must be even (i.e. a datahexstring) or if it is a number,\n // specifies teh number of bytes value must represent\n _hexstring(dataOrLength) {\n if (dataOrLength == null) {\n dataOrLength = false;\n }\n return (function (value) {\n if (isHexString(value, dataOrLength)) {\n return value.toLowerCase();\n }\n throw new Error(\"bad hexstring\");\n });\n }\n data(value) {\n if (dataLength(value) == null) {\n logger.throwArgumentError(\"\", \"value\", value);\n }\n return value;\n }\n // Requires a network-native hash\n hash(value) {\n if (dataLength(value) !== 32) {\n logger.throwArgumentError(\"\", \"value\", value);\n }\n return __classPrivateFieldGet(this, _Formatter_format, \"f\").data(value);\n }\n // Requires a valid number, within the IEEE 754 safe range\n number(value) {\n return logger.getNumber(value);\n }\n // Requires an object which matches a fleet of other formatters\n // Any FormatFunc may return `undefined` to have the value omitted\n // from the result object. Calls preserve `this`.\n object(format, altNames) {\n return ((value) => {\n const result = {};\n for (const key in format) {\n let srcKey = key;\n if (altNames && key in altNames && !(srcKey in value)) {\n for (const altKey of altNames[key]) {\n if (altKey in value) {\n srcKey = altKey;\n break;\n }\n }\n }\n try {\n const nv = format[key].call(this, value[srcKey]);\n if (nv !== undefined) {\n result[key] = nv;\n }\n }\n catch (error) {\n const message = (error instanceof Error) ? error.message : \"not-an-error\";\n logger.throwError(`invalid value for value.${key} (${message})`, \"BAD_DATA\", { value });\n }\n }\n return result;\n });\n }\n // Requires a value which matches a network-native storage slot\n storageSlot(value) {\n return toHex(logger.getBigInt(value), 32);\n }\n}\n_Formatter_format = new WeakMap(), _Formatter_baseBlock = new WeakMap();\n//# sourceMappingURL=formatter.js.map","import { defineProperties } from \"@ethersproject/properties\";\nimport { logger } from \"./logger.js\";\nconst EnsAddress = \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\";\nexport class NetworkPlugin {\n constructor(name) {\n defineProperties(this, { name });\n }\n clone() {\n return new NetworkPlugin(this.name);\n }\n validate(network) {\n return this;\n }\n}\nexport class GasCostPlugin extends NetworkPlugin {\n constructor(effectiveBlock = 0, costs) {\n super(`org.ethers.plugins.gas-cost#${(effectiveBlock || 0)}`);\n const props = { effectiveBlock };\n function set(name, nullish) {\n let value = (costs || {})[name];\n if (value == null) {\n value = nullish;\n }\n if (typeof (value) !== \"number\") {\n logger.throwArgumentError(`invalud value for ${name}`, \"costs\", costs);\n }\n props[name] = value;\n }\n set(\"txBase\", 21000);\n set(\"txCreate\", 32000);\n set(\"txDataZero\", 4);\n set(\"txDataNonzero\", 16);\n set(\"txAccessListStorageKey\", 1900);\n set(\"txAccessListAddress\", 2400);\n defineProperties(this, props);\n }\n clone() {\n return new GasCostPlugin(this.effectiveBlock, this);\n }\n}\n// Networks shoudl use this plugin to specify the contract address\n// and network necessary to resolve ENS names.\nexport class EnsPlugin extends NetworkPlugin {\n constructor(address, targetNetwork) {\n super(\"org.ethers.plugins.ens\");\n defineProperties(this, {\n address: (address || EnsAddress),\n targetNetwork: ((targetNetwork == null) ? 1 : targetNetwork)\n });\n }\n clone() {\n return new EnsPlugin(this.address, this.targetNetwork);\n }\n validate(network) {\n network.formatter.address(this.address);\n return this;\n }\n}\nexport class MaxPriorityFeePlugin extends NetworkPlugin {\n constructor(priorityFee) {\n super(\"org.ethers.plugins.max-priority-fee\");\n defineProperties(this, {\n priorityFee: logger.getBigInt(priorityFee)\n });\n }\n async getPriorityFee(provider) {\n return this.priorityFee;\n }\n clone() {\n return new MaxPriorityFeePlugin(this.priorityFee);\n }\n}\n//# sourceMappingURL=plugins-network.js.map","var __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 _Network_props;\nimport { getStore, setStore } from \"@ethersproject/properties\";\nimport { Formatter } from \"./formatter.js\";\nimport { logger } from \"./logger.js\";\nimport { EnsPlugin, GasCostPlugin } from \"./plugins-network.js\";\n/* * * *\n// Networks which operation against an L2 can use this plugin to\n// specify how to access L1, for the purpose of resolving ENS,\n// for example.\nexport class LayerOneConnectionPlugin extends NetworkPlugin {\n readonly provider!: Provider;\n// @TODO: Rename to ChainAccess and allow for connecting to any chain\n constructor(provider: Provider) {\n super(\"org.ethers.plugins.layer-one-connection\");\n defineProperties<LayerOneConnectionPlugin>(this, { provider });\n }\n\n clone(): LayerOneConnectionPlugin {\n return new LayerOneConnectionPlugin(this.provider);\n }\n}\n*/\n/* * * *\nexport class PriceOraclePlugin extends NetworkPlugin {\n readonly address!: string;\n\n constructor(address: string) {\n super(\"org.ethers.plugins.price-oracle\");\n defineProperties<PriceOraclePlugin>(this, { address });\n }\n\n clone(): PriceOraclePlugin {\n return new PriceOraclePlugin(this.address);\n }\n}\n*/\n// Networks or clients with a higher need for security (such as clients\n// that may automatically make CCIP requests without user interaction)\n// can use this plugin to anonymize requests or intercept CCIP requests\n// to notify and/or receive authorization from the user\n/* * * *\nexport type FetchDataFunc = (req: Frozen<FetchRequest>) => Promise<FetchRequest>;\nexport class CcipPreflightPlugin extends NetworkPlugin {\n readonly fetchData!: FetchDataFunc;\n\n constructor(fetchData: FetchDataFunc) {\n super(\"org.ethers.plugins.ccip-preflight\");\n defineProperties<CcipPreflightPlugin>(this, { fetchData });\n }\n\n clone(): CcipPreflightPlugin {\n return new CcipPreflightPlugin(this.fetchData);\n }\n}\n*/\nconst Networks = new Map();\nconst defaultFormatter = new Formatter();\nexport class Network {\n constructor(name, _chainId, formatter) {\n _Network_props.set(this, void 0);\n const chainId = logger.getBigInt(_chainId);\n if (formatter == null) {\n formatter = defaultFormatter;\n }\n const plugins = new Map();\n __classPrivateFieldSet(this, _Network_props, { name, chainId, formatter, plugins }, \"f\");\n }\n toJSON() {\n return { name: this.name, chainId: this.chainId };\n }\n get name() { return getStore(__classPrivateFieldGet(this, _Network_props, \"f\"), \"name\"); }\n set name(value) { setStore(__classPrivateFieldGet(this, _Network_props, \"f\"), \"name\", value); }\n get chainId() { return getStore(__classPrivateFieldGet(this, _Network_props, \"f\"), \"chainId\"); }\n set chainId(value) { setStore(__classPrivateFieldGet(this, _Network_props, \"f\"), \"chainId\", logger.getBigInt(value, \"chainId\")); }\n get formatter() { return getStore(__classPrivateFieldGet(this, _Network_props, \"f\"), \"formatter\"); }\n set formatter(value) { setStore(__classPrivateFieldGet(this, _Network_props, \"f\"), \"formatter\", value); }\n get plugins() {\n return Array.from(__classPrivateFieldGet(this, _Network_props, \"f\").plugins.values());\n }\n attachPlugin(plugin) {\n if (this.isFrozen()) {\n throw new Error(\"frozen\");\n }\n if (__classPrivateFieldGet(this, _Network_props, \"f\").plugins.get(plugin.name)) {\n throw new Error(`cannot replace existing plugin: ${plugin.name} `);\n }\n __classPrivateFieldGet(this, _Network_props, \"f\").plugins.set(plugin.name, plugin.validate(this));\n return this;\n }\n getPlugin(name) {\n return (__classPrivateFieldGet(this, _Network_props, \"f\").plugins.get(name)) || null;\n }\n // Gets a list of Plugins which match basename, ignoring any fragment\n getPlugins(basename) {\n return (this.plugins.filter((p) => (p.name.split(\"#\")[0] === basename)));\n }\n clone() {\n const clone = new Network(this.name, this.chainId, this.formatter);\n this.plugins.forEach((plugin) => {\n clone.attachPlugin(plugin.clone());\n });\n return clone;\n }\n freeze() {\n Object.freeze(__classPrivateFieldGet(this, _Network_props, \"f\"));\n return this;\n }\n isFrozen() {\n return Object.isFrozen(__classPrivateFieldGet(this, _Network_props, \"f\"));\n }\n computeIntrinsicGas(tx) {\n const costs = this.getPlugin(\"org.ethers.gas-cost\") || (new GasCostPlugin());\n let gas = costs.txBase;\n if (tx.to == null) {\n gas += costs.txCreate;\n }\n if (tx.data) {\n for (let i = 2; i < tx.data.length; i += 2) {\n if (tx.data.substring(i, i + 2) === \"00\") {\n gas += costs.txDataZero;\n }\n else {\n gas += costs.txDataNonzero;\n }\n }\n }\n if (tx.accessList) {\n const accessList = this.formatter.accessList(tx.accessList);\n for (const addr in accessList) {\n gas += costs.txAccessListAddress + costs.txAccessListStorageKey * accessList[addr].storageKeys.length;\n }\n }\n return gas;\n }\n static from(network) {\n // Default network\n if (network == null) {\n return Network.from(\"homestead\");\n }\n // Canonical name or chain ID\n if (typeof (network) === \"number\") {\n network = BigInt(network);\n }\n if (typeof (network) === \"string\" || typeof (network) === \"bigint\") {\n const networkFunc = Networks.get(network);\n if (networkFunc) {\n return networkFunc();\n }\n if (typeof (network) === \"bigint\") {\n return new Network(\"unknown\", network);\n }\n logger.throwArgumentError(\"unknown network\", \"network\", network);\n }\n // Clonable with network-like abilities\n if (typeof (network.clone) === \"function\") {\n const clone = network.clone();\n //if (typeof(network.name) !== \"string\" || typeof(network.chainId) !== \"number\") {\n //}\n return clone;\n }\n // Networkish\n if (typeof (network) === \"object\") {\n if (typeof (network.name) !== \"string\" || typeof (network.chainId) !== \"number\") {\n logger.throwArgumentError(\"invalid network object name or chainId\", \"network\", network);\n }\n const custom = new Network((network.name), (network.chainId));\n if (network.ensAddress || network.ensNetwork != null) {\n custom.attachPlugin(new EnsPlugin(network.ensAddress, network.ensNetwork));\n }\n //if ((<any>network).layerOneConnection) {\n // custom.attachPlugin(new LayerOneConnectionPlugin((<any>network).layerOneConnection));\n //}\n return custom;\n }\n return logger.throwArgumentError(\"invalid network\", \"network\", network);\n }\n static register(nameOrChainId, networkFunc) {\n if (typeof (nameOrChainId) === \"number\") {\n nameOrChainId = BigInt(nameOrChainId);\n }\n const existing = Networks.get(nameOrChainId);\n if (existing) {\n logger.throwArgumentError(`conflicting network for ${JSON.stringify(existing.name)}`, \"nameOrChainId\", nameOrChainId);\n }\n Networks.set(nameOrChainId, networkFunc);\n }\n}\n_Network_props = new WeakMap();\n//# sourceMappingURL=network.js.map","var __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 _PollingBlockSubscriber_instances, _PollingBlockSubscriber_provider, _PollingBlockSubscriber_poller, _PollingBlockSubscriber_interval, _PollingBlockSubscriber_blockNumber, _PollingBlockSubscriber_poll, _OnBlockSubscriber_provider, _OnBlockSubscriber_poll, _PollingOrphanSubscriber_filter, _PollingTransactionSubscriber_hash, _PollingEventSubscriber_instances, _PollingEventSubscriber_provider, _PollingEventSubscriber_filter, _PollingEventSubscriber_poller, _PollingEventSubscriber_blockNumber, _PollingEventSubscriber_poll;\nimport { isHexString } from \"@ethersproject/bytes\";\nimport { logger } from \"./logger.js\";\nfunction copy(obj) {\n return JSON.parse(JSON.stringify(obj));\n}\nexport function getPollingSubscriber(provider, event) {\n if (event === \"block\") {\n return new PollingBlockSubscriber(provider);\n }\n if (isHexString(event, 32)) {\n return new PollingTransactionSubscriber(provider, event);\n }\n return logger.throwError(\"unsupported polling event\", \"UNSUPPORTED_OPERATION\", {\n operation: \"getPollingSubscriber\", info: { event }\n });\n}\n// @TODO: refactor this\nexport class PollingBlockSubscriber {\n constructor(provider) {\n _PollingBlockSubscriber_instances.add(this);\n _PollingBlockSubscriber_provider.set(this, void 0);\n _PollingBlockSubscriber_poller.set(this, void 0);\n _PollingBlockSubscriber_interval.set(this, void 0);\n // The most recent block we have scanned for events. The value -2\n // indicates we still need to fetch an initial block number\n _PollingBlockSubscriber_blockNumber.set(this, void 0);\n __classPrivateFieldSet(this, _PollingBlockSubscriber_provider, provider, \"f\");\n __classPrivateFieldSet(this, _PollingBlockSubscriber_poller, null, \"f\");\n __classPrivateFieldSet(this, _PollingBlockSubscriber_interval, 4000, \"f\");\n __classPrivateFieldSet(this, _PollingBlockSubscriber_blockNumber, -2, \"f\");\n }\n get pollingInterval() { return __classPrivateFieldGet(this, _PollingBlockSubscriber_interval, \"f\"); }\n set pollingInterval(value) { __classPrivateFieldSet(this, _PollingBlockSubscriber_interval, value, \"f\"); }\n start() {\n if (__classPrivateFieldGet(this, _PollingBlockSubscriber_poller, \"f\")) {\n throw new Error(\"subscriber already running\");\n }\n __classPrivateFieldGet(this, _PollingBlockSubscriber_instances, \"m\", _PollingBlockSubscriber_poll).call(this);\n __classPrivateFieldSet(this, _PollingBlockSubscriber_poller, __classPrivateFieldGet(this, _PollingBlockSubscriber_provider, \"f\")._setTimeout(__classPrivateFieldGet(this, _PollingBlockSubscriber_instances, \"m\", _PollingBlockSubscriber_poll).bind(this), __classPrivateFieldGet(this, _PollingBlockSubscriber_interval, \"f\")), \"f\");\n }\n stop() {\n if (!__classPrivateFieldGet(this, _PollingBlockSubscriber_poller, \"f\")) {\n throw new Error(\"subscriber not running\");\n }\n __classPrivateFieldGet(this, _PollingBlockSubscriber_provider, \"f\")._clearTimeout(__classPrivateFieldGet(this, _PollingBlockSubscriber_poller, \"f\"));\n __classPrivateFieldSet(this, _PollingBlockSubscriber_poller, null, \"f\");\n }\n pause(dropWhilePaused) {\n this.stop();\n if (dropWhilePaused) {\n __classPrivateFieldSet(this, _PollingBlockSubscriber_blockNumber, -2, \"f\");\n }\n }\n resume() {\n this.start();\n }\n}\n_PollingBlockSubscriber_provider = new WeakMap(), _PollingBlockSubscriber_poller = new WeakMap(), _PollingBlockSubscriber_interval = new WeakMap(), _PollingBlockSubscriber_blockNumber = new WeakMap(), _PollingBlockSubscriber_instances = new WeakSet(), _PollingBlockSubscriber_poll = async function _PollingBlockSubscriber_poll() {\n const blockNumber = await __classPrivateFieldGet(this, _PollingBlockSubscriber_provider, \"f\").getBlockNumber();\n if (__classPrivateFieldGet(this, _PollingBlockSubscriber_blockNumber, \"f\") === -2) {\n __classPrivateFieldSet(this, _PollingBlockSubscriber_blockNumber, blockNumber, \"f\");\n return;\n }\n // @TODO: Put a cap on the maximum number of events per loop?\n if (blockNumber !== __classPrivateFieldGet(this, _PollingBlockSubscriber_blockNumber, \"f\")) {\n for (let b = __classPrivateFieldGet(this, _PollingBlockSubscriber_blockNumber, \"f\") + 1; b <= blockNumber; b++) {\n __classPrivateFieldGet(this, _PollingBlockSubscriber_provider, \"f\").emit(\"block\", b);\n }\n __classPrivateFieldSet(this, _PollingBlockSubscriber_blockNumber, blockNumber, \"f\");\n }\n __classPrivateFieldSet(this, _PollingBlockSubscriber_poller, __classPrivateFieldGet(this, _PollingBlockSubscriber_provider, \"f\")._setTimeout(__classPrivateFieldGet(this, _PollingBlockSubscriber_instances, \"m\", _PollingBlockSubscriber_poll).bind(this), __classPrivateFieldGet(this, _PollingBlockSubscriber_interval, \"f\")), \"f\");\n};\nexport class OnBlockSubscriber {\n constructor(provider) {\n _OnBlockSubscriber_provider.set(this, void 0);\n _OnBlockSubscriber_poll.set(this, void 0);\n __classPrivateFieldSet(this, _OnBlockSubscriber_provider, provider, \"f\");\n __classPrivateFieldSet(this, _OnBlockSubscriber_poll, (blockNumber) => {\n this._poll(blockNumber, __classPrivateFieldGet(this, _OnBlockSubscriber_provider, \"f\"));\n }, \"f\");\n }\n async _poll(blockNumber, provider) {\n throw new Error(\"sub-classes must override this\");\n }\n start() {\n __classPrivateFieldGet(this, _OnBlockSubscriber_poll, \"f\").call(this, -2);\n __classPrivateFieldGet(this, _OnBlockSubscriber_provider, \"f\").on(\"block\", __classPrivateFieldGet(this, _OnBlockSubscriber_poll, \"f\"));\n }\n stop() {\n __classPrivateFieldGet(this, _OnBlockSubscriber_provider, \"f\").off(\"block\", __classPrivateFieldGet(this, _OnBlockSubscriber_poll, \"f\"));\n }\n pause(dropWhilePaused) { this.stop(); }\n resume() { this.start(); }\n}\n_OnBlockSubscriber_provider = new WeakMap(), _OnBlockSubscriber_poll = new WeakMap();\nexport class PollingOrphanSubscriber extends OnBlockSubscriber {\n constructor(provider, filter) {\n super(provider);\n _PollingOrphanSubscriber_filter.set(this, void 0);\n __classPrivateFieldSet(this, _PollingOrphanSubscriber_filter, copy(filter), \"f\");\n }\n async _poll(blockNumber, provider) {\n throw new Error(\"@TODO\");\n console.log(__classPrivateFieldGet(this, _PollingOrphanSubscriber_filter, \"f\"));\n }\n}\n_PollingOrphanSubscriber_filter = new WeakMap();\nexport class PollingTransactionSubscriber extends OnBlockSubscriber {\n constructor(provider, hash) {\n super(provider);\n _PollingTransactionSubscriber_hash.set(this, void 0);\n __classPrivateFieldSet(this, _PollingTransactionSubscriber_hash, hash, \"f\");\n }\n async _poll(blockNumber, provider) {\n const tx = await provider.getTransactionReceipt(__classPrivateFieldGet(this, _PollingTransactionSubscriber_hash, \"f\"));\n if (tx) {\n provider.emit(__classPrivateFieldGet(this, _PollingTransactionSubscriber_hash, \"f\"), tx);\n }\n }\n}\n_PollingTransactionSubscriber_hash = new WeakMap();\nexport class PollingEventSubscriber {\n constructor(provider, filter) {\n _PollingEventSubscriber_instances.add(this);\n _PollingEventSubscriber_provider.set(this, void 0);\n _PollingEventSubscriber_filter.set(this, void 0);\n _PollingEventSubscriber_poller.set(this, void 0);\n // The most recent block we have scanned for events. The value -2\n // indicates we still need to fetch an initial block number\n _PollingEventSubscriber_blockNumber.set(this, void 0);\n __classPrivateFieldSet(this, _PollingEventSubscriber_provider, provider, \"f\");\n __classPrivateFieldSet(this, _PollingEventSubscriber_filter, copy(filter), \"f\");\n __classPrivateFieldSet(this, _PollingEventSubscriber_poller, __classPrivateFieldGet(this, _PollingEventSubscriber_instances, \"m\", _PollingEventSubscriber_poll).bind(this), \"f\");\n __classPrivateFieldSet(this, _PollingEventSubscriber_blockNumber, -2, \"f\");\n }\n start() {\n if (__classPrivateFieldGet(this, _PollingEventSubscriber_blockNumber, \"f\") === -2) {\n __classPrivateFieldGet(this, _PollingEventSubscriber_provider, \"f\").getBlockNumber().then((blockNumber) => {\n __classPrivateFieldSet(this, _PollingEventSubscriber_blockNumber, blockNumber, \"f\");\n });\n }\n __classPrivateFieldGet(this, _PollingEventSubscriber_provider, \"f\").on(\"block\", __classPrivateFieldGet(this, _PollingEventSubscriber_poller, \"f\"));\n }\n stop() {\n __classPrivateFieldGet(this, _PollingEventSubscriber_provider, \"f\").off(\"block\", __classPrivateFieldGet(this, _PollingEventSubscriber_poller, \"f\"));\n }\n pause(dropWhilePaused) {\n this.stop();\n if (dropWhilePaused) {\n __classPrivateFieldSet(this, _PollingEventSubscriber_blockNumber, -2, \"f\");\n }\n }\n resume() {\n this.start();\n }\n}\n_PollingEventSubscriber_provider = new WeakMap(), _PollingEventSubscriber_filter = new WeakMap(), _PollingEventSubscriber_poller = new WeakMap(), _PollingEventSubscriber_blockNumber = new WeakMap(), _PollingEventSubscriber_instances = new WeakSet(), _PollingEventSubscriber_poll = async function _PollingEventSubscriber_poll(blockNumber) {\n // The initial block hasn't been determined yet\n if (__classPrivateFieldGet(this, _PollingEventSubscriber_blockNumber, \"f\") === -2) {\n return;\n }\n const filter = copy(__classPrivateFieldGet(this, _PollingEventSubscriber_filter, \"f\"));\n filter.fromBlock = __classPrivateFieldGet(this, _PollingEventSubscriber_blockNumber, \"f\") + 1;\n filter.toBlock = blockNumber;\n const logs = await __classPrivateFieldGet(this, _PollingEventSubscriber_provider, \"f\").getLogs(filter);\n // No logs could just mean the node has not indexed them yet,\n // so we keep a sliding window of 60 blocks to keep scanning\n if (logs.length === 0) {\n if (__classPrivateFieldGet(this, _PollingEventSubscriber_blockNumber, \"f\") < blockNumber - 60) {\n __classPrivateFieldSet(this, _PollingEventSubscriber_blockNumber, blockNumber - 60, \"f\");\n }\n return;\n }\n __classPrivateFieldSet(this, _PollingEventSubscriber_blockNumber, blockNumber, \"f\");\n for (const log of logs) {\n __classPrivateFieldGet(this, _PollingEventSubscriber_provider, \"f\").emit(__classPrivateFieldGet(this, _PollingEventSubscriber_filter, \"f\"), log);\n }\n};\n//# sourceMappingURL=subscriber-polling.js.map","// @TODO\n// Event coalescence\n// When we register an event with an async value (e.g. address is a Signer\n// or ENS name), we need to add it immeidately for the Event API, but also\n// need time to resolve the address. Upon resolving the address, we need to\n// migrate the listener to the static event. We also need to maintain a map\n// of Signer/ENS name to address so we can sync respond to listenerCount.\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 _AbstractProvider_instances, _AbstractProvider_subs, _AbstractProvider_plugins, _AbstractProvider_pausedState, _AbstractProvider_networkPromise, _AbstractProvider_anyNetwork, _AbstractProvider_performCache, _AbstractProvider_nextTimer, _AbstractProvider_timers, _AbstractProvider_disableCcipRead, _AbstractProvider_perform, _AbstractProvider_call, _AbstractProvider_getBlock, _AbstractProvider_hasSub, _AbstractProvider_getSub;\nimport { resolveAddress } from \"@ethersproject/address\";\nimport { concat, dataLength, dataSlice, hexlify, isHexString } from \"@ethersproject/bytes\";\nimport { isCallException } from \"@ethersproject/logger\";\nimport { toArray } from \"@ethersproject/math\";\nimport { defineProperties, EventPayload, resolveProperties } from \"@ethersproject/properties\";\nimport { toUtf8String } from \"@ethersproject/strings\";\nimport { fetchData, FetchRequest } from \"@ethersproject/web\";\nimport { EnsResolver } from \"./ens-resolver.js\";\nimport { logger } from \"./logger.js\";\nimport { Network } from \"./network.js\";\nimport { FeeData } from \"./provider.js\";\nimport { PollingBlockSubscriber, PollingEventSubscriber, PollingOrphanSubscriber, PollingTransactionSubscriber } from \"./subscriber-polling.js\";\n// Constants\nconst BN_2 = BigInt(2);\nconst MAX_CCIP_REDIRECTS = 10;\nfunction getTag(prefix, value) {\n return prefix + \":\" + JSON.stringify(value, (k, v) => {\n if (typeof (v) === \"bigint\") {\n return `bigint:${v.toString()}`;\n }\n if (typeof (v) === \"string\") {\n return v.toLowerCase();\n }\n // Sort object keys\n if (typeof (v) === \"object\" && !Array.isArray(v)) {\n const keys = Object.keys(v);\n keys.sort();\n return keys.reduce((accum, key) => {\n accum[key] = v[key];\n return accum;\n }, {});\n }\n return v;\n });\n}\nexport class UnmanagedSubscriber {\n constructor(name) { defineProperties(this, { name }); }\n start() { }\n stop() { }\n pause(dropWhilePaused) { }\n resume() { }\n}\nfunction copy(value) {\n return JSON.parse(JSON.stringify(value));\n}\nfunction concisify(items) {\n items = Array.from((new Set(items)).values());\n items.sort();\n return items;\n}\n// Normalize a ProviderEvent into a Subscription\n// @TODO: Make events sync if possible; like block\n//function getSyncSubscription(_event: ProviderEvent): Subscription {\n//}\nasync function getSubscription(_event, provider) {\n if (_event == null) {\n throw new Error(\"invalid event\");\n }\n // Normalize topic array info an EventFilter\n if (Array.isArray(_event)) {\n _event = { topics: _event };\n }\n if (typeof (_event) === \"string\") {\n switch (_event) {\n case \"block\":\n case \"pending\":\n case \"debug\":\n case \"network\": {\n return { type: _event, tag: _event };\n }\n }\n }\n if (isHexString(_event, 32)) {\n const hash = _event.toLowerCase();\n return { type: \"transaction\", tag: getTag(\"tx\", { hash }), hash };\n }\n if (_event.orphan) {\n const event = _event;\n // @TODO: Should lowercase and whatnot things here instead of copy...\n return { type: \"orphan\", tag: getTag(\"orphan\", event), filter: copy(event) };\n }\n if ((_event.address || _event.topics)) {\n const event = _event;\n const filter = {\n topics: ((event.topics || []).map((t) => {\n if (t == null) {\n return null;\n }\n if (Array.isArray(t)) {\n return concisify(t.map((t) => t.toLowerCase()));\n }\n return t.toLowerCase();\n }))\n };\n if (event.address) {\n const addresses = [];\n const promises = [];\n const addAddress = (addr) => {\n if (isHexString(addr)) {\n addresses.push(addr);\n }\n else {\n promises.push((async () => {\n addresses.push(await resolveAddress(addr, provider));\n })());\n }\n };\n if (Array.isArray(event.address)) {\n event.address.forEach(addAddress);\n }\n else {\n addAddress(event.address);\n }\n if (promises.length) {\n await Promise.all(promises);\n }\n filter.address = concisify(addresses.map((a) => a.toLowerCase()));\n }\n return { filter, tag: getTag(\"event\", filter), type: \"event\" };\n }\n return logger.throwArgumentError(\"unknown ProviderEvent\", \"event\", _event);\n}\nfunction getTime() { return (new Date()).getTime(); }\nexport function copyRequest(tx) {\n // @TODO: copy the copy from contracts and use it from this\n return tx;\n}\nexport class AbstractProvider {\n // @TODO: This should be a () => Promise<Network> so network can be\n // done when needed; or rely entirely on _detectNetwork?\n constructor(_network) {\n _AbstractProvider_instances.add(this);\n _AbstractProvider_subs.set(this, void 0);\n _AbstractProvider_plugins.set(this, void 0);\n // null=unpaused, true=paused+dropWhilePaused, false=paused\n _AbstractProvider_pausedState.set(this, void 0);\n _AbstractProvider_networkPromise.set(this, void 0);\n _AbstractProvider_anyNetwork.set(this, void 0);\n _AbstractProvider_performCache.set(this, void 0);\n _AbstractProvider_nextTimer.set(this, void 0);\n _AbstractProvider_timers.set(this, void 0);\n _AbstractProvider_disableCcipRead.set(this, void 0);\n if (_network === \"any\") {\n __classPrivateFieldSet(this, _AbstractProvider_anyNetwork, true, \"f\");\n __classPrivateFieldSet(this, _AbstractProvider_networkPromise, null, \"f\");\n }\n else if (_network) {\n const network = Network.from(_network);\n __classPrivateFieldSet(this, _AbstractProvider_anyNetwork, false, \"f\");\n __classPrivateFieldSet(this, _AbstractProvider_networkPromise, Promise.resolve(network), \"f\");\n setTimeout(() => { this.emit(\"network\", network, null); }, 0);\n }\n else {\n __classPrivateFieldSet(this, _AbstractProvider_anyNetwork, false, \"f\");\n __classPrivateFieldSet(this, _AbstractProvider_networkPromise, null, \"f\");\n }\n //this.#approxNumber = -2;\n //this.#approxNumberT0 = 0;\n __classPrivateFieldSet(this, _AbstractProvider_performCache, new Map(), \"f\");\n __classPrivateFieldSet(this, _AbstractProvider_subs, new Map(), \"f\");\n __classPrivateFieldSet(this, _AbstractProvider_plugins, new Map(), \"f\");\n __classPrivateFieldSet(this, _AbstractProvider_pausedState, null, \"f\");\n __classPrivateFieldSet(this, _AbstractProvider_nextTimer, 0, \"f\");\n __classPrivateFieldSet(this, _AbstractProvider_timers, new Map(), \"f\");\n __classPrivateFieldSet(this, _AbstractProvider_disableCcipRead, false, \"f\");\n }\n get provider() { return this; }\n get plugins() {\n return Array.from(__classPrivateFieldGet(this, _AbstractProvider_plugins, \"f\").values());\n }\n attachPlugin(plugin) {\n if (__classPrivateFieldGet(this, _AbstractProvider_plugins, \"f\").get(plugin.name)) {\n throw new Error(`cannot replace existing plugin: ${plugin.name} `);\n }\n __classPrivateFieldGet(this, _AbstractProvider_plugins, \"f\").set(plugin.name, plugin.validate(this));\n return this;\n }\n getPlugin(name) {\n return (__classPrivateFieldGet(this, _AbstractProvider_plugins, \"f\").get(name)) || null;\n }\n set disableCcipRead(value) { __classPrivateFieldSet(this, _AbstractProvider_disableCcipRead, !!value, \"f\"); }\n get disableCcipRead() { return __classPrivateFieldGet(this, _AbstractProvider_disableCcipRead, \"f\"); }\n async ccipReadFetch(tx, calldata, urls) {\n if (this.disableCcipRead || urls.length === 0 || tx.to == null) {\n return null;\n }\n const sender = tx.to.toLowerCase();\n const data = calldata.toLowerCase();\n const errorMessages = [];\n for (let i = 0; i < urls.length; i++) {\n const url = urls[i];\n // URL expansion\n const href = url.replace(\"{sender}\", sender).replace(\"{data}\", data);\n // If no {data} is present, use POST; otherwise GET\n //const json: string | null = (url.indexOf(\"{data}\") >= 0) ? null: JSON.stringify({ data, sender });\n //const result = await fetchJson({ url: href, errorPassThrough: true }, json, (value, response) => {\n // value.status = response.statusCode;\n // return value;\n //});\n const request = new FetchRequest(href);\n if (url.indexOf(\"{data}\") === -1) {\n request.body = { data, sender };\n }\n let errorMessage = \"unknown error\";\n const resp = await fetchData(request);\n try {\n const result = resp.bodyJson;\n if (result.data) {\n return result.data;\n }\n if (result.message) {\n errorMessage = result.message;\n }\n }\n catch (error) { }\n // 4xx indicates the result is not present; stop\n if (resp.statusCode >= 400 && resp.statusCode < 500) {\n return logger.throwError(`response not found during CCIP fetch: ${errorMessage}`, \"OFFCHAIN_FAULT\", {\n reason: \"404_MISSING_RESOURCE\",\n transaction: tx, info: { url, errorMessage }\n });\n }\n // 5xx indicates server issue; try the next url\n errorMessages.push(errorMessage);\n }\n return logger.throwError(`error encountered during CCIP fetch: ${errorMessages.map((m) => JSON.stringify(m)).join(\", \")}`, \"OFFCHAIN_FAULT\", {\n reason: \"500_SERVER_ERROR\",\n transaction: tx, info: { urls, errorMessages }\n });\n }\n _wrapTransaction(tx, hash, blockNumber) {\n return tx;\n }\n _detectNetwork() {\n return logger.throwError(\"sub-classes must implement this\", \"UNSUPPORTED_OPERATION\", {\n operation: \"_detectNetwork\"\n });\n }\n async _perform(req) {\n return logger.throwError(`unsupported method: ${req.method}`, \"UNSUPPORTED_OPERATION\", {\n operation: req.method,\n info: req\n });\n }\n // State\n async getBlockNumber() {\n return logger.getNumber(await __classPrivateFieldGet(this, _AbstractProvider_instances, \"m\", _AbstractProvider_perform).call(this, { method: \"getBlockNumber\" }), \"%response\");\n }\n async _getAddress(address) {\n if (typeof (address) === \"string\") {\n return address;\n }\n return await address.getAddress();\n }\n async _getBlockTag(blockTag) {\n const network = await this.getNetwork();\n if (typeof (blockTag) === \"number\" && Number.isSafeInteger(blockTag) && blockTag < 0) {\n //let blockNumber = await this._getApproxBlockNumber(500);\n let blockNumber = await this.getBlockNumber();\n blockNumber += blockTag;\n if (blockNumber < 0) {\n blockNumber = 0;\n }\n return network.formatter.blockTag(blockNumber);\n }\n return network.formatter.blockTag(blockTag);\n }\n async getNetwork() {\n // No explicit network was set and this is our first time\n if (__classPrivateFieldGet(this, _AbstractProvider_networkPromise, \"f\") == null) {\n // Detect the current network (shared with all calls)\n const detectNetwork = this._detectNetwork().then((network) => {\n this.emit(\"network\", network, null);\n return network;\n }, (error) => {\n // Reset the networkPromise on failure, so we will try again\n if (__classPrivateFieldGet(this, _AbstractProvider_networkPromise, \"f\") === detectNetwork) {\n __classPrivateFieldSet(this, _AbstractProvider_networkPromise, null, \"f\");\n }\n throw error;\n });\n __classPrivateFieldSet(this, _AbstractProvider_networkPromise, detectNetwork, \"f\");\n return await detectNetwork;\n }\n const networkPromise = __classPrivateFieldGet(this, _AbstractProvider_networkPromise, \"f\");\n const [expected, actual] = await Promise.all([\n networkPromise,\n this._detectNetwork() // The actual connected network\n ]);\n if (expected.chainId !== actual.chainId) {\n if (__classPrivateFieldGet(this, _AbstractProvider_anyNetwork, \"f\")) {\n // The \"any\" network can change, so notify listeners\n this.emit(\"network\", actual, expected);\n // Update the network if something else hasn't already changed it\n if (__classPrivateFieldGet(this, _AbstractProvider_networkPromise, \"f\") === networkPromise) {\n __classPrivateFieldSet(this, _AbstractProvider_networkPromise, Promise.resolve(actual), \"f\");\n }\n }\n else {\n // Otherwise, we do not allow changes to the underlying network\n logger.throwError(`network changed: ${expected.chainId} => ${actual.chainId} `, \"NETWORK_ERROR\", {\n event: \"changed\"\n });\n }\n }\n return expected.clone().freeze();\n }\n async getFeeData() {\n const { block, gasPrice } = await resolveProperties({\n block: this.getBlock(\"latest\"),\n gasPrice: ((async () => {\n try {\n const gasPrice = await __classPrivateFieldGet(this, _AbstractProvider_instances, \"m\", _AbstractProvider_perform).call(this, { method: \"getGasPrice\" });\n return logger.getBigInt(gasPrice, \"%response\");\n }\n catch (error) { }\n return null;\n })())\n });\n let maxFeePerGas = null, maxPriorityFeePerGas = null;\n if (block && block.baseFeePerGas) {\n // We may want to compute this more accurately in the future,\n // using the formula \"check if the base fee is correct\".\n // See: https://eips.ethereum.org/EIPS/eip-1559\n maxPriorityFeePerGas = BigInt(\"1500000000\");\n // Allow a network to override their maximum priority fee per gas\n const priorityFeePlugin = (await this.getNetwork()).getPlugin(\"org.ethers.plugins.max-priority-fee\");\n if (priorityFeePlugin) {\n maxPriorityFeePerGas = await priorityFeePlugin.getPriorityFee(this);\n }\n maxFeePerGas = (block.baseFeePerGas * BN_2) + maxPriorityFeePerGas;\n }\n return new FeeData(gasPrice, maxFeePerGas, maxPriorityFeePerGas);\n }\n async _getTransaction(_request) {\n const network = await this.getNetwork();\n // Fill in any addresses\n const request = Object.assign({}, _request, await resolveProperties({\n to: (_request.to ? resolveAddress(_request.to, this) : undefined),\n from: (_request.from ? resolveAddress(_request.from, this) : undefined),\n }));\n return network.formatter.transactionRequest(request);\n }\n async estimateGas(_tx) {\n const transaction = await this._getTransaction(_tx);\n return logger.getBigInt(await __classPrivateFieldGet(this, _AbstractProvider_instances, \"m\", _AbstractProvider_perform).call(this, {\n method: \"estimateGas\", transaction\n }), \"%response\");\n }\n async call(_tx) {\n const { tx, blockTag } = await resolveProperties({\n tx: this._getTransaction(_tx),\n blockTag: this._getBlockTag(_tx.blockTag)\n });\n return __classPrivateFieldGet(this, _AbstractProvider_instances, \"m\", _AbstractProvider_call).call(this, tx, blockTag, _tx.enableCcipRead ? 0 : -1);\n }\n // Account\n async getBalanceOf(_address, _blockTag) {\n const { address, blockTag } = await resolveProperties({\n address: resolveAddress(_address),\n blockTag: this._getBlockTag(_blockTag)\n });\n return logger.getBigInt(await __classPrivateFieldGet(this, _AbstractProvider_instances, \"m\", _AbstractProvider_perform).call(this, {\n method: \"getBalance\", address, blockTag\n }), \"%response\");\n }\n async getTransactionCountOf(_address, _blockTag) {\n const { address, blockTag } = await resolveProperties({\n address: resolveAddress(_address),\n blockTag: this._getBlockTag(_blockTag)\n });\n return logger.getNumber(await __classPrivateFieldGet(this, _AbstractProvider_instances, \"m\", _AbstractProvider_perform).call(this, {\n method: \"getTransactionCount\", address, blockTag\n }), \"%response\");\n }\n async getCode(_address, _blockTag) {\n const { address, blockTag } = await resolveProperties({\n address: resolveAddress(_address),\n blockTag: this._getBlockTag(_blockTag)\n });\n return hexlify(await __classPrivateFieldGet(this, _AbstractProvider_instances, \"m\", _AbstractProvider_perform).call(this, {\n method: \"getCode\", address, blockTag\n }));\n }\n async getStorageAt(_address, _position, _blockTag) {\n const position = logger.getBigInt(_position);\n const { address, blockTag } = await resolveProperties({\n address: resolveAddress(_address),\n blockTag: this._getBlockTag(_blockTag)\n });\n return hexlify(await __classPrivateFieldGet(this, _AbstractProvider_instances, \"m\", _AbstractProvider_perform).call(this, {\n method: \"getStorageAt\", address, position, blockTag\n }));\n }\n // Write\n async broadcastTransaction(signedTx) {\n throw new Error();\n return {};\n }\n // Queries\n async getBlock(block) {\n const format = (await this.getNetwork()).formatter;\n const params = await __classPrivateFieldGet(this, _AbstractProvider_instances, \"m\", _AbstractProvider_getBlock).call(this, block, false);\n if (params == null) {\n return null;\n }\n return format.block(params, this);\n }\n async getBlockWithTransactions(block) {\n const format = (await this.getNetwork()).formatter;\n const params = __classPrivateFieldGet(this, _AbstractProvider_instances, \"m\", _AbstractProvider_getBlock).call(this, block, true);\n if (params == null) {\n return null;\n }\n return format.blockWithTransactions(params, this);\n }\n async getTransaction(hash) {\n const format = (await this.getNetwork()).formatter;\n const params = await __classPrivateFieldGet(this, _AbstractProvider_instances, \"m\", _AbstractProvider_perform).call(this, { method: \"getTransaction\", hash });\n return format.transactionResponse(params, this);\n }\n async getTransactionReceipt(hash) {\n const format = (await this.getNetwork()).formatter;\n const receipt = await __classPrivateFieldGet(this, _AbstractProvider_instances, \"m\", _AbstractProvider_perform).call(this, { method: \"getTransactionReceipt\", hash });\n if (receipt == null) {\n return null;\n }\n // Some backends did not backfill the effectiveGasPrice into old transactions\n // in the receipt, so we look it up manually and inject it.\n if (receipt.gasPrice == null && receipt.effectiveGasPrice == null) {\n const tx = await __classPrivateFieldGet(this, _AbstractProvider_instances, \"m\", _AbstractProvider_perform).call(this, { method: \"getTransaction\", hash });\n receipt.effectiveGasPrice = tx.gasPrice;\n }\n return format.receipt(receipt, this);\n }\n async _getFilter(filter) {\n // Create a canonical representation of the topics\n const topics = (filter.topics || []).map((t) => {\n if (t == null) {\n return null;\n }\n if (Array.isArray(t)) {\n return concisify(t.map((t) => t.toLowerCase()));\n }\n return t.toLowerCase();\n });\n const blockHash = (\"blockHash\" in filter) ? filter.blockHash : undefined;\n const lookup = {};\n // Addresses could be async (ENS names or Addressables)\n if (filter.address) {\n if (Array.isArray(filter.address)) {\n lookup.address = Promise.all(filter.address.map((a) => resolveAddress(a, this)));\n }\n else {\n lookup.address = resolveAddress(filter.address, this);\n }\n }\n // Block Tags could be async (i.e. relative)\n const addBlockTag = (key) => {\n if (filter[key] == null) {\n return;\n }\n lookup[key] = this._getBlockTag(filter[key]);\n };\n addBlockTag(\"fromBlock\");\n addBlockTag(\"toBlock\");\n // Wait for all properties to resolve\n const result = await resolveProperties(lookup);\n // Make sure things are canonical\n if (Array.isArray(result.address)) {\n result.address.sort();\n }\n result.topics = topics;\n if (blockHash) {\n if (filter.fromBlock || filter.toBlock) {\n throw new Error(\"invalid filter\");\n }\n result.blockHash = blockHash;\n }\n return result;\n }\n // Bloom-filter Queries\n async getLogs(_filter) {\n const { network, filter } = await resolveProperties({\n network: this.getNetwork(),\n filter: this._getFilter(_filter)\n });\n return (await __classPrivateFieldGet(this, _AbstractProvider_instances, \"m\", _AbstractProvider_perform).call(this, { method: \"getLogs\", filter })).map((l) => {\n return network.formatter.log(l, this);\n });\n }\n // ENS\n _getProvider(chainId) {\n return logger.throwError(\"provider cannot connect to target network\", \"UNSUPPORTED_OPERATION\", {\n operation: \"_getProvider()\"\n });\n }\n async getResolver(name) {\n return await EnsResolver.fromName(this, name);\n }\n async getAvatar(name) {\n const resolver = await this.getResolver(name);\n if (resolver) {\n return await resolver.getAvatar();\n }\n return null;\n }\n async resolveName(name) {\n if (typeof (name) === \"string\") {\n const resolver = await this.getResolver(name);\n if (resolver) {\n return await resolver.getAddress();\n }\n }\n else {\n const address = await name.getAddress();\n if (address == null) {\n return logger.throwArgumentError(\"Addressable returned no address\", \"name\", name);\n }\n return address;\n }\n return null;\n }\n async lookupAddress(address) {\n throw new Error();\n //return \"TODO\";\n }\n async waitForTransaction(hash, confirms = 1, timeout) {\n if (confirms === 0) {\n return this.getTransactionReceipt(hash);\n }\n return new Promise(async (resolve, reject) => {\n let timer = null;\n const listener = (async (blockNumber) => {\n try {\n const receipt = await this.getTransactionReceipt(hash);\n if (receipt != null) {\n if (blockNumber - receipt.blockNumber + 1 >= confirms) {\n resolve(receipt);\n this.off(\"block\", listener);\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n return;\n }\n }\n }\n catch (error) {\n console.log(\"EEE\", error);\n }\n this.once(\"block\", listener);\n });\n if (timeout != null) {\n timer = setTimeout(() => {\n if (timer == null) {\n return;\n }\n timer = null;\n this.off(\"block\", listener);\n reject(logger.makeError(\"timeout\", \"TIMEOUT\", {}));\n }, timeout);\n }\n listener(await this.getBlockNumber());\n });\n }\n async waitForBlock(blockTag) {\n throw new Error();\n //return new Block(<any><unknown>{ }, this);\n }\n _clearTimeout(timerId) {\n const timer = __classPrivateFieldGet(this, _AbstractProvider_timers, \"f\").get(timerId);\n if (!timer) {\n return;\n }\n if (timer.timer) {\n clearTimeout(timer.timer);\n }\n __classPrivateFieldGet(this, _AbstractProvider_timers, \"f\").delete(timerId);\n }\n _setTimeout(_func, timeout = 0) {\n var _a, _b;\n const timerId = (__classPrivateFieldSet(this, _AbstractProvider_nextTimer, (_b = __classPrivateFieldGet(this, _AbstractProvider_nextTimer, \"f\"), _a = _b++, _b), \"f\"), _a);\n const func = () => {\n __classPrivateFieldGet(this, _AbstractProvider_timers, \"f\").delete(timerId);\n _func();\n };\n if (this.paused) {\n __classPrivateFieldGet(this, _AbstractProvider_timers, \"f\").set(timerId, { timer: null, func, time: timeout });\n }\n else {\n const timer = setTimeout(func, timeout);\n __classPrivateFieldGet(this, _AbstractProvider_timers, \"f\").set(timerId, { timer, func, time: getTime() });\n }\n return timerId;\n }\n _forEachSubscriber(func) {\n for (const sub of __classPrivateFieldGet(this, _AbstractProvider_subs, \"f\").values()) {\n func(sub.subscriber);\n }\n }\n // Event API; sub-classes should override this; any supported\n // event filter will have been munged into an EventFilter\n _getSubscriber(sub) {\n switch (sub.type) {\n case \"debug\":\n case \"network\":\n return new UnmanagedSubscriber(sub.type);\n case \"block\":\n return new PollingBlockSubscriber(this);\n case \"event\":\n return new PollingEventSubscriber(this, sub.filter);\n case \"transaction\":\n return new PollingTransactionSubscriber(this, sub.hash);\n case \"orphan\":\n return new PollingOrphanSubscriber(this, sub.filter);\n }\n throw new Error(`unsupported event: ${sub.type}`);\n }\n _recoverSubscriber(oldSub, newSub) {\n for (const sub of __classPrivateFieldGet(this, _AbstractProvider_subs, \"f\").values()) {\n if (sub.subscriber === oldSub) {\n if (sub.started) {\n sub.subscriber.stop();\n }\n sub.subscriber = newSub;\n if (sub.started) {\n newSub.start();\n }\n if (__classPrivateFieldGet(this, _AbstractProvider_pausedState, \"f\") != null) {\n newSub.pause(__classPrivateFieldGet(this, _AbstractProvider_pausedState, \"f\"));\n }\n break;\n }\n }\n }\n async on(event, listener) {\n const sub = await __classPrivateFieldGet(this, _AbstractProvider_instances, \"m\", _AbstractProvider_getSub).call(this, event);\n sub.listeners.push({ listener, once: false });\n if (!sub.started) {\n sub.subscriber.start();\n sub.started = true;\n if (__classPrivateFieldGet(this, _AbstractProvider_pausedState, \"f\") != null) {\n sub.subscriber.pause(__classPrivateFieldGet(this, _AbstractProvider_pausedState, \"f\"));\n }\n }\n return this;\n }\n async once(event, listener) {\n const sub = await __classPrivateFieldGet(this, _AbstractProvider_instances, \"m\", _AbstractProvider_getSub).call(this, event);\n sub.listeners.push({ listener, once: true });\n if (!sub.started) {\n sub.subscriber.start();\n sub.started = true;\n if (__classPrivateFieldGet(this, _AbstractProvider_pausedState, \"f\") != null) {\n sub.subscriber.pause(__classPrivateFieldGet(this, _AbstractProvider_pausedState, \"f\"));\n }\n }\n return this;\n }\n async emit(event, ...args) {\n const sub = await __classPrivateFieldGet(this, _AbstractProvider_instances, \"m\", _AbstractProvider_hasSub).call(this, event, args);\n if (!sub) {\n return false;\n }\n ;\n const count = sub.listeners.length;\n sub.listeners = sub.listeners.filter(({ listener, once }) => {\n const payload = new EventPayload(this, (once ? null : listener), event);\n try {\n listener.call(this, ...args, payload);\n }\n catch (error) { }\n return !once;\n });\n return (count > 0);\n }\n async listenerCount(event) {\n if (event) {\n const sub = await __classPrivateFieldGet(this, _AbstractProvider_instances, \"m\", _AbstractProvider_hasSub).call(this, event);\n if (!sub) {\n return 0;\n }\n return sub.listeners.length;\n }\n let total = 0;\n for (const { listeners } of __classPrivateFieldGet(this, _AbstractProvider_subs, \"f\").values()) {\n total += listeners.length;\n }\n return total;\n }\n async listeners(event) {\n if (event) {\n const sub = await __classPrivateFieldGet(this, _AbstractProvider_instances, \"m\", _AbstractProvider_hasSub).call(this, event);\n if (!sub) {\n return [];\n }\n return sub.listeners.map(({ listener }) => listener);\n }\n let result = [];\n for (const { listeners } of __classPrivateFieldGet(this, _AbstractProvider_subs, \"f\").values()) {\n result = result.concat(listeners.map(({ listener }) => listener));\n }\n return result;\n }\n async off(event, listener) {\n const sub = await __classPrivateFieldGet(this, _AbstractProvider_instances, \"m\", _AbstractProvider_hasSub).call(this, event);\n if (!sub) {\n return this;\n }\n if (listener) {\n const index = sub.listeners.map(({ listener }) => listener).indexOf(listener);\n if (index >= 0) {\n sub.listeners.splice(index, 1);\n }\n }\n if (!listener || sub.listeners.length === 0) {\n if (sub.started) {\n sub.subscriber.stop();\n }\n __classPrivateFieldGet(this, _AbstractProvider_subs, \"f\").delete(sub.tag);\n }\n return this;\n }\n async removeAllListeners(event) {\n if (event) {\n const { tag, started, subscriber } = await __classPrivateFieldGet(this, _AbstractProvider_instances, \"m\", _AbstractProvider_getSub).call(this, event);\n if (started) {\n subscriber.stop();\n }\n __classPrivateFieldGet(this, _AbstractProvider_subs, \"f\").delete(tag);\n }\n else {\n for (const [tag, { started, subscriber }] of __classPrivateFieldGet(this, _AbstractProvider_subs, \"f\")) {\n if (started) {\n subscriber.stop();\n }\n __classPrivateFieldGet(this, _AbstractProvider_subs, \"f\").delete(tag);\n }\n }\n return this;\n }\n // Alias for \"on\"\n async addListener(event, listener) {\n return await this.on(event, listener);\n }\n // Alias for \"off\"\n async removeListener(event, listener) {\n return this.off(event, listener);\n }\n // Sub-classes should override this to shutdown any sockets, etc.\n // but MUST call this super.shutdown.\n async shutdown() {\n // Stop all listeners\n this.removeAllListeners();\n // Shut down all tiemrs\n for (const timerId of __classPrivateFieldGet(this, _AbstractProvider_timers, \"f\").keys()) {\n this._clearTimeout(timerId);\n }\n }\n get paused() { return (__classPrivateFieldGet(this, _AbstractProvider_pausedState, \"f\") != null); }\n pause(dropWhilePaused) {\n if (__classPrivateFieldGet(this, _AbstractProvider_pausedState, \"f\") != null) {\n if (__classPrivateFieldGet(this, _AbstractProvider_pausedState, \"f\") == !!dropWhilePaused) {\n return;\n }\n return logger.throwError(\"cannot change pause type; resume first\", \"UNSUPPORTED_OPERATION\", {\n operation: \"pause\"\n });\n }\n this._forEachSubscriber((s) => s.pause(dropWhilePaused));\n __classPrivateFieldSet(this, _AbstractProvider_pausedState, !!dropWhilePaused, \"f\");\n for (const timer of __classPrivateFieldGet(this, _AbstractProvider_timers, \"f\").values()) {\n // Clear the timer\n if (timer.timer) {\n clearTimeout(timer.timer);\n }\n // Remaining time needed for when we become unpaused\n timer.time = getTime() - timer.time;\n }\n }\n resume() {\n if (__classPrivateFieldGet(this, _AbstractProvider_pausedState, \"f\") == null) {\n return;\n }\n this._forEachSubscriber((s) => s.resume());\n __classPrivateFieldSet(this, _AbstractProvider_pausedState, null, \"f\");\n for (const timer of __classPrivateFieldGet(this, _AbstractProvider_timers, \"f\").values()) {\n // Remaining time when we were paused\n let timeout = timer.time;\n if (timeout < 0) {\n timeout = 0;\n }\n // Start time (in cause paused, so we con compute remaininf time)\n timer.time = getTime();\n // Start the timer\n setTimeout(timer.func, timeout);\n }\n }\n}\n_AbstractProvider_subs = new WeakMap(), _AbstractProvider_plugins = new WeakMap(), _AbstractProvider_pausedState = new WeakMap(), _AbstractProvider_networkPromise = new WeakMap(), _AbstractProvider_anyNetwork = new WeakMap(), _AbstractProvider_performCache = new WeakMap(), _AbstractProvider_nextTimer = new WeakMap(), _AbstractProvider_timers = new WeakMap(), _AbstractProvider_disableCcipRead = new WeakMap(), _AbstractProvider_instances = new WeakSet(), _AbstractProvider_perform = \n// Shares multiple identical requests made during the same 250ms\nasync function _AbstractProvider_perform(req) {\n // Create a tag\n const tag = getTag(req.method, req);\n let perform = __classPrivateFieldGet(this, _AbstractProvider_performCache, \"f\").get(tag);\n if (!perform) {\n perform = this._perform(req);\n __classPrivateFieldGet(this, _AbstractProvider_performCache, \"f\").set(tag, perform);\n setTimeout(() => {\n if (__classPrivateFieldGet(this, _AbstractProvider_performCache, \"f\").get(tag) === perform) {\n __classPrivateFieldGet(this, _AbstractProvider_performCache, \"f\").delete(tag);\n }\n }, 250);\n }\n return await perform;\n}, _AbstractProvider_call = async function _AbstractProvider_call(tx, blockTag, attempt) {\n if (attempt >= MAX_CCIP_REDIRECTS) {\n logger.throwError(\"CCIP read exceeded maximum redirections\", \"OFFCHAIN_FAULT\", {\n reason: \"TOO_MANY_REDIRECTS\",\n transaction: Object.assign({}, tx, { blockTag, enableCcipRead: true })\n });\n }\n const transaction = copyRequest(tx);\n try {\n return hexlify(await this._perform({ method: \"call\", transaction, blockTag }));\n }\n catch (error) {\n // CCIP Read OffchainLookup\n if (!this.disableCcipRead && isCallException(error) && attempt >= 0 && blockTag === \"latest\" && transaction.to != null && dataSlice(error.data, 0, 4) === \"0x556f1830\") {\n const data = error.data;\n const txSender = await resolveAddress(transaction.to, this);\n // Parse the CCIP Read Arguments\n let ccipArgs;\n try {\n ccipArgs = parseOffchainLookup(dataSlice(error.data, 4));\n }\n catch (error) {\n return logger.throwError(error.message, \"OFFCHAIN_FAULT\", {\n reason: \"BAD_DATA\",\n transaction, info: { data }\n });\n }\n // Check the sender of the OffchainLookup matches the transaction\n if (ccipArgs.sender.toLowerCase() !== txSender.toLowerCase()) {\n return logger.throwError(\"CCIP Read sender mismatch\", \"CALL_EXCEPTION\", {\n data, transaction,\n errorSignature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n errorName: \"OffchainLookup\",\n errorArgs: ccipArgs.errorArgs\n });\n }\n const ccipResult = await this.ccipReadFetch(transaction, ccipArgs.calldata, ccipArgs.urls);\n if (ccipResult == null) {\n return logger.throwError(\"CCIP Read failed to fetch data\", \"OFFCHAIN_FAULT\", {\n reason: \"FETCH_FAILED\",\n transaction, info: { data: error.data, errorArgs: ccipArgs.errorArgs }\n });\n }\n return __classPrivateFieldGet(this, _AbstractProvider_instances, \"m\", _AbstractProvider_call).call(this, {\n to: txSender,\n data: concat([\n ccipArgs.selector, encodeBytes([ccipResult, ccipArgs.extraData])\n ]),\n }, blockTag, attempt + 1);\n }\n throw error;\n }\n}, _AbstractProvider_getBlock = async function _AbstractProvider_getBlock(block, includeTransactions) {\n const format = (await this.getNetwork()).formatter;\n if (isHexString(block, 32)) {\n return await __classPrivateFieldGet(this, _AbstractProvider_instances, \"m\", _AbstractProvider_perform).call(this, {\n method: \"getBlock\", blockHash: block, includeTransactions\n });\n }\n return await __classPrivateFieldGet(this, _AbstractProvider_instances, \"m\", _AbstractProvider_perform).call(this, {\n method: \"getBlock\", blockTag: format.blockTag(block), includeTransactions\n });\n}, _AbstractProvider_hasSub = async function _AbstractProvider_hasSub(event, emitArgs) {\n let sub = await getSubscription(event, this);\n // This is a log that is removing an existing log; we actually want\n // to emit an orphan event for the removed log\n if (sub.type === \"event\" && emitArgs && emitArgs.length > 0 && emitArgs[0].removed === true) {\n sub = await getSubscription({ orphan: \"drop-log\", log: emitArgs[0] }, this);\n }\n return __classPrivateFieldGet(this, _AbstractProvider_subs, \"f\").get(sub.tag) || null;\n}, _AbstractProvider_getSub = async function _AbstractProvider_getSub(event) {\n const subscription = await getSubscription(event, this);\n // Prevent tampering with our tag in any subclass' _getSubscriber\n const tag = subscription.tag;\n let sub = __classPrivateFieldGet(this, _AbstractProvider_subs, \"f\").get(tag);\n if (!sub) {\n const subscriber = this._getSubscriber(subscription);\n const addressableMap = new WeakMap();\n const nameMap = new Map();\n sub = { subscriber, tag, addressableMap, nameMap, started: false, listeners: [] };\n __classPrivateFieldGet(this, _AbstractProvider_subs, \"f\").set(tag, sub);\n }\n return sub;\n};\nfunction _parseString(result, start) {\n try {\n const bytes = _parseBytes(result, start);\n if (bytes) {\n return toUtf8String(bytes);\n }\n }\n catch (error) { }\n return null;\n}\nfunction _parseBytes(result, start) {\n if (result === \"0x\") {\n return null;\n }\n try {\n const offset = logger.getNumber(dataSlice(result, start, start + 32));\n const length = logger.getNumber(dataSlice(result, offset, offset + 32));\n return dataSlice(result, offset + 32, offset + 32 + length);\n }\n catch (error) { }\n return null;\n}\nfunction numPad(value) {\n const result = toArray(value);\n if (result.length > 32) {\n throw new Error(\"internal; should not happen\");\n }\n const padded = new Uint8Array(32);\n padded.set(result, 32 - result.length);\n return padded;\n}\nfunction bytesPad(value) {\n if ((value.length % 32) === 0) {\n return value;\n }\n const result = new Uint8Array(Math.ceil(value.length / 32) * 32);\n result.set(value);\n return result;\n}\nconst empty = new Uint8Array([]);\n// ABI Encodes a series of (bytes, bytes, ...)\nfunction encodeBytes(datas) {\n const result = [];\n let byteCount = 0;\n // Add place-holders for pointers as we add items\n for (let i = 0; i < datas.length; i++) {\n result.push(empty);\n byteCount += 32;\n }\n for (let i = 0; i < datas.length; i++) {\n const data = logger.getBytes(datas[i]);\n // Update the bytes offset\n result[i] = numPad(byteCount);\n // The length and padded value of data\n result.push(numPad(data.length));\n result.push(bytesPad(data));\n byteCount += 32 + Math.ceil(data.length / 32) * 32;\n }\n return concat(result);\n}\nconst zeros = \"0x0000000000000000000000000000000000000000000000000000000000000000\";\nfunction parseOffchainLookup(data) {\n const result = {\n sender: \"\", urls: [], calldata: \"\", selector: \"\", extraData: \"\", errorArgs: []\n };\n if (dataLength(data) < 5 * 32) {\n throw new Error(\"insufficient OffchainLookup data\");\n }\n const sender = dataSlice(data, 0, 32);\n if (dataSlice(sender, 0, 12) !== dataSlice(zeros, 0, 12)) {\n throw new Error(\"corrupt OffchainLookup sender\");\n }\n result.sender = dataSlice(sender, 12);\n // Read the URLs from the response\n try {\n const urls = [];\n const urlsOffset = logger.getNumber(dataSlice(data, 32, 64));\n const urlsLength = logger.getNumber(dataSlice(data, urlsOffset, urlsOffset + 32));\n const urlsData = dataSlice(data, urlsOffset + 32);\n for (let u = 0; u < urlsLength; u++) {\n const url = _parseString(urlsData, u * 32);\n if (url == null) {\n throw new Error(\"abort\");\n }\n urls.push(url);\n }\n result.urls = urls;\n }\n catch (error) {\n throw new Error(\"corrupt OffchainLookup urls\");\n }\n // Get the CCIP calldata to forward\n try {\n const calldata = _parseBytes(data, 64);\n if (calldata == null) {\n throw new Error(\"abort\");\n }\n result.calldata = calldata;\n }\n catch (error) {\n throw new Error(\"corrupt OffchainLookup calldata\");\n }\n // Get the callbackSelector (bytes4)\n if (dataSlice(data, 100, 128) !== dataSlice(zeros, 0, 28)) {\n throw new Error(\"corrupt OffchainLookup callbaackSelector\");\n }\n result.selector = dataSlice(data, 96, 100);\n // Get the extra data to send back to the contract as context\n try {\n const extraData = _parseBytes(data, 128);\n if (extraData == null) {\n throw new Error(\"abort\");\n }\n result.extraData = extraData;\n }\n catch (error) {\n throw new Error(\"corrupt OffchainLookup extraData\");\n }\n result.errorArgs = \"sender,urls,calldata,selector,extraData\".split(/,/).map((k) => result[k]);\n return result;\n}\n//# sourceMappingURL=abstract-provider.js.map","var __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 _AbstractSigner_instances, _AbstractSigner_checkProvider, _AbstractSigner_fromify, _VoidSigner_instances, _VoidSigner_throwUnsupported, _WrappedSigner_signer;\nimport { defineProperties, resolveProperties } from \"@ethersproject/properties\";\nimport { Transaction } from \"@ethersproject/transaction\";\nimport { logger } from \"./logger.js\";\nexport class AbstractSigner {\n constructor(provider) {\n _AbstractSigner_instances.add(this);\n defineProperties(this, { provider: (provider || null) });\n }\n async getBalance(blockTag) {\n return __classPrivateFieldGet(this, _AbstractSigner_instances, \"m\", _AbstractSigner_checkProvider).call(this, \"getBalance\").getBalanceOf(await this.getAddress(), blockTag);\n }\n async getTransactionCount(blockTag) {\n return __classPrivateFieldGet(this, _AbstractSigner_instances, \"m\", _AbstractSigner_checkProvider).call(this, \"getTransactionCount\").getTransactionCountOf(await this.getAddress(), blockTag);\n }\n async estimateGas(tx) {\n return __classPrivateFieldGet(this, _AbstractSigner_instances, \"m\", _AbstractSigner_checkProvider).call(this, \"estimateGas\").estimateGas(await __classPrivateFieldGet(this, _AbstractSigner_instances, \"m\", _AbstractSigner_fromify).call(this, tx));\n }\n async call(tx) {\n return __classPrivateFieldGet(this, _AbstractSigner_instances, \"m\", _AbstractSigner_checkProvider).call(this, \"call\").call(await __classPrivateFieldGet(this, _AbstractSigner_instances, \"m\", _AbstractSigner_fromify).call(this, tx));\n }\n async populateTransaction(tx) {\n const provider = __classPrivateFieldGet(this, _AbstractSigner_instances, \"m\", _AbstractSigner_checkProvider).call(this, \"populateTransaction\");\n //let pop: Deferrable<TransactionRequest> = Object.assign({ }, tx);\n let pop = Object.assign({}, tx);\n if (pop.to != null) {\n pop.to = provider.resolveName(pop.to).then((to) => {\n if (to == null) {\n return logger.throwArgumentError(\"transaction to ENS name not configured\", \"tx.to\", pop.to);\n }\n return to;\n });\n }\n if (pop.from != null) {\n const from = pop.from;\n pop.from = Promise.all([\n this.getAddress(),\n this.resolveName(from)\n ]).then(([address, from]) => {\n if (!from || address.toLowerCase() !== from.toLowerCase()) {\n return logger.throwArgumentError(\"transaction from mismatch\", \"tx.from\", from);\n }\n return address;\n });\n }\n if (pop.nonce == null) {\n pop.nonce = this.getTransactionCount();\n }\n pop = resolveProperties(pop);\n if (pop.gasLimit == null) {\n pop.gasLimit = provider.estimateGas(pop);\n }\n pop = resolveProperties(pop);\n //@TODO: Copy logic from AbstractSigner in v5\n return await resolveProperties(pop);\n }\n async resolveName(name) {\n const provider = __classPrivateFieldGet(this, _AbstractSigner_instances, \"m\", _AbstractSigner_checkProvider).call(this, \"resolveName\");\n return await provider.resolveName(name);\n }\n async sendTransaction(tx) {\n const provider = __classPrivateFieldGet(this, _AbstractSigner_instances, \"m\", _AbstractSigner_checkProvider).call(this, \"sendTransaction\");\n const txObj = Transaction.from(await this.populateTransaction(tx));\n return await provider.broadcastTransaction(await this.signTransaction(txObj));\n }\n}\n_AbstractSigner_instances = new WeakSet(), _AbstractSigner_checkProvider = function _AbstractSigner_checkProvider(operation) {\n if (this.provider) {\n return this.provider;\n }\n return logger.throwError(\"missing provider\", \"UNSUPPORTED_OPERATION\", { operation });\n}, _AbstractSigner_fromify = async function _AbstractSigner_fromify(tx) {\n tx = Object.assign({}, tx);\n const actions = [];\n if (tx.from != null) {\n const from = tx.from;\n actions.push(Promise.all([\n this.getAddress(),\n this.resolveName(from)\n ]).then(([address, from]) => {\n if (!from || address.toLowerCase() !== from.toLowerCase()) {\n logger.throwArgumentError(\"transaction from mismatch\", \"tx.from\", from);\n }\n tx.from = address;\n }));\n }\n await Promise.all(actions);\n return tx;\n};\nexport class VoidSigner extends AbstractSigner {\n constructor(address, provider) {\n super(provider);\n _VoidSigner_instances.add(this);\n defineProperties(this, { address });\n }\n async getAddress() { return this.address; }\n connect(provider) {\n return new VoidSigner(this.address, provider);\n }\n async signTransaction(tx) {\n __classPrivateFieldGet(this, _VoidSigner_instances, \"m\", _VoidSigner_throwUnsupported).call(this, \"transactions\", \"signTransaction\");\n }\n async signMessage(message) {\n __classPrivateFieldGet(this, _VoidSigner_instances, \"m\", _VoidSigner_throwUnsupported).call(this, \"messages\", \"signMessage\");\n }\n async signTypedData(domain, types, value) {\n __classPrivateFieldGet(this, _VoidSigner_instances, \"m\", _VoidSigner_throwUnsupported).call(this, \"typed-data\", \"signTypedData\");\n }\n}\n_VoidSigner_instances = new WeakSet(), _VoidSigner_throwUnsupported = function _VoidSigner_throwUnsupported(suffix, operation) {\n return logger.throwError(`VoidSigner cannot sign ${suffix}`, \"UNSUPPORTED_OPERATION\", {\n operation\n });\n};\nexport class WrappedSigner extends AbstractSigner {\n //get provider(): null | Provider { return this.#signer.provider; }\n constructor(signer) {\n super(signer.provider);\n _WrappedSigner_signer.set(this, void 0);\n __classPrivateFieldSet(this, _WrappedSigner_signer, signer, \"f\");\n }\n async getAddress() {\n return await __classPrivateFieldGet(this, _WrappedSigner_signer, \"f\").getAddress();\n }\n connect(provider) {\n return new WrappedSigner(__classPrivateFieldGet(this, _WrappedSigner_signer, \"f\").connect(provider));\n }\n async signTransaction(tx) {\n return await __classPrivateFieldGet(this, _WrappedSigner_signer, \"f\").signTransaction(tx);\n }\n async sendTransaction(tx) {\n return await __classPrivateFieldGet(this, _WrappedSigner_signer, \"f\").sendTransaction(tx);\n }\n async signMessage(message) {\n return await __classPrivateFieldGet(this, _WrappedSigner_signer, \"f\").signMessage(message);\n }\n async signTypedData(domain, types, value) {\n return await __classPrivateFieldGet(this, _WrappedSigner_signer, \"f\").signTypedData(domain, types, value);\n }\n}\n_WrappedSigner_signer = new WeakMap();\n//# sourceMappingURL=abstract-signer.js.map","// Show the throttle message only once\nconst shown = new Set();\nexport function showThrottleMessage(service) {\n if (shown.has(service)) {\n return;\n }\n shown.add(service);\n console.log(\"========= NOTICE =========\");\n console.log(`Request-Rate Exceeded for ${service} (this message will not be repeated)`);\n console.log(\"\");\n console.log(\"The default API keys for each service are provided as a highly-throttled,\");\n console.log(\"community resource for low-traffic projects and early prototyping.\");\n console.log(\"\");\n console.log(\"While your application will continue to function, we highly recommended\");\n console.log(\"signing up for your own API keys to improve performance, increase your\");\n console.log(\"request rate/limit and enable other perks, such as metrics and advanced APIs.\");\n console.log(\"\");\n console.log(\"For more details: https:/\\/docs.ethers.io/api-keys/\");\n console.log(\"==========================\");\n}\n//# sourceMappingURL=community.js.map","var __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 _FilterIdSubscriber_instances, _FilterIdSubscriber_provider, _FilterIdSubscriber_filterIdPromise, _FilterIdSubscriber_poller, _FilterIdSubscriber_network, _FilterIdSubscriber_poll, _FilterIdSubscriber_teardown, _FilterIdEventSubscriber_event;\nimport { PollingEventSubscriber } from \"./subscriber-polling.js\";\nfunction copy(obj) {\n return JSON.parse(JSON.stringify(obj));\n}\nexport class FilterIdSubscriber {\n constructor(provider) {\n _FilterIdSubscriber_instances.add(this);\n _FilterIdSubscriber_provider.set(this, void 0);\n _FilterIdSubscriber_filterIdPromise.set(this, void 0);\n _FilterIdSubscriber_poller.set(this, void 0);\n _FilterIdSubscriber_network.set(this, void 0);\n __classPrivateFieldSet(this, _FilterIdSubscriber_provider, provider, \"f\");\n __classPrivateFieldSet(this, _FilterIdSubscriber_filterIdPromise, null, \"f\");\n __classPrivateFieldSet(this, _FilterIdSubscriber_poller, __classPrivateFieldGet(this, _FilterIdSubscriber_instances, \"m\", _FilterIdSubscriber_poll).bind(this), \"f\");\n __classPrivateFieldSet(this, _FilterIdSubscriber_network, null, \"f\");\n }\n _subscribe(provider) {\n throw new Error(\"subclasses must override this\");\n }\n _emitResults(provider, result) {\n throw new Error(\"subclasses must override this\");\n }\n _recover(provider) {\n throw new Error(\"subclasses must override this\");\n }\n start() { __classPrivateFieldGet(this, _FilterIdSubscriber_instances, \"m\", _FilterIdSubscriber_poll).call(this, -2); }\n stop() {\n __classPrivateFieldGet(this, _FilterIdSubscriber_instances, \"m\", _FilterIdSubscriber_teardown).call(this);\n __classPrivateFieldGet(this, _FilterIdSubscriber_provider, \"f\").off(\"block\", __classPrivateFieldGet(this, _FilterIdSubscriber_poller, \"f\"));\n }\n pause(dropWhilePaused) {\n if (dropWhilePaused) {\n __classPrivateFieldGet(this, _FilterIdSubscriber_instances, \"m\", _FilterIdSubscriber_teardown).call(this);\n }\n __classPrivateFieldGet(this, _FilterIdSubscriber_provider, \"f\").off(\"block\", __classPrivateFieldGet(this, _FilterIdSubscriber_poller, \"f\"));\n }\n resume() { this.start(); }\n}\n_FilterIdSubscriber_provider = new WeakMap(), _FilterIdSubscriber_filterIdPromise = new WeakMap(), _FilterIdSubscriber_poller = new WeakMap(), _FilterIdSubscriber_network = new WeakMap(), _FilterIdSubscriber_instances = new WeakSet(), _FilterIdSubscriber_poll = async function _FilterIdSubscriber_poll(blockNumber) {\n try {\n if (__classPrivateFieldGet(this, _FilterIdSubscriber_filterIdPromise, \"f\") == null) {\n __classPrivateFieldSet(this, _FilterIdSubscriber_filterIdPromise, this._subscribe(__classPrivateFieldGet(this, _FilterIdSubscriber_provider, \"f\")), \"f\");\n }\n const filterId = await __classPrivateFieldGet(this, _FilterIdSubscriber_filterIdPromise, \"f\");\n if (filterId == null) {\n __classPrivateFieldGet(this, _FilterIdSubscriber_provider, \"f\")._recoverSubscriber(this, this._recover(__classPrivateFieldGet(this, _FilterIdSubscriber_provider, \"f\")));\n return;\n }\n const network = await __classPrivateFieldGet(this, _FilterIdSubscriber_provider, \"f\").getNetwork();\n if (!__classPrivateFieldGet(this, _FilterIdSubscriber_network, \"f\")) {\n __classPrivateFieldSet(this, _FilterIdSubscriber_network, network, \"f\");\n }\n if (__classPrivateFieldGet(this, _FilterIdSubscriber_network, \"f\").chainId !== network.chainId) {\n throw new Error(\"chaid changed\");\n }\n const result = await __classPrivateFieldGet(this, _FilterIdSubscriber_provider, \"f\").send(\"eth_getFilterChanges\", [filterId]);\n await this._emitResults(__classPrivateFieldGet(this, _FilterIdSubscriber_provider, \"f\"), result);\n }\n catch (error) {\n console.log(\"@TODO\", error);\n }\n __classPrivateFieldGet(this, _FilterIdSubscriber_provider, \"f\").once(\"block\", __classPrivateFieldGet(this, _FilterIdSubscriber_poller, \"f\"));\n}, _FilterIdSubscriber_teardown = function _FilterIdSubscriber_teardown() {\n const filterIdPromise = __classPrivateFieldGet(this, _FilterIdSubscriber_filterIdPromise, \"f\");\n if (filterIdPromise) {\n __classPrivateFieldSet(this, _FilterIdSubscriber_filterIdPromise, null, \"f\");\n filterIdPromise.then((filterId) => {\n __classPrivateFieldGet(this, _FilterIdSubscriber_provider, \"f\").send(\"eth_uninstallFilter\", [filterId]);\n });\n }\n};\nexport class FilterIdEventSubscriber extends FilterIdSubscriber {\n constructor(provider, filter) {\n super(provider);\n _FilterIdEventSubscriber_event.set(this, void 0);\n __classPrivateFieldSet(this, _FilterIdEventSubscriber_event, copy(filter), \"f\");\n }\n _recover(provider) {\n return new PollingEventSubscriber(provider, __classPrivateFieldGet(this, _FilterIdEventSubscriber_event, \"f\"));\n }\n async _subscribe(provider) {\n const filterId = await provider.send(\"eth_newFilter\", [__classPrivateFieldGet(this, _FilterIdEventSubscriber_event, \"f\")]);\n console.log(\"____SUB\", filterId);\n return filterId;\n }\n async _emitResults(provider, results) {\n const network = await provider.getNetwork();\n for (const result of results) {\n const log = network.formatter.log(result, provider);\n provider.emit(__classPrivateFieldGet(this, _FilterIdEventSubscriber_event, \"f\"), log);\n }\n }\n}\n_FilterIdEventSubscriber_event = new WeakMap();\nexport class FilterIdPendingSubscriber extends FilterIdSubscriber {\n async _subscribe(provider) {\n return await provider.send(\"eth_newPendingTransactionFilter\", []);\n }\n async _emitResults(provider, results) {\n const network = await provider.getNetwork();\n for (const result of results) {\n provider.emit(\"pending\", network.formatter.hash(result));\n }\n }\n}\n//# sourceMappingURL=subscriber-filterid.js.map","// @TODO:\n// - Add the batching API\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 _JsonRpcApiProvider_nextId, _JsonRpcApiProvider_options, _JsonRpcProvider_connect, _JsonRpcProvider_pollingInterval;\n// https://playground.open-rpc.org/?schemaUrl=https://raw.githubusercontent.com/ethereum/eth1.0-apis/assembled-spec/openrpc.json&uiSchema%5BappBar%5D%5Bui:splitView%5D=true&uiSchema%5BappBar%5D%5Bui:input%5D=false&uiSchema%5BappBar%5D%5Bui:examplesDropdown%5D=false\nimport { resolveAddress } from \"@ethersproject/address\";\nimport { hexlify, isHexString, quantity } from \"@ethersproject/bytes\";\nimport { defineProperties } from \"@ethersproject/properties\";\nimport { TypedDataEncoder } from \"@ethersproject/hash\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nimport { accessListify } from \"@ethersproject/transaction\";\nimport { fetchData, FetchRequest } from \"@ethersproject/web\";\nimport { AbstractProvider, UnmanagedSubscriber } from \"./abstract-provider.js\";\nimport { Network } from \"./network.js\";\nimport { FilterIdEventSubscriber, FilterIdPendingSubscriber } from \"./subscriber-filterid.js\";\nimport { logger } from \"./logger.js\";\nfunction copy(value) {\n return JSON.parse(JSON.stringify(value));\n}\nconst Primitive = \"bigint,boolean,function,number,string,symbol\".split(/,/g);\n//const Methods = \"getAddress,then\".split(/,/g);\nfunction deepCopy(value) {\n if (value == null || Primitive.indexOf(typeof (value)) >= 0) {\n return value;\n }\n // Keep any Addressable\n if (typeof (value.getAddress) === \"function\") {\n return value;\n }\n if (Array.isArray(value)) {\n return (value.map(deepCopy));\n }\n if (typeof (value) === \"object\") {\n return Object.keys(value).reduce((accum, key) => {\n accum[key] = value[key];\n return accum;\n }, {});\n }\n throw new Error(`should not happen: ${value} (${typeof (value)})`);\n}\nfunction getLowerCase(value) {\n if (value) {\n return value.toLowerCase();\n }\n return value;\n}\nfunction isPollable(value) {\n return (value && typeof (value.pollingInterval) === \"number\");\n}\nconst defaultOptions = {\n // Default to use filter ID (the FilterIdSubscriber will\n // fallback onto polling if subscription fails)\n polling: false,\n // Maximum batch size (in bytes)\n batchMaxSize: (1 << 20),\n // How long to wait before dispatching a new batch\n batchStallTime: 250,\n};\n// @TODO: Unchecked Signers\nexport class JsonRpcSigner {\n constructor(provider, address) {\n defineProperties(this, { provider, address });\n }\n connect(provider) {\n return logger.throwError(\"cannot reconnect JsonRpcSigner\", \"UNSUPPORTED_OPERATION\", {\n operation: \"signer.connect\"\n });\n }\n async getAddress() {\n return this.address;\n }\n async getNetwork() {\n return await this.provider.getNetwork();\n }\n async getFeeData() {\n return await this.provider.getFeeData();\n }\n async estimateGas(tx) {\n return await this.provider.estimateGas(tx);\n }\n async call(tx) {\n return await this.provider.call(tx);\n }\n async resolveName(name) {\n return await this.provider.resolveName(name);\n }\n async getBalance(blockTag) {\n return await this.provider.getBalanceOf(this.address);\n }\n async getTransactionCount(blockTag) {\n return await this.provider.getTransactionCountOf(this.address);\n }\n // Returns just the hash of the transaction after sent, which is what\n // the bare JSON-RPC API does;\n async sendUncheckedTransaction(_tx) {\n const tx = deepCopy(_tx);\n const promises = [];\n // Make sure the from matches the sender\n if (tx.from) {\n const _from = tx.from;\n promises.push((async () => {\n const from = await resolveAddress(_from, this.provider);\n if (from == null || from.toLowerCase() !== this.address.toLowerCase()) {\n logger.throwArgumentError(\"from address mismatch\", \"transaction\", _tx);\n }\n tx.from = from;\n })());\n }\n else {\n tx.from = this.address;\n }\n // The JSON-RPC for eth_sendTransaction uses 90000 gas; if the user\n // wishes to use this, it is easy to specify explicitly, otherwise\n // we look it up for them.\n if (tx.gasLimit == null) {\n promises.push((async () => {\n tx.gasLimit = await this.provider.estimateGas(Object.assign(Object.assign({}, tx), { from: this.address }));\n })());\n }\n // The address may be an ENS name or Addressable\n if (tx.to != null) {\n const _to = tx.to;\n promises.push((async () => {\n tx.to = await resolveAddress(_to, this.provider);\n })());\n }\n // Wait until all of our properties are filled in\n if (promises.length) {\n await Promise.all(promises);\n }\n const hexTx = this.provider.getRpcTransaction(tx);\n return this.provider.send(\"eth_sendTransaction\", [hexTx]);\n }\n async sendTransaction(tx) {\n // This cannot be mined any earlier than any recent block\n const blockNumber = await this.provider.getBlockNumber();\n // Send the transaction\n const hash = await this.sendUncheckedTransaction(tx);\n // Unfortunately, JSON-RPC only provides and opaque transaction hash\n // for a response, and we need the actual transaction, so we poll\n // for it; it should show up very quickly\n return await (new Promise((resolve, reject) => {\n const timeouts = [1000, 100];\n const checkTx = async () => {\n // Try getting the transaction\n const tx = await this.provider.getTransaction(hash);\n if (tx != null) {\n resolve(this.provider._wrapTransaction(tx, hash, blockNumber));\n return;\n }\n // Wait another 4 seconds\n this.provider._setTimeout(() => { checkTx(); }, timeouts.pop() || 4000);\n };\n checkTx();\n }));\n }\n async signTransaction(_tx) {\n const tx = deepCopy(_tx);\n // Make sure the from matches the sender\n if (tx.from) {\n const from = await resolveAddress(tx.from, this.provider);\n if (from == null || from.toLowerCase() !== this.address.toLowerCase()) {\n return logger.throwArgumentError(\"from address mismatch\", \"transaction\", _tx);\n }\n tx.from = from;\n }\n else {\n tx.from = this.address;\n }\n const hexTx = this.provider.getRpcTransaction(tx);\n return await this.provider.send(\"eth_sign_Transaction\", [hexTx]);\n }\n async signMessage(_message) {\n const message = ((typeof (_message) === \"string\") ? toUtf8Bytes(_message) : _message);\n return await this.provider.send(\"personal_sign\", [\n hexlify(message), this.address.toLowerCase()\n ]);\n }\n async signTypedData(domain, types, _value) {\n const value = deepCopy(_value);\n // Populate any ENS names (in-place)\n const populated = await TypedDataEncoder.resolveNames(domain, types, value, async (value) => {\n const address = await resolveAddress(value);\n if (address == null) {\n return logger.throwArgumentError(\"TypedData does not support null address\", \"value\", value);\n }\n return address;\n });\n return await this.provider.send(\"eth_signTypedData_v4\", [\n this.address.toLowerCase(),\n JSON.stringify(TypedDataEncoder.getPayload(populated.domain, types, populated.value))\n ]);\n }\n async unlock(password) {\n return this.provider.send(\"personal_unlockAccount\", [\n this.address.toLowerCase(), password, null\n ]);\n }\n // https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign\n async _legacySignMessage(_message) {\n const message = ((typeof (_message) === \"string\") ? toUtf8Bytes(_message) : _message);\n return await this.provider.send(\"eth_sign\", [\n this.address.toLowerCase(), hexlify(message)\n ]);\n }\n}\nexport class JsonRpcApiProvider extends AbstractProvider {\n constructor(network) {\n super(network);\n _JsonRpcApiProvider_nextId.set(this, void 0);\n _JsonRpcApiProvider_options.set(this, void 0);\n __classPrivateFieldSet(this, _JsonRpcApiProvider_nextId, 1, \"f\");\n __classPrivateFieldSet(this, _JsonRpcApiProvider_options, Object.assign({}, defaultOptions), \"f\");\n }\n _getOptions(key) {\n return __classPrivateFieldGet(this, _JsonRpcApiProvider_options, \"f\")[key];\n }\n _setOptions(options) {\n // Validate all the options\n for (const _key in options) {\n const key = _key;\n const value = options[key];\n if (typeof (value) !== typeof (__classPrivateFieldGet(this, _JsonRpcApiProvider_options, \"f\")[key])) {\n return logger.throwArgumentError(\"invalid option value\", `options.${key}`, value);\n }\n }\n // Update the values\n for (const _key in options) {\n const key = _key;\n __classPrivateFieldGet(this, _JsonRpcApiProvider_options, \"f\")[key] = (options[key]);\n }\n }\n prepareRequest(method, params) {\n var _a, _b;\n return {\n method, params, id: (__classPrivateFieldSet(this, _JsonRpcApiProvider_nextId, (_b = __classPrivateFieldGet(this, _JsonRpcApiProvider_nextId, \"f\"), _a = _b++, _b), \"f\"), _a), jsonrpc: \"2.0\"\n };\n }\n // Sends the payload to the backend\n //async sendPayload(payload: any): Promise<any> {\n // throw new Error(\"sub-class must implement this\");\n //}\n async send(method, params) {\n // @TODO: This should construct and queue the payload\n throw new Error(\"sub-class must implement this\");\n }\n async getSigner(address = 0) {\n const network = await this.getNetwork();\n const accounts = await this.send(\"eth_accounts\", []);\n // Account index\n if (typeof (address) === \"number\") {\n if (address > accounts.length) {\n throw new Error(\"no such account\");\n }\n return new JsonRpcSigner(this, accounts[address]);\n }\n // Account address\n address = network.formatter.address(address);\n for (const account of accounts) {\n if (network.formatter.address(account) === account) {\n return new JsonRpcSigner(this, account);\n }\n }\n throw new Error(\"invalid account\");\n }\n // Sub-classes can override this; it detects the *actual* network we\n // are connected to\n async _detectNetwork() {\n return Network.from(logger.getBigInt(await this._perform({ method: \"chainId\" })));\n }\n _getSubscriber(sub) {\n // Pending Filters aren't availble via polling\n if (sub.type === \"pending\") {\n return new FilterIdPendingSubscriber(this);\n }\n if (sub.type === \"event\") {\n return new FilterIdEventSubscriber(this, sub.filter);\n }\n // Orphaned Logs are handled automatically, by the filter, since\n // logs with removed are emitted by it\n if (sub.type === \"orphan\" && sub.filter.orphan === \"drop-log\") {\n return new UnmanagedSubscriber(\"orphan\");\n }\n return super._getSubscriber(sub);\n }\n getRpcTransaction(tx) {\n const result = {};\n // JSON-RPC now requires numeric values to be \"quantity\" values\n [\"chainId\", \"gasLimit\", \"gasPrice\", \"type\", \"maxFeePerGas\", \"maxPriorityFeePerGas\", \"nonce\", \"value\"].forEach((key) => {\n if (tx[key] == null) {\n return;\n }\n let dstKey = key;\n if (key === \"gasLimit\") {\n dstKey = \"gas\";\n }\n result[dstKey] = quantity(tx[key]);\n });\n // Make sure addresses and data are lowercase\n [\"from\", \"to\", \"data\"].forEach((key) => {\n if (tx[key] == null) {\n return;\n }\n result[key] = hexlify(tx[key]);\n });\n // Normalize the access list object\n if (tx.accessList) {\n result[\"accessList\"] = accessListify(tx.accessList);\n }\n return result;\n }\n getRpcRequest(req) {\n switch (req.method) {\n case \"chainId\":\n return { method: \"eth_chainId\", args: [] };\n case \"getBlockNumber\":\n return { method: \"eth_blockNumber\", args: [] };\n case \"getGasPrice\":\n return { method: \"eth_gasPrice\", args: [] };\n case \"getBalance\":\n return {\n method: \"eth_getBalance\",\n args: [getLowerCase(req.address), req.blockTag]\n };\n case \"getTransactionCount\":\n return {\n method: \"eth_getTransactionCount\",\n args: [getLowerCase(req.address), req.blockTag]\n };\n case \"getCode\":\n return {\n method: \"eth_getCode\",\n args: [getLowerCase(req.address), req.blockTag]\n };\n case \"getStorageAt\":\n return {\n method: \"eth_getStorageAt\",\n args: [\n getLowerCase(req.address),\n (\"0x\" + req.position.toString(16)),\n req.blockTag\n ]\n };\n case \"sendTransaction\":\n return {\n method: \"eth_sendRawTransaction\",\n args: [req.signedTransaction]\n };\n case \"getBlock\":\n if (\"blockTag\" in req) {\n return {\n method: \"eth_getBlockByNumber\",\n args: [req.blockTag, !!req.includeTransactions]\n };\n }\n else if (\"blockHash\" in req) {\n return {\n method: \"eth_getBlockByHash\",\n args: [req.blockHash, !!req.includeTransactions]\n };\n }\n break;\n case \"getTransaction\":\n return {\n method: \"eth_getTransactionByHash\",\n args: [req.hash]\n };\n case \"getTransactionReceipt\":\n return {\n method: \"eth_getTransactionReceipt\",\n args: [req.hash]\n };\n case \"call\":\n return {\n method: \"eth_call\",\n args: [this.getRpcTransaction(req.transaction), req.blockTag]\n };\n case \"estimateGas\": {\n return {\n method: \"eth_estimateGas\",\n args: [this.getRpcTransaction(req.transaction)]\n };\n }\n case \"getLogs\":\n if (req.filter && req.filter.address != null) {\n if (Array.isArray(req.filter.address)) {\n req.filter.address = req.filter.address.map(getLowerCase);\n }\n else {\n req.filter.address = getLowerCase(req.filter.address);\n }\n }\n return { method: \"eth_getLogs\", args: [req.filter] };\n }\n return null;\n }\n getRpcError(method, args, error) {\n if (method === \"eth_call\") {\n const result = spelunkData(error);\n if (result) {\n // @TODO: Extract errorSignature, errorName, errorArgs, reason if\n // it is Error(string) or Panic(uint25)\n return logger.makeError(\"execution reverted during JSON-RPC call\", \"CALL_EXCEPTION\", {\n data: result.data,\n transaction: args[0]\n });\n }\n return logger.makeError(\"missing revert data during JSON-RPC call\", \"CALL_EXCEPTION\", {\n data: \"0x\", transaction: args[0], info: { error }\n });\n }\n if (method === \"eth_estimateGas\") {\n }\n const message = JSON.stringify(spelunkMessage(error));\n if (message.match(/insufficient funds|base fee exceeds gas limit/)) {\n return logger.makeError(\"insufficient funds for intrinsic transaction cost\", \"INSUFFICIENT_FUNDS\", {\n transaction: args[0]\n });\n }\n if (message.match(/nonce/) && message.match(/too low/)) {\n return logger.makeError(\"nonce has already been used\", \"NONCE_EXPIRED\", {\n transaction: args[0]\n });\n }\n // \"replacement transaction underpriced\"\n if (message.match(/replacement transaction/) && message.match(/underpriced/)) {\n return logger.makeError(\"replacement fee too low\", \"REPLACEMENT_UNDERPRICED\", {\n transaction: args[0]\n });\n }\n if (message.match(/only replay-protected/)) {\n return logger.makeError(\"legacy pre-eip-155 transactions not supported\", \"UNSUPPORTED_OPERATION\", {\n operation: method, info: { transaction: args[0] }\n });\n }\n if (method === \"estimateGas\" && message.match(/gas required exceeds allowance|always failing transaction|execution reverted/)) {\n return logger.makeError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", \"UNPREDICTABLE_GAS_LIMIT\", {\n transaction: args[0]\n });\n }\n return error;\n }\n async _perform(req) {\n // Legacy networks do not like the type field being passed along (which\n // is fair), so we delete type if it is 0 and a non-EIP-1559 network\n if (req.method === \"call\" || req.method === \"estimateGas\") {\n let tx = req.transaction;\n if (tx && tx.type != null && logger.getBigInt(tx.type)) {\n // If there are no EIP-1559 properties, it might be non-EIP-a559\n if (tx.maxFeePerGas == null && tx.maxPriorityFeePerGas == null) {\n const feeData = await this.getFeeData();\n if (feeData.maxFeePerGas == null && feeData.maxPriorityFeePerGas == null) {\n // Network doesn't know about EIP-1559 (and hence type)\n req = Object.assign({}, req, {\n transaction: Object.assign({}, tx, { type: undefined })\n });\n }\n }\n }\n }\n const request = this.getRpcRequest(req);\n if (request != null) {\n this.emit(\"debug\", { type: \"sendRequest\", request });\n try {\n const result = await this.send(request.method, request.args);\n //console.log(\"RR\", result);\n this.emit(\"debug\", { type: \"getResponse\", result });\n return result;\n }\n catch (error) {\n this.emit(\"debug\", { type: \"getError\", error });\n throw this.getRpcError(request.method, request.args, error);\n }\n }\n return super._perform(req);\n }\n}\n_JsonRpcApiProvider_nextId = new WeakMap(), _JsonRpcApiProvider_options = new WeakMap();\nexport class JsonRpcProvider extends JsonRpcApiProvider {\n constructor(url, network) {\n if (url == null) {\n url = \"http:/\\/localhost:8545\";\n }\n super(network);\n _JsonRpcProvider_connect.set(this, void 0);\n _JsonRpcProvider_pollingInterval.set(this, void 0);\n if (typeof (url) === \"string\") {\n __classPrivateFieldSet(this, _JsonRpcProvider_connect, { request: new FetchRequest(url) }, \"f\");\n }\n else {\n __classPrivateFieldSet(this, _JsonRpcProvider_connect, Object.assign({}, url), \"f\");\n __classPrivateFieldGet(this, _JsonRpcProvider_connect, \"f\").request = __classPrivateFieldGet(this, _JsonRpcProvider_connect, \"f\").request.clone();\n }\n __classPrivateFieldSet(this, _JsonRpcProvider_pollingInterval, 4000, \"f\");\n }\n async send(method, params) {\n params = copy(params);\n // Configure a POST connection for the requested method\n const connection = Object.assign({}, __classPrivateFieldGet(this, _JsonRpcProvider_connect, \"f\"));\n connection.request = connection.request.clone();\n connection.request.body = this.prepareRequest(method, params);\n const response = await fetchData(connection);\n response.assertOk();\n const result = response.bodyJson;\n if (\"error\" in result) {\n return logger.throwError(\"error from JSON-RPC\", \"UNKNOWN_ERROR\", {\n result\n });\n }\n return result.result;\n }\n get pollingInterval() { return __classPrivateFieldGet(this, _JsonRpcProvider_pollingInterval, \"f\"); }\n set pollingInterval(value) {\n if (!Number.isInteger(value) || value < 0) {\n throw new Error(\"invalid interval\");\n }\n __classPrivateFieldSet(this, _JsonRpcProvider_pollingInterval, value, \"f\");\n this._forEachSubscriber((sub) => {\n if (isPollable(sub)) {\n sub.pollingInterval = __classPrivateFieldGet(this, _JsonRpcProvider_pollingInterval, \"f\");\n }\n });\n }\n}\n_JsonRpcProvider_connect = new WeakMap(), _JsonRpcProvider_pollingInterval = new WeakMap();\n// This class should only be used when it is not possible for the\n// underlying network to change, such as with INFURA. If you are\n// using MetaMask or some other client which allows users to change\n// their network DO NOT USE THIS. Bad things will happen.\nexport class StaticJsonRpcProvider extends JsonRpcProvider {\n constructor(url, network) {\n super(url, network);\n defineProperties(this, { network });\n }\n async _detectNetwork() {\n return this.network;\n }\n}\nfunction spelunkData(value) {\n if (value == null) {\n return null;\n }\n // These *are* the droids we're looking for.\n if (typeof (value.message) === \"string\" && value.message.match(\"reverted\") && isHexString(value.data)) {\n return { message: value.message, data: value.data };\n }\n // Spelunk further...\n if (typeof (value) === \"object\") {\n for (const key in value) {\n const result = spelunkData(value[key]);\n if (result) {\n return result;\n }\n }\n return null;\n }\n // Might be a JSON string we can further descend...\n if (typeof (value) === \"string\") {\n try {\n return spelunkData(JSON.parse(value));\n }\n catch (error) { }\n }\n return null;\n}\nfunction _spelunkMessage(value, result) {\n if (value == null) {\n return;\n }\n // These *are* the droids we're looking for.\n if (typeof (value.message) === \"string\") {\n result.push(value.message);\n }\n // Spelunk further...\n if (typeof (value) === \"object\") {\n for (const key in value) {\n _spelunkMessage(value[key], result);\n }\n }\n // Might be a JSON string we can further descend...\n if (typeof (value) === \"string\") {\n try {\n return _spelunkMessage(JSON.parse(value), result);\n }\n catch (error) { }\n }\n}\nfunction spelunkMessage(value) {\n const result = [];\n _spelunkMessage(value, result);\n return result;\n}\n//# sourceMappingURL=provider-jsonrpc.js.map","import { defineProperties } from \"@ethersproject/properties\";\nimport { FetchRequest } from \"@ethersproject/web\";\nimport { showThrottleMessage } from \"./community.js\";\nimport { logger } from \"./logger.js\";\nimport { Network } from \"./network.js\";\nimport { StaticJsonRpcProvider } from \"./provider-jsonrpc.js\";\nconst defaultApiKey = \"9f7d929b018cdffb338517efa06f58359e86ff1ffd350bc889738523659e7972\";\nfunction getHost(name) {\n switch (name) {\n case \"homestead\":\n return \"rpc.ankr.com/eth\";\n case \"matic\":\n return \"rpc.ankr.com/polygon\";\n case \"arbitrum\":\n return \"rpc.ankr.com/arbitrum\";\n }\n return logger.throwArgumentError(\"unsupported network\", \"network\", name);\n}\nexport class AnkrProvider extends StaticJsonRpcProvider {\n constructor(_network = \"homestead\", apiKey) {\n const network = Network.from(_network);\n if (apiKey == null) {\n apiKey = defaultApiKey;\n }\n const connection = AnkrProvider.getConnection(network, apiKey);\n super(connection, network);\n defineProperties(this, { apiKey });\n // Ankr does not support filterId, so we force polling\n super._setOptions({ polling: true });\n }\n _getProvider(chainId) {\n try {\n return new AnkrProvider(chainId, this.apiKey);\n }\n catch (error) { }\n return super._getProvider(chainId);\n }\n static getConnection(network, apiKey) {\n if (apiKey == null) {\n apiKey = defaultApiKey;\n }\n const request = new FetchRequest(`https:/\\/${getHost(network.name)}/${apiKey}`);\n request.allowGzip = true;\n const throttleRetry = async (request, response, attempt) => {\n if (apiKey === defaultApiKey) {\n showThrottleMessage(\"AnkrProvider\");\n }\n return true;\n };\n return { request, throttleRetry };\n }\n isCommunityResource() {\n return (this.apiKey === defaultApiKey);\n }\n}\n//# sourceMappingURL=provider-ankr.js.map","import { defineProperties } from \"@ethersproject/properties\";\nimport { FetchRequest } from \"@ethersproject/web\";\nimport { showThrottleMessage } from \"./community.js\";\nimport { logger } from \"./logger.js\";\nimport { Network } from \"./network.js\";\nimport { StaticJsonRpcProvider } from \"./provider-jsonrpc.js\";\nconst defaultApiKey = \"_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC\";\nfunction getHost(name) {\n switch (name) {\n case \"homestead\":\n return \"eth-mainnet.alchemyapi.io\";\n case \"ropsten\":\n return \"eth-ropsten.alchemyapi.io\";\n case \"rinkeby\":\n return \"eth-rinkeby.alchemyapi.io\";\n case \"goerli\":\n return \"eth-goerli.alchemyapi.io\";\n case \"kovan\":\n return \"eth-kovan.alchemyapi.io\";\n case \"matic\":\n return \"polygon-mainnet.g.alchemy.com\";\n case \"maticmum\":\n return \"polygon-mumbai.g.alchemy.com\";\n case \"arbitrum\":\n return \"arb-mainnet.g.alchemy.com\";\n case \"arbitrum-rinkeby\":\n return \"arb-rinkeby.g.alchemy.com\";\n case \"optimism\":\n return \"opt-mainnet.g.alchemy.com\";\n case \"optimism-kovan\":\n return \"opt-kovan.g.alchemy.com\";\n }\n return logger.throwArgumentError(\"unsupported network\", \"network\", name);\n}\nexport class AlchemyProvider extends StaticJsonRpcProvider {\n constructor(_network = \"homestead\", apiKey) {\n const network = Network.from(_network);\n if (apiKey == null) {\n apiKey = defaultApiKey;\n }\n super(AlchemyProvider.getConnection(network, apiKey), network);\n defineProperties(this, { apiKey });\n }\n _getProvider(chainId) {\n try {\n return new AlchemyProvider(chainId, this.apiKey);\n }\n catch (error) { }\n return super._getProvider(chainId);\n }\n isCommunityResource() {\n return (this.apiKey === defaultApiKey);\n }\n static getConnection(network, apiKey) {\n if (apiKey == null) {\n apiKey = defaultApiKey;\n }\n const request = new FetchRequest(`https:/\\/${getHost(network.name)}/v2/${apiKey}`);\n request.allowGzip = true;\n const throttleRetry = async (request, response, attempt) => {\n if (apiKey === defaultApiKey) {\n showThrottleMessage(\"alchemy\");\n }\n return true;\n };\n return { request, throttleRetry };\n }\n}\n//# sourceMappingURL=provider-alchemy.js.map","import { logger } from \"./logger.js\";\nimport { Network } from \"./network.js\";\nimport { StaticJsonRpcProvider } from \"./provider-jsonrpc.js\";\nexport class CloudflareProvider extends StaticJsonRpcProvider {\n constructor(_network = \"homestead\") {\n const network = Network.from(_network);\n if (network.name !== \"homestead\") {\n return logger.throwArgumentError(\"unsupported network\", \"network\", _network);\n }\n super(\"https:/\\/cloudflare-eth.com/\", network);\n }\n}\n//# sourceMappingURL=provider-cloudflare.js.map","import { hexlify, isHexString, quantity } from \"@ethersproject/bytes\";\nimport { isError } from \"@ethersproject/logger\";\nimport { defineProperties } from \"@ethersproject/properties\";\nimport { toUtf8String } from \"@ethersproject/strings\";\nimport { fetchData, FetchRequest } from \"@ethersproject/web\";\nif (false) {\n console.log(isHexString, isError);\n} // @TODO\nimport { AbstractProvider } from \"./abstract-provider.js\";\nimport { Network } from \"./network.js\";\nimport { NetworkPlugin } from \"./plugins-network.js\";\nimport { logger } from \"./logger.js\";\nconst defaultApiKey = \"9D13ZE7XSBTJ94N9BNJ2MA33VMAY2YPIRB\";\nconst EtherscanPluginId = \"org.ethers.plugins.etherscan\";\nexport class EtherscanPlugin extends NetworkPlugin {\n constructor(baseUrl, communityApiKey) {\n super(EtherscanPluginId);\n //if (communityApiKey == null) { communityApiKey = null; }\n defineProperties(this, { baseUrl, communityApiKey });\n }\n clone() {\n return new EtherscanPlugin(this.baseUrl, this.communityApiKey);\n }\n}\nexport class EtherscanProvider extends AbstractProvider {\n constructor(_network, apiKey) {\n super();\n const network = Network.from(_network);\n if (apiKey == null) {\n const plugin = network.getPlugin(EtherscanPluginId);\n if (plugin) {\n apiKey = plugin.communityApiKey;\n }\n else {\n apiKey = defaultApiKey;\n }\n }\n defineProperties(this, { apiKey, network });\n // Test that the network is supported by Etherscan\n this.getBaseUrl();\n }\n getBaseUrl() {\n const plugin = this.network.getPlugin(EtherscanPluginId);\n if (plugin) {\n return plugin.baseUrl;\n }\n switch (this.network.name) {\n case \"homestead\":\n return \"https:/\\/api.etherscan.io\";\n case \"ropsten\":\n return \"https:/\\/api-ropsten.etherscan.io\";\n case \"rinkeby\":\n return \"https:/\\/api-rinkeby.etherscan.io\";\n case \"kovan\":\n return \"https:/\\/api-kovan.etherscan.io\";\n case \"goerli\":\n return \"https:/\\/api-goerli.etherscan.io\";\n default:\n }\n return logger.throwArgumentError(\"unsupported network\", \"network\", this.network);\n }\n getUrl(module, params) {\n const query = Object.keys(params).reduce((accum, key) => {\n const value = params[key];\n if (value != null) {\n accum += `&${key}=${value}`;\n }\n return accum;\n }, \"\");\n const apiKey = ((this.apiKey) ? `&apikey=${this.apiKey}` : \"\");\n return `${this.getBaseUrl()}/api?module=${module}${query}${apiKey}`;\n }\n getPostUrl() {\n return `${this.getBaseUrl()}/api`;\n }\n getPostData(module, params) {\n params.module = module;\n params.apikey = this.apiKey;\n return params;\n }\n async detectNetwork() {\n return this.network;\n }\n async fetch(module, params, post) {\n const url = (post ? this.getPostUrl() : this.getUrl(module, params));\n const payload = (post ? this.getPostData(module, params) : null);\n /*\n this.emit(\"debug\", {\n action: \"request\",\n request: url,\n provider: this\n });\n */\n const request = new FetchRequest(url);\n const connection = {\n request,\n throttleSlotInterval: 1000,\n processResponse: async (request, response) => {\n const result = response.hasBody() ? JSON.parse(toUtf8String(response.body)) : {};\n const throttle = ((typeof (result.result) === \"string\") ? result.result : \"\").toLowerCase().indexOf(\"rate limit\") >= 0;\n if (module === \"proxy\") {\n // This JSON response indicates we are being throttled\n if (result && result.status == 0 && result.message == \"NOTOK\" && throttle) {\n response.throwThrottleError(result.result);\n }\n }\n else {\n if (throttle) {\n response.throwThrottleError(result.result);\n }\n }\n return response;\n },\n };\n if (payload) {\n request.setHeader(\"content-type\", \"application/x-www-form-urlencoded; charset=UTF-8\");\n request.body = Object.keys(payload).map((k) => `${k}=${payload[k]}`).join(\"&\");\n }\n const response = await fetchData(connection);\n response.assertOk();\n if (!response.hasBody()) {\n throw new Error();\n }\n /*\n this.emit(\"debug\", {\n action: \"response\",\n request: url,\n response: deepCopy(result),\n provider: this\n });\n */\n const result = JSON.parse(toUtf8String(response.body));\n if (module === \"proxy\") {\n if (result.jsonrpc != \"2.0\") {\n // @TODO: not any\n const error = new Error(\"invalid response\");\n error.result = JSON.stringify(result);\n throw error;\n }\n if (result.error) {\n // @TODO: not any\n const error = new Error(result.error.message || \"unknown error\");\n if (result.error.code) {\n error.code = result.error.code;\n }\n if (result.error.data) {\n error.data = result.error.data;\n }\n throw error;\n }\n return result.result;\n }\n else {\n // getLogs, getHistory have weird success responses\n if (result.status == 0 && (result.message === \"No records found\" || result.message === \"No transactions found\")) {\n return result.result;\n }\n if (result.status != 1 || result.message != \"OK\") {\n const error = new Error(\"invalid response\");\n error.result = JSON.stringify(result);\n // if ((result.result || \"\").toLowerCase().indexOf(\"rate limit\") >= 0) {\n // error.throttleRetry = true;\n // }\n throw error;\n }\n return result.result;\n }\n }\n // The transaction has already been sanitized by the calls in Provider\n _getTransactionPostData(transaction) {\n const result = {};\n for (let key in transaction) {\n if (transaction[key] == null) {\n continue;\n }\n let value = transaction[key];\n if (key === \"type\" && value === 0) {\n continue;\n }\n // Quantity-types require no leading zero, unless 0\n if ({ type: true, gasLimit: true, gasPrice: true, maxFeePerGs: true, maxPriorityFeePerGas: true, nonce: true, value: true }[key]) {\n value = quantity(hexlify(value));\n }\n else if (key === \"accessList\") {\n value = \"[\" + this.network.formatter.accessList(value).map((set) => {\n return `{address:\"${set.address}\",storageKeys:[\"${set.storageKeys.join('\",\"')}\"]}`;\n }).join(\",\") + \"]\";\n }\n else {\n value = hexlify(value);\n }\n result[key] = value;\n }\n return result;\n }\n _checkError(req, error, transaction) {\n /*\n let body = \"\";\n if (isError(error, Logger.Errors.SERVER_ERROR) && error.response && error.response.hasBody()) {\n body = toUtf8String(error.response.body);\n }\n console.log(body);\n \n // Undo the \"convenience\" some nodes are attempting to prevent backwards\n // incompatibility; maybe for v6 consider forwarding reverts as errors\n if (method === \"call\" && body) {\n \n // Etherscan keeps changing their string\n if (body.match(/reverted/i) || body.match(/VM execution error/i)) {\n \n // Etherscan prefixes the data like \"Reverted 0x1234\"\n let data = e.data;\n if (data) { data = \"0x\" + data.replace(/^.*0x/i, \"\"); }\n if (!isHexString(data)) { data = \"0x\"; }\n \n logger.throwError(\"call exception\", Logger.Errors.CALL_EXCEPTION, {\n error, data\n });\n }\n }\n \n // Get the message from any nested error structure\n let message = error.message;\n if (isError(error, Logger.Errors.SERVER_ERROR)) {\n if (error.error && typeof(error.error.message) === \"string\") {\n message = error.error.message;\n } else if (typeof(error.body) === \"string\") {\n message = error.body;\n } else if (typeof(error.responseText) === \"string\") {\n message = error.responseText;\n }\n }\n message = (message || \"\").toLowerCase();\n \n // \"Insufficient funds. The account you tried to send transaction from\n // does not have enough funds. Required 21464000000000 and got: 0\"\n if (message.match(/insufficient funds/)) {\n logger.throwError(\"insufficient funds for intrinsic transaction cost\", Logger.Errors.INSUFFICIENT_FUNDS, {\n error, transaction, info: { method }\n });\n }\n \n // \"Transaction with the same hash was already imported.\"\n if (message.match(/same hash was already imported|transaction nonce is too low|nonce too low/)) {\n logger.throwError(\"nonce has already been used\", Logger.Errors.NONCE_EXPIRED, {\n error, transaction, info: { method }\n });\n }\n \n // \"Transaction gas price is too low. There is another transaction with\n // same nonce in the queue. Try increasing the gas price or incrementing the nonce.\"\n if (message.match(/another transaction with same nonce/)) {\n logger.throwError(\"replacement fee too low\", Logger.Errors.REPLACEMENT_UNDERPRICED, {\n error, transaction, info: { method }\n });\n }\n \n if (message.match(/execution failed due to an exception|execution reverted/)) {\n logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.Errors.UNPREDICTABLE_GAS_LIMIT, {\n error, transaction, info: { method }\n });\n }\n */\n throw error;\n }\n async _detectNetwork() {\n return this.network;\n }\n async _perform(req) {\n switch (req.method) {\n case \"chainId\":\n return this.network.chainId;\n case \"getBlockNumber\":\n return this.fetch(\"proxy\", { action: \"eth_blockNumber\" });\n case \"getGasPrice\":\n return this.fetch(\"proxy\", { action: \"eth_gasPrice\" });\n case \"getBalance\":\n // Returns base-10 result\n return this.fetch(\"account\", {\n action: \"balance\",\n address: req.address,\n tag: req.blockTag\n });\n case \"getTransactionCount\":\n return this.fetch(\"proxy\", {\n action: \"eth_getTransactionCount\",\n address: req.address,\n tag: req.blockTag\n });\n case \"getCode\":\n return this.fetch(\"proxy\", {\n action: \"eth_getCode\",\n address: req.address,\n tag: req.blockTag\n });\n case \"getStorageAt\":\n return this.fetch(\"proxy\", {\n action: \"eth_getStorageAt\",\n address: req.address,\n position: req.position,\n tag: req.blockTag\n });\n case \"sendTransaction\":\n return this.fetch(\"proxy\", {\n action: \"eth_sendRawTransaction\",\n hex: req.signedTransaction\n }, true).catch((error) => {\n return this._checkError(req, error, req.signedTransaction);\n });\n case \"getBlock\":\n if (\"blockTag\" in req) {\n return this.fetch(\"proxy\", {\n action: \"eth_getBlockByNumber\",\n tag: req.blockTag,\n boolean: (req.includeTransactions ? \"true\" : \"false\")\n });\n }\n return logger.throwError(\"getBlock by blockHash not supported by Etherscan\", \"UNSUPPORTED_OPERATION\", {\n operation: \"getBlock(blockHash)\"\n });\n case \"getTransaction\":\n return this.fetch(\"proxy\", {\n action: \"eth_getTransactionByHash\",\n txhash: req.hash\n });\n case \"getTransactionReceipt\":\n return this.fetch(\"proxy\", {\n action: \"eth_getTransactionReceipt\",\n txhash: req.hash\n });\n case \"call\": {\n if (req.blockTag !== \"latest\") {\n throw new Error(\"EtherscanProvider does not support blockTag for call\");\n }\n const postData = this._getTransactionPostData(req.transaction);\n postData.module = \"proxy\";\n postData.action = \"eth_call\";\n try {\n return await this.fetch(\"proxy\", postData, true);\n }\n catch (error) {\n return this._checkError(req, error, req.transaction);\n }\n }\n case \"estimateGas\": {\n const postData = this._getTransactionPostData(req.transaction);\n postData.module = \"proxy\";\n postData.action = \"eth_estimateGas\";\n try {\n return await this.fetch(\"proxy\", postData, true);\n }\n catch (error) {\n return this._checkError(req, error, req.transaction);\n }\n }\n /*\n case \"getLogs\": {\n // Needs to complain if more than one address is passed in\n const args: Record<string, any> = { action: \"getLogs\" }\n \n if (params.filter.fromBlock) {\n args.fromBlock = checkLogTag(params.filter.fromBlock);\n }\n \n if (params.filter.toBlock) {\n args.toBlock = checkLogTag(params.filter.toBlock);\n }\n \n if (params.filter.address) {\n args.address = params.filter.address;\n }\n \n // @TODO: We can handle slightly more complicated logs using the logs API\n if (params.filter.topics && params.filter.topics.length > 0) {\n if (params.filter.topics.length > 1) {\n logger.throwError(\"unsupported topic count\", Logger.Errors.UNSUPPORTED_OPERATION, { topics: params.filter.topics });\n }\n if (params.filter.topics.length === 1) {\n const topic0 = params.filter.topics[0];\n if (typeof(topic0) !== \"string\" || topic0.length !== 66) {\n logger.throwError(\"unsupported topic format\", Logger.Errors.UNSUPPORTED_OPERATION, { topic0: topic0 });\n }\n args.topic0 = topic0;\n }\n }\n \n const logs: Array<any> = await this.fetch(\"logs\", args);\n \n // Cache txHash => blockHash\n let blocks: { [tag: string]: string } = {};\n \n // Add any missing blockHash to the logs\n for (let i = 0; i < logs.length; i++) {\n const log = logs[i];\n if (log.blockHash != null) { continue; }\n if (blocks[log.blockNumber] == null) {\n const block = await this.getBlock(log.blockNumber);\n if (block) {\n blocks[log.blockNumber] = block.hash;\n }\n }\n \n log.blockHash = blocks[log.blockNumber];\n }\n \n return logs;\n }\n */\n default:\n break;\n }\n return super._perform(req);\n }\n async getNetwork() {\n return this.network;\n }\n async getEtherPrice() {\n if (this.network.name !== \"homestead\") {\n return 0.0;\n }\n return parseFloat((await this.fetch(\"stats\", { action: \"ethprice\" })).ethusd);\n }\n isCommunityResource() {\n const plugin = this.network.getPlugin(EtherscanPluginId);\n if (plugin) {\n return (plugin.communityApiKey === this.apiKey);\n }\n return (defaultApiKey === this.apiKey);\n }\n}\n/*\n(async function() {\n const provider = new EtherscanProvider();\n console.log(provider);\n console.log(await provider.getBlockNumber());\n / *\n provider.on(\"block\", (b) => {\n console.log(\"BB\", b);\n });\n console.log(await provider.getTransactionReceipt(\"0xa5ded92f548e9f362192f9ab7e5b3fbc9b5a919a868e29247f177d49ce38de6e\"));\n\n provider.once(\"0xa5ded92f548e9f362192f9ab7e5b3fbc9b5a919a868e29247f177d49ce38de6e\", (tx) => {\n console.log(\"TT\", tx);\n });\n * /\n try {\n console.log(await provider.getBlock(100));\n } catch (error) {\n console.log(error);\n }\n\n try {\n console.log(await provider.getBlock(13821768));\n } catch (error) {\n console.log(error);\n }\n\n})();\n*/\n//# sourceMappingURL=provider-etherscan.js.map","import { defineProperties } from \"@ethersproject/properties\";\nimport { FetchRequest } from \"@ethersproject/web\";\nimport { showThrottleMessage } from \"./community.js\";\nimport { logger } from \"./logger.js\";\nimport { Network } from \"./network.js\";\nimport { StaticJsonRpcProvider } from \"./provider-jsonrpc.js\";\nconst defaultProjectId = \"84842078b09946638c03157f83405213\";\nfunction getHost(name) {\n switch (name) {\n case \"homestead\":\n return \"mainnet.infura.io\";\n case \"ropsten\":\n return \"ropsten.infura.io\";\n case \"rinkeby\":\n return \"rinkeby.infura.io\";\n case \"kovan\":\n return \"kovan.infura.io\";\n case \"goerli\":\n return \"goerli.infura.io\";\n case \"matic\":\n return \"polygon-mainnet.infura.io\";\n case \"maticmum\":\n return \"polygon-mumbai.infura.io\";\n case \"optimism\":\n return \"optimism-mainnet.infura.io\";\n case \"optimism-kovan\":\n return \"optimism-kovan.infura.io\";\n case \"arbitrum\":\n return \"arbitrum-mainnet.infura.io\";\n case \"arbitrum-rinkeby\":\n return \"arbitrum-rinkeby.infura.io\";\n }\n return logger.throwArgumentError(\"unsupported network\", \"network\", name);\n}\nexport class InfuraProvider extends StaticJsonRpcProvider {\n constructor(_network = \"homestead\", projectId, projectSecret) {\n const network = Network.from(_network);\n if (projectId == null) {\n projectId = defaultProjectId;\n }\n if (projectSecret == null) {\n projectSecret = null;\n }\n const connection = InfuraProvider.getConnection(network, projectId, projectSecret);\n super(connection, network);\n defineProperties(this, { projectId, projectSecret });\n }\n _getProvider(chainId) {\n try {\n return new InfuraProvider(chainId, this.projectId, this.projectSecret);\n }\n catch (error) { }\n return super._getProvider(chainId);\n }\n static getConnection(network, projectId, projectSecret) {\n if (projectId == null) {\n projectId = defaultProjectId;\n }\n if (projectSecret == null) {\n projectSecret = null;\n }\n const request = new FetchRequest(`https:/\\/${getHost(network.name)}/v3/${projectId}`);\n request.allowGzip = true;\n if (projectSecret) {\n request.setCredentials(\"\", projectSecret);\n }\n const throttleRetry = async (request, response, attempt) => {\n if (projectId === defaultProjectId) {\n showThrottleMessage(\"InfuraProvider\");\n }\n return true;\n };\n return { request, throttleRetry };\n }\n isCommunityResource() {\n return (this.projectId === defaultProjectId);\n }\n}\n//# sourceMappingURL=provider-infura.js.map","import { defineProperties } from \"@ethersproject/properties\";\nimport { FetchRequest } from \"@ethersproject/web\";\nimport { showThrottleMessage } from \"./community.js\";\nimport { logger } from \"./logger.js\";\nimport { Network } from \"./network.js\";\nimport { StaticJsonRpcProvider } from \"./provider-jsonrpc.js\";\n// These are load-balancer-based application IDs\nconst defaultAppIds = {\n homestead: \"6004bcd10040261633ade990\",\n ropsten: \"6004bd4d0040261633ade991\",\n rinkeby: \"6004bda20040261633ade994\",\n goerli: \"6004bd860040261633ade992\",\n};\nfunction getHost(name) {\n switch (name) {\n case \"homestead\":\n return \"eth-mainnet.gateway.pokt.network\";\n case \"ropsten\":\n return \"eth-ropsten.gateway.pokt.network\";\n case \"rinkeby\":\n return \"eth-rinkeby.gateway.pokt.network\";\n case \"goerli\":\n return \"eth-goerli.gateway.pokt.network\";\n }\n return logger.throwArgumentError(\"unsupported network\", \"network\", name);\n}\nfunction normalizeApiKey(network, _appId, applicationSecretKey, loadBalancer) {\n loadBalancer = !!loadBalancer;\n let community = false;\n let applicationId = _appId;\n if (applicationId == null) {\n applicationId = defaultAppIds[network.name];\n if (applicationId == null) {\n logger.throwArgumentError(\"network does not support default applicationId\", \"applicationId\", _appId);\n }\n loadBalancer = true;\n community = true;\n }\n else if (applicationId === defaultAppIds[network.name]) {\n loadBalancer = true;\n community = true;\n }\n if (applicationSecretKey == null) {\n applicationSecretKey = null;\n }\n return { applicationId, applicationSecretKey, community, loadBalancer };\n}\nexport class PocketProvider extends StaticJsonRpcProvider {\n constructor(_network = \"homestead\", _appId, _secretKey, _loadBalancer) {\n const network = Network.from(_network);\n const { applicationId, applicationSecretKey, loadBalancer } = normalizeApiKey(network, _appId, _secretKey, _loadBalancer);\n const connection = PocketProvider.getConnection(network, applicationId, applicationSecretKey, loadBalancer);\n super(connection, network);\n defineProperties(this, { applicationId, applicationSecretKey, loadBalancer });\n }\n static getConnection(network, _appId, _secretKey, _loadBalancer) {\n const { applicationId, applicationSecretKey, community, loadBalancer } = normalizeApiKey(network, _appId, _secretKey, _loadBalancer);\n let url = `https:/\\/${getHost(network.name)}/v1/`;\n if (loadBalancer) {\n url += \"lb/\";\n }\n url += applicationId;\n const request = new FetchRequest(url);\n request.allowGzip = true;\n if (applicationSecretKey) {\n request.setCredentials(\"\", applicationSecretKey);\n }\n const throttleRetry = async (request, response, attempt) => {\n if (community) {\n showThrottleMessage(\"PocketProvider\");\n }\n return true;\n };\n return { request, throttleRetry };\n }\n isCommunityResource() {\n return (this.applicationId === defaultAppIds[this.network.name]);\n }\n}\n//# sourceMappingURL=provider-pocket.js.map","export function shuffle(array) {\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n const tmp = array[i];\n array[i] = array[j];\n array[j] = tmp;\n }\n}\n//# sourceMappingURL=shuffle.js.map","var __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 _FallbackProvider_instances, _FallbackProvider_configs, _FallbackProvider_height, _FallbackProvider_initialSyncPromise, _FallbackProvider_getNextConfig, _FallbackProvider_addRunner, _FallbackProvider_initialSync, _FallbackProvider_checkQuorum, _FallbackProvider_waitForQuorum;\nimport { hexlify } from \"@ethersproject/bytes\";\nimport { AbstractProvider } from \"./abstract-provider.js\";\nimport { logger } from \"./logger.js\";\nimport { Network } from \"./network.js\";\nimport { shuffle } from \"./shuffle.js\";\n//const BN_0 = BigInt(\"0\");\nconst BN_1 = BigInt(\"1\");\nconst BN_2 = BigInt(\"2\");\nfunction stall(duration) {\n return new Promise((resolve) => { setTimeout(resolve, duration); });\n}\nfunction getTime() { return (new Date()).getTime(); }\n;\nconst defaultConfig = { stallTimeout: 400, priority: 1, weight: 1 };\nconst defaultState = {\n blockNumber: -2, requests: 0, lateResponses: 0, errorResponses: 0,\n outOfSync: -1, unsupportedEvents: 0, rollingDuration: 0, score: 0,\n _network: null, _updateNumber: null, _totalTime: 0\n};\nasync function waitForSync(config, blockNumber) {\n while (config.blockNumber < 0 || config.blockNumber < blockNumber) {\n if (!config._updateNumber) {\n config._updateNumber = (async () => {\n const blockNumber = await config.provider.getBlockNumber();\n if (blockNumber > config.blockNumber) {\n config.blockNumber = blockNumber;\n }\n config._updateNumber = null;\n })();\n }\n await config._updateNumber;\n config.outOfSync++;\n }\n}\n// Normalizes a result to a string that can be used to compare against\n// other results using normal string equality\nfunction normalize(network, value, req) {\n switch (req.method) {\n case \"chainId\":\n return logger.getBigInt(value).toString();\n case \"getBlockNumber\":\n return logger.getNumber(value).toString();\n case \"getGasPrice\":\n return logger.getBigInt(value).toString();\n case \"getBalance\":\n return logger.getBigInt(value).toString();\n case \"getTransactionCount\":\n return logger.getNumber(value).toString();\n case \"getCode\":\n return hexlify(value);\n case \"getStorageAt\":\n return hexlify(value);\n case \"getBlock\":\n if (req.includeTransactions) {\n return JSON.stringify(network.formatter.blockWithTransactions(value));\n }\n return JSON.stringify(network.formatter.block(value));\n case \"getTransaction\":\n return JSON.stringify(network.formatter.transactionResponse(value));\n case \"getTransactionReceipt\":\n return JSON.stringify(network.formatter.receipt(value));\n case \"call\":\n return hexlify(value);\n case \"estimateGas\":\n return logger.getBigInt(value).toString();\n case \"getLogs\":\n return JSON.stringify(value.map((v) => network.formatter.log(v)));\n }\n return logger.throwError(\"unsupported method\", \"UNSUPPORTED_OPERATION\", {\n operation: `_perform(${JSON.stringify(req.method)})`\n });\n}\n// This strategy picks the highest wieght result, as long as the weight is\n// equal to or greater than quorum\nfunction checkQuorum(quorum, results) {\n const tally = new Map();\n for (const { result, normal, weight } of results) {\n const t = tally.get(normal) || { result, weight: 0 };\n t.weight += weight;\n tally.set(normal, t);\n }\n let bestWeight = 0;\n let bestResult = undefined;\n for (const { weight, result } of tally.values()) {\n if (weight >= quorum && weight > bestWeight) {\n bestWeight = weight;\n bestResult = result;\n }\n }\n return bestResult;\n}\n/*\nfunction getMean(results: Array<TallyResult>): bigint {\n const total = results.reduce((a, r) => (a + BigInt(r.result)), BN_0);\n return total / BigInt(results.length);\n}\n*/\nfunction getMedian(results) {\n // Get the sorted values\n const values = results.map((r) => BigInt(r.result));\n values.sort((a, b) => ((a < b) ? -1 : (b > a) ? 1 : 0));\n const mid = values.length / 2;\n // Odd-length; take the middle value\n if (values.length % 2) {\n return values[mid];\n }\n // Even length; take the ceiling of the mean of the center two values\n return (values[mid - 1] + values[mid] + BN_1) / BN_2;\n}\nfunction getFuzzyMode(quorum, results) {\n if (quorum === 1) {\n return logger.getNumber(getMedian(results), \"%internal\");\n }\n const tally = new Map();\n const add = (result, weight) => {\n const t = tally.get(result) || { result, weight: 0 };\n t.weight += weight;\n tally.set(result, t);\n };\n for (const { weight, result } of results) {\n const r = logger.getNumber(result);\n add(r - 1, weight);\n add(r, weight);\n add(r + 1, weight);\n }\n let bestWeight = 0;\n let bestResult = undefined;\n for (const { weight, result } of tally.values()) {\n // Use this result, if this result meets quorum and has either:\n // - a better weight\n // - or equal weight, but the result is larger\n if (weight >= quorum && (weight > bestWeight || (bestResult != null && weight === bestWeight && result > bestResult))) {\n bestWeight = weight;\n bestResult = result;\n }\n }\n return bestResult;\n}\nexport class FallbackProvider extends AbstractProvider {\n constructor(providers, network) {\n super(network);\n _FallbackProvider_instances.add(this);\n _FallbackProvider_configs.set(this, void 0);\n _FallbackProvider_height.set(this, void 0);\n _FallbackProvider_initialSyncPromise.set(this, void 0);\n __classPrivateFieldSet(this, _FallbackProvider_configs, providers.map((p) => {\n if (p instanceof AbstractProvider) {\n return Object.assign({ provider: p }, defaultConfig, defaultState);\n }\n else {\n return Object.assign({}, defaultConfig, p, defaultState);\n }\n }), \"f\");\n __classPrivateFieldSet(this, _FallbackProvider_height, -2, \"f\");\n __classPrivateFieldSet(this, _FallbackProvider_initialSyncPromise, null, \"f\");\n this.quorum = 2; //Math.ceil(providers.length / 2);\n this.eventQuorum = 1;\n this.eventWorkers = 1;\n if (this.quorum > __classPrivateFieldGet(this, _FallbackProvider_configs, \"f\").reduce((a, c) => (a + c.weight), 0)) {\n logger.throwArgumentError(\"quorum exceed provider wieght\", \"quorum\", this.quorum);\n }\n }\n // @TOOD: Copy these and only return public values\n get providerConfigs() {\n return __classPrivateFieldGet(this, _FallbackProvider_configs, \"f\").slice();\n }\n async _detectNetwork() {\n return Network.from(logger.getBigInt(await this._perform({ method: \"chainId\" }))).freeze();\n }\n async _perform(req) {\n await __classPrivateFieldGet(this, _FallbackProvider_instances, \"m\", _FallbackProvider_initialSync).call(this);\n // Bootstrap enough to meet quorum\n const running = new Set();\n for (let i = 0; i < this.quorum; i++) {\n __classPrivateFieldGet(this, _FallbackProvider_instances, \"m\", _FallbackProvider_addRunner).call(this, running, req);\n }\n const result = __classPrivateFieldGet(this, _FallbackProvider_instances, \"m\", _FallbackProvider_waitForQuorum).call(this, running, req);\n for (const runner of running) {\n runner.done = true;\n }\n return result;\n }\n}\n_FallbackProvider_configs = new WeakMap(), _FallbackProvider_height = new WeakMap(), _FallbackProvider_initialSyncPromise = new WeakMap(), _FallbackProvider_instances = new WeakSet(), _FallbackProvider_getNextConfig = function _FallbackProvider_getNextConfig(configs) {\n // Shuffle the states, sorted by priority\n const allConfigs = __classPrivateFieldGet(this, _FallbackProvider_configs, \"f\").slice();\n shuffle(allConfigs);\n allConfigs.sort((a, b) => (b.priority - a.priority));\n for (const config of allConfigs) {\n if (configs.indexOf(config) === -1) {\n return config;\n }\n }\n return null;\n}, _FallbackProvider_addRunner = function _FallbackProvider_addRunner(running, req) {\n const config = __classPrivateFieldGet(this, _FallbackProvider_instances, \"m\", _FallbackProvider_getNextConfig).call(this, Array.from(running).map((r) => r.config));\n if (config == null) {\n return null;\n }\n const result = {};\n const runner = {\n config, result, didBump: false, done: false,\n perform: null, staller: null\n };\n const now = getTime();\n runner.perform = (async () => {\n try {\n config.requests++;\n result.result = await config.provider._perform(req);\n }\n catch (error) {\n config.errorResponses++;\n result.error = error;\n }\n if (runner.done) {\n config.lateResponses++;\n }\n const dt = (getTime() - now);\n config._totalTime += dt;\n config.rollingDuration = 0.95 * config.rollingDuration + 0.05 * dt;\n runner.perform = null;\n })();\n runner.staller = (async () => {\n await stall(config.stallTimeout);\n runner.staller = null;\n })();\n running.add(runner);\n return runner;\n}, _FallbackProvider_initialSync = \n// Initializes the blockNumber and network for each runner and\n// blocks until initialized\nasync function _FallbackProvider_initialSync() {\n let initialSync = __classPrivateFieldGet(this, _FallbackProvider_initialSyncPromise, \"f\");\n if (!initialSync) {\n const promises = [];\n __classPrivateFieldGet(this, _FallbackProvider_configs, \"f\").forEach((config) => {\n promises.push(waitForSync(config, 0));\n promises.push((async () => {\n config._network = await config.provider.getNetwork();\n })());\n });\n __classPrivateFieldSet(this, _FallbackProvider_initialSyncPromise, initialSync = (async () => {\n // Wait for all providers to have a block number and network\n await Promise.all(promises);\n // Check all the networks match\n let chainId = null;\n for (const config of __classPrivateFieldGet(this, _FallbackProvider_configs, \"f\")) {\n const network = (config._network);\n if (chainId == null) {\n chainId = network.chainId;\n }\n else if (network.chainId !== chainId) {\n logger.throwError(\"cannot mix providers on different networks\", \"UNSUPPORTED_OPERATION\", {\n operation: \"new FallbackProvider\"\n });\n }\n }\n })(), \"f\");\n }\n await initialSync;\n}, _FallbackProvider_checkQuorum = async function _FallbackProvider_checkQuorum(running, req) {\n // Get all the result objects\n const results = [];\n for (const runner of running) {\n if (\"result\" in runner.result) {\n const result = runner.result.result;\n results.push({\n result,\n normal: normalize((runner.config._network), result, req),\n weight: runner.config.weight\n });\n }\n }\n // Are there enough results to event meet quorum?\n if (results.reduce((a, r) => (a + r.weight), 0) < this.quorum) {\n return undefined;\n }\n switch (req.method) {\n case \"getBlockNumber\": {\n // We need to get the bootstrap block height\n if (__classPrivateFieldGet(this, _FallbackProvider_height, \"f\") === -2) {\n const height = Math.ceil(logger.getNumber(getMedian(__classPrivateFieldGet(this, _FallbackProvider_configs, \"f\").map((c) => ({\n result: c.blockNumber,\n normal: logger.getNumber(c.blockNumber).toString(),\n weight: c.weight\n }))), \"%internal\"));\n __classPrivateFieldSet(this, _FallbackProvider_height, height, \"f\");\n }\n const mode = getFuzzyMode(this.quorum, results);\n if (mode === undefined) {\n return undefined;\n }\n if (mode > __classPrivateFieldGet(this, _FallbackProvider_height, \"f\")) {\n __classPrivateFieldSet(this, _FallbackProvider_height, mode, \"f\");\n }\n return __classPrivateFieldGet(this, _FallbackProvider_height, \"f\");\n }\n case \"getGasPrice\":\n case \"estimateGas\":\n return getMedian(results);\n case \"getBlock\":\n // Pending blocks are mempool dependant and already\n // quite untrustworthy\n if (\"blockTag\" in req && req.blockTag === \"pending\") {\n return results[0].result;\n }\n return checkQuorum(this.quorum, results);\n case \"chainId\":\n case \"getBalance\":\n case \"getTransactionCount\":\n case \"getCode\":\n case \"getStorageAt\":\n case \"getTransaction\":\n case \"getTransactionReceipt\":\n case \"getLogs\":\n return checkQuorum(this.quorum, results);\n case \"call\":\n // @TODO: Check errors\n return checkQuorum(this.quorum, results);\n case \"sendTransaction\":\n throw new Error(\"TODO\");\n }\n return logger.throwError(\"unsupported method\", \"UNSUPPORTED_OPERATION\", {\n operation: `_perform(${JSON.stringify(req.method)})`\n });\n}, _FallbackProvider_waitForQuorum = async function _FallbackProvider_waitForQuorum(running, req) {\n if (running.size === 0) {\n throw new Error(\"no runners?!\");\n }\n // Any promises that are interesting to watch for; an expired stall\n // or a successful perform\n const interesting = [];\n //const results: Array<any> = [ ];\n //const errors: Array<Error> = [ ];\n let newRunners = 0;\n for (const runner of running) {\n // @TODO: use runner.perfom != null\n /*\n if (\"result\" in runner.result) {\n results.push(runner.result.result);\n } else if (\"error\" in runner.result) {\n errors.push(runner.result.error);\n }\n*/\n // No responses, yet; keep an eye on it\n if (runner.perform) {\n interesting.push(runner.perform);\n }\n // Still stalling...\n if (runner.staller) {\n interesting.push(runner.staller);\n continue;\n }\n // This runner has already triggered another runner\n if (runner.didBump) {\n continue;\n }\n // Got a response (result or error) or stalled; kick off another runner\n runner.didBump = true;\n newRunners++;\n }\n // Check for quorum\n /*\n console.log({ results, errors } );\n if (results.length >= this.quorum) {\n return results[0];\n }\n\n if (errors.length >= this.quorum) {\n return errors[0];\n }\n */\n const value = await __classPrivateFieldGet(this, _FallbackProvider_instances, \"m\", _FallbackProvider_checkQuorum).call(this, running, req);\n if (value !== undefined) {\n if (value instanceof Error) {\n throw value;\n }\n return value;\n }\n // Add any new runners, because a staller timed out or a result\n // or error response came in.\n for (let i = 0; i < newRunners; i++) {\n __classPrivateFieldGet(this, _FallbackProvider_instances, \"m\", _FallbackProvider_addRunner).call(this, running, req);\n }\n if (interesting.length === 0) {\n throw new Error(\"quorum not met\");\n // return logger.throwError(\"failed to meet quorum\", \"\", {\n // });\n }\n // Wait for someone to either complete its perform or trigger a stall\n await Promise.race(interesting);\n return await __classPrivateFieldGet(this, _FallbackProvider_instances, \"m\", _FallbackProvider_waitForQuorum).call(this, running, req);\n};\n//# sourceMappingURL=provider-fallback.js.map","function getGlobal() {\n if (typeof self !== 'undefined') {\n return self;\n }\n if (typeof window !== 'undefined') {\n return window;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n throw new Error('unable to locate global object');\n}\n;\nconst _WebSocket = getGlobal().WebSocket;\nexport { _WebSocket as WebSocket };\n//# sourceMappingURL=ws-browser.js.map","/**\n * SocketProvider\n *\n * Generic long-lived socket provider.\n *\n * Sub-classing notes\n * - a sub-class MUST call the `_start()` method once connected\n * - a sub-class MUST override the `_write(string)` method\n * - a sub-class MUST call `_processMessage(string)` for each message\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 _SocketSubscriber_provider, _SocketSubscriber_filter, _SocketSubscriber_filterId, _SocketSubscriber_paused, _SocketSubscriber_emitPromise, _SocketEventSubscriber_logFilter, _SocketEventSubscriber_formatter, _SocketProvider_callbacks, _SocketProvider_ready, _SocketProvider_subs, _SocketProvider_pending;\nimport { UnmanagedSubscriber } from \"./abstract-provider.js\";\nimport { logger } from \"./logger.js\";\nimport { JsonRpcApiProvider } from \"./provider-jsonrpc.js\";\nexport class SocketSubscriber {\n constructor(provider, filter) {\n _SocketSubscriber_provider.set(this, void 0);\n _SocketSubscriber_filter.set(this, void 0);\n _SocketSubscriber_filterId.set(this, void 0);\n _SocketSubscriber_paused.set(this, void 0);\n _SocketSubscriber_emitPromise.set(this, void 0);\n __classPrivateFieldSet(this, _SocketSubscriber_provider, provider, \"f\");\n __classPrivateFieldSet(this, _SocketSubscriber_filter, JSON.stringify(filter), \"f\");\n __classPrivateFieldSet(this, _SocketSubscriber_filterId, null, \"f\");\n __classPrivateFieldSet(this, _SocketSubscriber_paused, null, \"f\");\n __classPrivateFieldSet(this, _SocketSubscriber_emitPromise, null, \"f\");\n }\n get filter() { return JSON.parse(__classPrivateFieldGet(this, _SocketSubscriber_filter, \"f\")); }\n start() {\n __classPrivateFieldSet(this, _SocketSubscriber_filterId, __classPrivateFieldGet(this, _SocketSubscriber_provider, \"f\").send(\"eth_subscribe\", this.filter).then((filterId) => {\n ;\n __classPrivateFieldGet(this, _SocketSubscriber_provider, \"f\")._register(filterId, this);\n return filterId;\n }), \"f\");\n }\n stop() {\n (__classPrivateFieldGet(this, _SocketSubscriber_filterId, \"f\")).then((filterId) => {\n __classPrivateFieldGet(this, _SocketSubscriber_provider, \"f\").send(\"eth_unsubscribe\", [filterId]);\n });\n __classPrivateFieldSet(this, _SocketSubscriber_filterId, null, \"f\");\n }\n // @TODO: pause should trap the current blockNumber, unsub, and on resume use getLogs\n // and resume\n pause(dropWhilePaused) {\n if (!dropWhilePaused) {\n logger.throwError(\"preserve logs while paused not supported by SocketSubscriber yet\", \"UNSUPPORTED_OPERATION\", {\n operation: \"pause(false)\"\n });\n }\n __classPrivateFieldSet(this, _SocketSubscriber_paused, !!dropWhilePaused, \"f\");\n }\n resume() {\n __classPrivateFieldSet(this, _SocketSubscriber_paused, null, \"f\");\n }\n _handleMessage(message) {\n if (__classPrivateFieldGet(this, _SocketSubscriber_filterId, \"f\") == null) {\n return;\n }\n if (__classPrivateFieldGet(this, _SocketSubscriber_paused, \"f\") === null) {\n let emitPromise = __classPrivateFieldGet(this, _SocketSubscriber_emitPromise, \"f\");\n if (emitPromise == null) {\n emitPromise = this._emit(__classPrivateFieldGet(this, _SocketSubscriber_provider, \"f\"), message);\n }\n else {\n emitPromise = emitPromise.then(async () => {\n await this._emit(__classPrivateFieldGet(this, _SocketSubscriber_provider, \"f\"), message);\n });\n }\n __classPrivateFieldSet(this, _SocketSubscriber_emitPromise, emitPromise.then(() => {\n if (__classPrivateFieldGet(this, _SocketSubscriber_emitPromise, \"f\") === emitPromise) {\n __classPrivateFieldSet(this, _SocketSubscriber_emitPromise, null, \"f\");\n }\n }), \"f\");\n }\n }\n async _emit(provider, message) {\n throw new Error(\"sub-classes must implemente this; _emit\");\n }\n}\n_SocketSubscriber_provider = new WeakMap(), _SocketSubscriber_filter = new WeakMap(), _SocketSubscriber_filterId = new WeakMap(), _SocketSubscriber_paused = new WeakMap(), _SocketSubscriber_emitPromise = new WeakMap();\nexport class SocketBlockSubscriber extends SocketSubscriber {\n constructor(provider) {\n super(provider, [\"newHeads\"]);\n }\n async _emit(provider, message) {\n provider.emit(\"block\", parseInt(message.number));\n }\n}\nexport class SocketPendingSubscriber extends SocketSubscriber {\n constructor(provider) {\n super(provider, [\"newPendingTransactions\"]);\n }\n async _emit(provider, message) {\n provider.emit(\"pending\", message);\n }\n}\nexport class SocketEventSubscriber extends SocketSubscriber {\n constructor(provider, filter) {\n super(provider, [\"logs\", filter]);\n _SocketEventSubscriber_logFilter.set(this, void 0);\n _SocketEventSubscriber_formatter.set(this, void 0);\n __classPrivateFieldSet(this, _SocketEventSubscriber_logFilter, JSON.stringify(filter), \"f\");\n __classPrivateFieldSet(this, _SocketEventSubscriber_formatter, provider.getNetwork().then((network) => network.formatter), \"f\");\n }\n get logFilter() { return JSON.parse(__classPrivateFieldGet(this, _SocketEventSubscriber_logFilter, \"f\")); }\n async _emit(provider, message) {\n const formatter = await __classPrivateFieldGet(this, _SocketEventSubscriber_formatter, \"f\");\n provider.emit(__classPrivateFieldGet(this, _SocketEventSubscriber_logFilter, \"f\"), formatter.log(message, provider));\n }\n}\n_SocketEventSubscriber_logFilter = new WeakMap(), _SocketEventSubscriber_formatter = new WeakMap();\nexport class SocketProvider extends JsonRpcApiProvider {\n constructor(network) {\n super(network);\n _SocketProvider_callbacks.set(this, void 0);\n _SocketProvider_ready.set(this, void 0);\n // Maps each filterId to its subscriber\n _SocketProvider_subs.set(this, void 0);\n // If any events come in before a subscriber has finished\n // registering, queue them\n _SocketProvider_pending.set(this, void 0);\n __classPrivateFieldSet(this, _SocketProvider_callbacks, new Map(), \"f\");\n __classPrivateFieldSet(this, _SocketProvider_ready, false, \"f\");\n __classPrivateFieldSet(this, _SocketProvider_subs, new Map(), \"f\");\n __classPrivateFieldSet(this, _SocketProvider_pending, new Map(), \"f\");\n }\n _getSubscriber(sub) {\n switch (sub.type) {\n case \"close\":\n return new UnmanagedSubscriber(\"close\");\n case \"block\":\n return new SocketBlockSubscriber(this);\n case \"pending\":\n return new SocketPendingSubscriber(this);\n case \"event\":\n return new SocketEventSubscriber(this, sub.filter);\n case \"orphan\":\n // Handled auto-matically within AbstractProvider\n // when the log.removed = true\n if (sub.filter.orphan === \"drop-log\") {\n return new UnmanagedSubscriber(\"drop-log\");\n }\n }\n return super._getSubscriber(sub);\n }\n _register(filterId, subscriber) {\n __classPrivateFieldGet(this, _SocketProvider_subs, \"f\").set(filterId, subscriber);\n const pending = __classPrivateFieldGet(this, _SocketProvider_pending, \"f\").get(filterId);\n if (pending) {\n for (const message of pending) {\n subscriber._handleMessage(message);\n }\n __classPrivateFieldGet(this, _SocketProvider_pending, \"f\").delete(filterId);\n }\n }\n async send(method, params) {\n const payload = this.prepareRequest(method, params);\n const promise = new Promise((resolve, reject) => {\n __classPrivateFieldGet(this, _SocketProvider_callbacks, \"f\").set(payload.id, { payload, resolve, reject });\n });\n if (__classPrivateFieldGet(this, _SocketProvider_ready, \"f\")) {\n await this._write(JSON.stringify(payload));\n }\n return await promise;\n }\n // Sub-classes must call this once they are connected\n async _start() {\n if (__classPrivateFieldGet(this, _SocketProvider_ready, \"f\")) {\n return;\n }\n __classPrivateFieldSet(this, _SocketProvider_ready, true, \"f\");\n for (const { payload } of __classPrivateFieldGet(this, _SocketProvider_callbacks, \"f\").values()) {\n await this._write(JSON.stringify(payload));\n }\n }\n // Sub-classes must call this for each message\n async _processMessage(message) {\n const result = JSON.parse(message);\n if (\"id\" in result) {\n const promise = __classPrivateFieldGet(this, _SocketProvider_callbacks, \"f\").get(result.id);\n if (!promise) {\n console.log(\"Weird... Response for not a thing we sent\");\n return;\n }\n __classPrivateFieldGet(this, _SocketProvider_callbacks, \"f\").delete(result.id);\n if (\"error\" in result) {\n const { message, code, data } = result.error;\n const error = logger.makeError(message || \"unkonwn error\", \"SERVER_ERROR\", {\n request: `ws:${JSON.stringify(promise.payload)}`,\n info: { code, data }\n });\n promise.reject(error);\n }\n else {\n promise.resolve(result.result);\n }\n }\n else if (result.method === \"eth_subscription\") {\n const filterId = result.params.subscription;\n const subscriber = __classPrivateFieldGet(this, _SocketProvider_subs, \"f\").get(filterId);\n if (subscriber) {\n subscriber._handleMessage(result.params.result);\n }\n else {\n let pending = __classPrivateFieldGet(this, _SocketProvider_pending, \"f\").get(filterId);\n if (pending == null) {\n pending = [];\n __classPrivateFieldGet(this, _SocketProvider_pending, \"f\").set(filterId, pending);\n }\n pending.push(result.params.result);\n }\n }\n }\n async _write(message) {\n throw new Error(\"sub-classes must override this\");\n }\n}\n_SocketProvider_callbacks = new WeakMap(), _SocketProvider_ready = new WeakMap(), _SocketProvider_subs = new WeakMap(), _SocketProvider_pending = new WeakMap();\n//# sourceMappingURL=provider-socket.js.map","var __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 _WebSocketProvider_websocket;\nimport { WebSocket } from \"ws\"; /*-browser*/\nimport { SocketProvider } from \"./provider-socket.js\";\nexport class WebSocketProvider extends SocketProvider {\n constructor(url, network) {\n super(network);\n _WebSocketProvider_websocket.set(this, void 0);\n if (typeof (url) === \"string\") {\n __classPrivateFieldSet(this, _WebSocketProvider_websocket, new WebSocket(url), \"f\");\n }\n else {\n __classPrivateFieldSet(this, _WebSocketProvider_websocket, url, \"f\");\n }\n this.websocket.onopen = () => {\n this._start();\n };\n this.websocket.onmessage = (message) => {\n this._processMessage(message.data);\n };\n }\n get websocket() { return __classPrivateFieldGet(this, _WebSocketProvider_websocket, \"f\"); }\n async _write(message) {\n this.websocket.send(message);\n }\n}\n_WebSocketProvider_websocket = new WeakMap();\n//# sourceMappingURL=provider-websocket.js.map","import { AnkrProvider } from \"./provider-ankr.js\";\nimport { AlchemyProvider } from \"./provider-alchemy.js\";\nimport { CloudflareProvider } from \"./provider-cloudflare.js\";\nimport { EtherscanProvider } from \"./provider-etherscan.js\";\nimport { InfuraProvider } from \"./provider-infura.js\";\nimport { PocketProvider } from \"./provider-pocket.js\";\nimport { FallbackProvider } from \"./provider-fallback.js\";\nimport { JsonRpcProvider } from \"./provider-jsonrpc.js\";\nimport { WebSocketProvider } from \"./provider-websocket.js\";\nfunction isWebSocketLike(value) {\n return (value && typeof (value.send) === \"function\" &&\n typeof (value.close) === \"function\");\n}\nexport function getDefaultProvider(network, options) {\n if (options == null) {\n options = {};\n }\n if (typeof (network) === \"string\" && network.match(/^https?:/)) {\n return new JsonRpcProvider(network);\n }\n if (typeof (network) === \"string\" && network.match(/^wss?:/) || isWebSocketLike(network)) {\n return new WebSocketProvider(network);\n }\n const providers = [];\n if (options.alchemy !== \"-\") {\n try {\n providers.push(new AlchemyProvider(network, options.alchemy));\n }\n catch (error) {\n console.log(error);\n }\n }\n if (options.ankr !== \"-\") {\n try {\n providers.push(new AnkrProvider(network, options.ankr));\n }\n catch (error) {\n console.log(error);\n }\n }\n if (options.cloudflare !== \"-\") {\n try {\n providers.push(new CloudflareProvider(network));\n }\n catch (error) {\n console.log(error);\n }\n }\n if (options.etherscan !== \"-\") {\n try {\n providers.push(new EtherscanProvider(network, options.etherscan));\n }\n catch (error) {\n console.log(error);\n }\n }\n if (options.infura !== \"-\") {\n try {\n let projectId = options.infura;\n let projectSecret = undefined;\n if (typeof (projectId) === \"object\") {\n projectSecret = projectId.projectSecret;\n projectId = projectId.projectId;\n }\n providers.push(new InfuraProvider(network, projectId, projectSecret));\n }\n catch (error) {\n console.log(error);\n }\n }\n if (options.pocket !== \"-\") {\n try {\n let appId = options.pocket;\n let secretKey = undefined;\n let loadBalancer = undefined;\n if (typeof (appId) === \"object\") {\n loadBalancer = !!appId.loadBalancer;\n secretKey = appId.secretKey;\n appId = appId.appId;\n }\n providers.push(new PocketProvider(network, appId, secretKey, loadBalancer));\n }\n catch (error) {\n console.log(error);\n }\n }\n if (providers.length === 0) {\n throw new Error(\"TODO\");\n }\n if (providers.length === 1) {\n return providers[0];\n }\n return new FallbackProvider(providers);\n}\n//# sourceMappingURL=default-provider.js.map","import { EnsPlugin, GasCostPlugin, MaxPriorityFeePlugin } from \"./plugins-network.js\";\nimport { EtherscanPlugin } from \"./provider-etherscan.js\";\nimport { Network as _Network } from \"./network.js\";\n// See: https://chainlist.org\nfunction injectCommonNetworks(Network) {\n /// Register popular Ethereum networks\n function registerEth(name, chainId, options) {\n const func = function () {\n const network = new Network(name, chainId);\n // We use 0 to disable ENS\n if (options.ensNetwork != null) {\n network.attachPlugin(new EnsPlugin(null, options.ensNetwork));\n }\n if (options.priorityFee) {\n network.attachPlugin(new MaxPriorityFeePlugin(options.priorityFee));\n }\n if (options.etherscan) {\n const { url, apiKey } = options.etherscan;\n network.attachPlugin(new EtherscanPlugin(url, apiKey));\n }\n network.attachPlugin(new GasCostPlugin());\n return network;\n };\n // Register the network by name and chain ID\n Network.register(name, func);\n Network.register(chainId, func);\n if (options.altNames) {\n options.altNames.forEach((name) => {\n Network.register(name, func);\n });\n }\n }\n registerEth(\"homestead\", 1, { ensNetwork: 1, altNames: [\"mainnet\"] });\n registerEth(\"ropsten\", 3, { ensNetwork: 3 });\n registerEth(\"rinkeby\", 4, { ensNetwork: 4 });\n registerEth(\"goerli\", 5, { ensNetwork: 5 });\n registerEth(\"kovan\", 42, { ensNetwork: 42 });\n registerEth(\"classic\", 61, {});\n registerEth(\"classicKotti\", 6, {});\n registerEth(\"xdai\", 100, { ensNetwork: 1 });\n // Polygon has a 35 gwei maxPriorityFee requirement\n registerEth(\"matic\", 137, {\n ensNetwork: 1,\n priorityFee: 35000000000,\n etherscan: {\n apiKey: \"W6T8DJW654GNTQ34EFEYYP3EZD9DD27CT7\",\n url: \"https:/\\/api.polygonscan.com/\"\n }\n });\n registerEth(\"maticMumbai\", 80001, {\n priorityFee: 35000000000,\n etherscan: {\n apiKey: \"W6T8DJW654GNTQ34EFEYYP3EZD9DD27CT7\",\n url: \"https:/\\/api-testnet.polygonscan.com/\"\n }\n });\n registerEth(\"bnb\", 56, {\n ensNetwork: 1,\n etherscan: {\n apiKey: \"EVTS3CU31AATZV72YQ55TPGXGMVIFUQ9M9\",\n url: \"http:/\\/api.bscscan.com\"\n }\n });\n registerEth(\"bnbt\", 97, {\n etherscan: {\n apiKey: \"EVTS3CU31AATZV72YQ55TPGXGMVIFUQ9M9\",\n url: \"http:/\\/api-testnet.bscscan.com\"\n }\n });\n return Network;\n}\nconst Network = injectCommonNetworks(_Network);\nexport { Network };\n//# sourceMappingURL=common-networks.js.map","const IpcSocketProvider = undefined;\nexport { IpcSocketProvider };\n//# sourceMappingURL=provider-ipcsocket-browser.js.map","var __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 _ContractTransactionReceipt_interface, _ContractTransactionResponse_interface;\nimport { defineProperties, EventPayload } from \"@ethersproject/properties\";\nimport { Log, TransactionReceipt, TransactionResponse } from \"@ethersproject/providers\";\nexport class EventLog extends Log {\n constructor(log, iface, fragment) {\n super(log, log.provider);\n const args = iface.decodeEventLog(fragment, log.data, log.topics);\n defineProperties(this, { args, fragment, interface: iface });\n }\n get eventName() { return this.fragment.name; }\n get eventSignature() { return this.fragment.format(); }\n}\nexport class ContractTransactionReceipt extends TransactionReceipt {\n constructor(iface, provider, tx) {\n super(tx, provider);\n _ContractTransactionReceipt_interface.set(this, void 0);\n __classPrivateFieldSet(this, _ContractTransactionReceipt_interface, iface, \"f\");\n }\n get logs() {\n return super.logs.map((log) => {\n const fragment = log.topics.length ? __classPrivateFieldGet(this, _ContractTransactionReceipt_interface, \"f\").getEvent(log.topics[0]) : null;\n if (fragment) {\n return new EventLog(log, __classPrivateFieldGet(this, _ContractTransactionReceipt_interface, \"f\"), fragment);\n }\n else {\n return log;\n }\n });\n }\n}\n_ContractTransactionReceipt_interface = new WeakMap();\nexport class ContractTransactionResponse extends TransactionResponse {\n constructor(iface, provider, tx) {\n super(tx, provider);\n _ContractTransactionResponse_interface.set(this, void 0);\n __classPrivateFieldSet(this, _ContractTransactionResponse_interface, iface, \"f\");\n }\n async wait(confirms) {\n const receipt = await super.wait();\n if (receipt == null) {\n return null;\n }\n return new ContractTransactionReceipt(__classPrivateFieldGet(this, _ContractTransactionResponse_interface, \"f\"), this.provider, receipt);\n }\n}\n_ContractTransactionResponse_interface = new WeakMap();\nexport class ContractEventPayload extends EventPayload {\n constructor(contract, listener, filter, fragment, _log) {\n super(contract, listener, filter);\n const log = new EventLog(_log, contract.interface, fragment);\n const args = contract.interface.decodeEventLog(fragment, log.data, log.topics);\n defineProperties(this, { args, fragment, log });\n }\n get eventName() {\n return this.fragment.name;\n }\n get eventSignature() {\n return this.fragment.format();\n }\n async getBlock() {\n return await this.log.getBlock();\n }\n async getTransaction() {\n return await this.log.getTransaction();\n }\n async getTransactionReceipt() {\n return await this.log.getTransactionReceipt();\n }\n}\n//# sourceMappingURL=wrappers.js.map","export const version = \"@ethersproject/contract@6.0.0-beta.4\";\n//# sourceMappingURL=_version.js.map","import { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version.js\";\nexport const logger = new Logger(version);\n//# sourceMappingURL=logger.js.map","var __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 _PreparedTopicFilter_filter;\nimport { resolveAddress } from \"@ethersproject/address\";\nimport { Interface, Typed } from \"@ethersproject/abi\";\nimport { isHexString } from \"@ethersproject/bytes\";\nimport { isCallException } from \"@ethersproject/logger\";\nimport { defineProperties, resolveProperties } from \"@ethersproject/properties\";\nimport { copyRequest } from \"@ethersproject/providers\";\nimport { ContractEventPayload, ContractTransactionResponse, EventLog } from \"./wrappers.js\";\nimport { logger } from \"./logger.js\";\nfunction canCall(value) {\n return (value && typeof (value.call) === \"function\");\n}\nfunction canEstimate(value) {\n return (value && typeof (value.estimateGas) === \"function\");\n}\nfunction canResolve(value) {\n return (value && typeof (value.resolveName) === \"function\");\n}\nfunction canSend(value) {\n return (value && typeof (value.sendTransaction) === \"function\");\n}\nfunction concisify(items) {\n items = Array.from((new Set(items)).values());\n items.sort();\n return items;\n}\nclass PreparedTopicFilter {\n constructor(contract, fragment, args) {\n _PreparedTopicFilter_filter.set(this, void 0);\n defineProperties(this, { fragment });\n if (fragment.inputs.length < args.length) {\n throw new Error(\"too many arguments\");\n }\n // Recursively descend into args and resolve any addresses\n const runner = getRunner(contract.runner, \"resolveName\");\n const resolver = canResolve(runner) ? runner : null;\n __classPrivateFieldSet(this, _PreparedTopicFilter_filter, (async function () {\n const resolvedArgs = await Promise.all(fragment.inputs.map((param, index) => {\n return param.walkAsync(args[index], (type, value) => {\n if (type === \"address\") {\n return resolveAddress(value, resolver);\n }\n return value;\n });\n }));\n return contract.interface.encodeFilterTopics(fragment, resolvedArgs);\n })(), \"f\");\n }\n getTopicFilter() {\n return __classPrivateFieldGet(this, _PreparedTopicFilter_filter, \"f\");\n }\n}\n_PreparedTopicFilter_filter = new WeakMap();\n// A = Arguments passed in as a tuple\n// R = The result type of the call (i.e. if only one return type,\n// the qualified type, otherwise Result)\n// D = The type the default call will return (i.e. R for view/pure,\n// TransactionResponse otherwise)\n//export interface ContractMethod<A extends Array<any> = Array<any>, R = any, D extends R | ContractTransactionResponse = ContractTransactionResponse> {\nfunction _WrappedMethodBase() {\n return Function;\n}\nfunction getRunner(value, feature) {\n if (value == null) {\n return null;\n }\n if (typeof (value[feature]) === \"function\") {\n return value;\n }\n if (value.provider && typeof (value.provider[feature]) === \"function\") {\n return value.provider;\n }\n return null;\n}\nfunction getProvider(value) {\n if (value == null) {\n return null;\n }\n return value.provider || null;\n}\nexport async function copyOverrides(arg) {\n // Create a shallow copy (we'll deep-ify anything needed during normalizing)\n const overrides = copyRequest(Typed.dereference(arg, \"overrides\"));\n // Some sanity checking; these are what these methods adds\n //if ((<any>overrides).to) {\n if (overrides.to) {\n logger.throwArgumentError(\"cannot override to\", \"overrides.to\", overrides.to);\n }\n else if (overrides.data) {\n logger.throwArgumentError(\"cannot override data\", \"overrides.data\", overrides.data);\n }\n // Resolve any from\n if (overrides.from) {\n overrides.from = await resolveAddress(overrides.from);\n }\n return overrides;\n}\nexport async function resolveArgs(_runner, inputs, args) {\n // Recursively descend into args and resolve any addresses\n const runner = getRunner(_runner, \"resolveName\");\n const resolver = canResolve(runner) ? runner : null;\n return await Promise.all(inputs.map((param, index) => {\n return param.walkAsync(args[index], (type, value) => {\n if (type === \"address\") {\n return resolveAddress(value, resolver);\n }\n return value;\n });\n }));\n}\nclass WrappedMethod extends _WrappedMethodBase() {\n constructor(contract, key) {\n super();\n defineProperties(this, {\n name: contract.interface.getFunctionName(key),\n _contract: contract, _key: key\n });\n const proxy = new Proxy(this, {\n // Perform the default operation for this fragment type\n apply: async (target, thisArg, args) => {\n const fragment = target.getFragment(...args);\n if (fragment.constant) {\n return await target.staticCall(...args);\n }\n return await target.send(...args);\n },\n });\n return proxy;\n }\n // Only works on non-ambiguous keys (refined fragment is always non-ambiguous)\n get fragment() {\n return this._contract.interface.getFunction(this._key);\n }\n getFragment(...args) {\n return this._contract.interface.getFunction(this._key, args);\n }\n async populateTransaction(...args) {\n const fragment = this.getFragment(...args);\n // If an overrides was passed in, copy it and normalize the values\n let overrides = {};\n if (fragment.inputs.length + 1 === args.length) {\n overrides = await copyOverrides(args.pop());\n }\n if (fragment.inputs.length !== args.length) {\n throw new Error(\"internal error: fragment inputs doesn't match arguments; should not happen\");\n }\n const resolvedArgs = await resolveArgs(this._contract.runner, fragment.inputs, args);\n return Object.assign({}, overrides, await resolveProperties({\n to: this._contract.getAddress(),\n data: this._contract.interface.encodeFunctionData(fragment, resolvedArgs)\n }));\n }\n async staticCall(...args) {\n const result = await this.staticCallResult(...args);\n if (result.length === 1) {\n return result[0];\n }\n return result;\n }\n async send(...args) {\n const runner = this._contract.runner;\n if (!canSend(runner)) {\n return logger.throwError(\"contract runner does not support sending transactions\", \"UNSUPPORTED_OPERATION\", {\n operation: \"sendTransaction\"\n });\n }\n const tx = await runner.sendTransaction(await this.populateTransaction(...args));\n const provider = getProvider(this._contract.runner);\n return new ContractTransactionResponse(this._contract.interface, provider, tx);\n }\n async estimateGas(...args) {\n const runner = getRunner(this._contract.runner, \"estimateGas\");\n if (!canEstimate(runner)) {\n return logger.throwError(\"contract runner does not support gas estimation\", \"UNSUPPORTED_OPERATION\", {\n operation: \"estimateGas\"\n });\n }\n return await runner.estimateGas(await this.populateTransaction(...args));\n }\n async staticCallResult(...args) {\n const runner = getRunner(this._contract.runner, \"call\");\n if (!canCall(runner)) {\n return logger.throwError(\"contract runner does not support calling\", \"UNSUPPORTED_OPERATION\", {\n operation: \"call\"\n });\n }\n const fragment = this.getFragment(...args);\n const tx = await this.populateTransaction(...args);\n let result = \"0x\";\n try {\n result = await runner.call(tx);\n }\n catch (error) {\n if (isCallException(error)) {\n throw this._contract.interface.makeError(fragment, error.data, tx);\n }\n throw error;\n }\n return this._contract.interface.decodeFunctionResult(fragment, result);\n }\n}\nfunction _WrappedEventBase() {\n return Function;\n}\nclass WrappedEvent extends _WrappedEventBase() {\n constructor(contract, key) {\n super();\n defineProperties(this, {\n name: contract.interface.getEventName(key),\n _contract: contract, _key: key\n });\n return new Proxy(this, {\n // Perform the default operation for this fragment type\n apply: async (target, thisArg, args) => {\n return new PreparedTopicFilter(contract, target.getFragment(...args), args);\n },\n });\n }\n // Only works on non-ambiguous keys\n get fragment() {\n return this._contract.interface.getEvent(this._key);\n }\n getFragment(...args) {\n return this._contract.interface.getEvent(this._key, args);\n }\n}\n;\n// The combination of TypeScrype, Private Fields and Proxies makes\n// the world go boom; so we hide variables with some trickery keeping\n// a symbol attached to each BaseContract which its sub-class (even\n// via a Proxy) can reach and use to look up its internal values.\nconst internal = Symbol.for(\"_ethersInternal_contract\");\nconst internalValues = new WeakMap();\nfunction setInternal(contract, values) {\n internalValues.set(contract[internal], values);\n}\nfunction getInternal(contract) {\n return internalValues.get(contract[internal]);\n}\nfunction isDeferred(value) {\n return (value && typeof (value) === \"object\" && (\"getTopicFilter\" in value) &&\n (typeof (value.getTopicFilter) === \"function\") && value.fragment);\n}\nasync function getSubTag(contract, event) {\n let fragment;\n let topics;\n if (Array.isArray(event)) {\n // Topics; e.g. `[ \"0x1234...89ab\" ]`\n fragment = contract.interface.getEvent(event[0]);\n topics = event;\n }\n else if (typeof (event) === \"string\") {\n // Event name (name or signature); `\"Transfer\"`\n fragment = contract.interface.getEvent(event);\n topics = [contract.interface.getEventTopic(fragment)];\n }\n else if (isDeferred(event)) {\n // Deferred Topic Filter; e.g. `contract.filter.Transfer(from)`\n fragment = event.fragment;\n topics = await event.getTopicFilter();\n }\n else if (\"fragment\" in event) {\n // ContractEvent; e.g. `contract.filter.Transfer`\n fragment = event.fragment;\n topics = [contract.interface.getEventTopic(fragment)];\n }\n else {\n console.log(event);\n throw new Error(\"TODO\");\n }\n // Normalize topics and sort TopicSets\n topics = topics.map((t) => {\n if (t == null) {\n return null;\n }\n if (Array.isArray(t)) {\n return concisify(t.map((t) => t.toLowerCase()));\n }\n return t.toLowerCase();\n });\n const tag = topics.map((t) => {\n if (t == null) {\n return \"null\";\n }\n if (Array.isArray(t)) {\n return t.join(\"|\");\n }\n return t;\n }).join(\"&\");\n return { fragment, tag, topics };\n}\nasync function hasSub(contract, event) {\n const { subs } = getInternal(contract);\n return subs.get((await getSubTag(contract, event)).tag) || null;\n}\nasync function getSub(contract, event) {\n // Make sure our runner can actually subscribe to events\n const provider = getProvider(contract.runner);\n if (!provider) {\n return logger.throwError(\"contract runner does not support subscribing\", \"UNSUPPORTED_OPERATION\", {\n operation: \"on\"\n });\n }\n const { fragment, tag, topics } = await getSubTag(contract, event);\n const { addr, subs } = getInternal(contract);\n let sub = subs.get(tag);\n if (!sub) {\n const address = (addr ? addr : contract);\n const filter = { address, topics };\n const listener = (log) => {\n const payload = new ContractEventPayload(contract, null, event, fragment, log);\n emit(contract, event, payload.args, payload);\n };\n let started = false;\n const start = () => {\n if (started) {\n return;\n }\n provider.on(filter, listener);\n started = true;\n };\n const stop = () => {\n if (!started) {\n return;\n }\n provider.off(filter, listener);\n started = false;\n };\n sub = { tag, listeners: [], start, stop };\n subs.set(tag, sub);\n }\n return sub;\n}\nasync function _emit(contract, event, args, payload) {\n await lastEmit;\n const sub = await hasSub(contract, event);\n if (!sub) {\n return false;\n }\n const count = sub.listeners.length;\n sub.listeners = sub.listeners.filter(({ listener, once }) => {\n const passArgs = args.slice();\n if (payload) {\n passArgs.push(new ContractEventPayload(contract, (once ? null : listener), event, payload.fragment, payload.log));\n }\n try {\n listener.call(contract, ...passArgs);\n }\n catch (error) { }\n return !once;\n });\n return (count > 0);\n}\n// We use this to ensure one emit resolves before firing the next to\n// ensure correct ordering (note this cannot throw and just adds the\n// notice to the event queu using setTimeout).\nlet lastEmit = Promise.resolve();\nasync function emit(contract, event, args, payload) {\n try {\n await lastEmit;\n }\n catch (error) { }\n const resultPromise = _emit(contract, event, args, payload);\n lastEmit = resultPromise;\n return await resultPromise;\n}\nconst passProperties = [\"then\"];\nexport class BaseContract {\n constructor(target, abi, runner = null, _deployTx) {\n const iface = Interface.from(abi);\n defineProperties(this, { target, runner, interface: iface });\n Object.defineProperty(this, internal, { value: {} });\n let addrPromise;\n let addr = null;\n let deployTx = null;\n if (_deployTx) {\n const provider = getProvider(runner);\n deployTx = new ContractTransactionResponse(this.interface, provider, _deployTx);\n }\n let subs = new Map();\n // Resolve the target as the address\n if (typeof (target) === \"string\") {\n if (isHexString(target)) {\n addr = target;\n addrPromise = Promise.resolve(target);\n }\n else {\n const resolver = getRunner(runner, \"resolveName\");\n if (!canResolve(resolver)) {\n throw logger.makeError(\"contract runner does not support name resolution\", \"UNSUPPORTED_OPERATION\", {\n operation: \"resolveName\"\n });\n }\n addrPromise = resolver.resolveName(target).then((addr) => {\n if (addr == null) {\n throw new Error(\"TODO\");\n }\n getInternal(this).addr = addr;\n return addr;\n });\n }\n }\n else {\n addrPromise = target.getAddress().then((addr) => {\n if (addr == null) {\n throw new Error(\"TODO\");\n }\n getInternal(this).addr = addr;\n return addr;\n });\n }\n // Set our private values\n setInternal(this, { addrPromise, addr, deployTx, subs });\n // Add the event filters\n const filters = new Proxy({}, {\n get: (target, _prop, receiver) => {\n // Pass important checks (like `then` for Promise) through\n if (passProperties.indexOf(_prop) >= 0) {\n return Reflect.get(target, _prop, receiver);\n }\n const prop = String(_prop);\n const result = this.getEvent(prop);\n if (result) {\n return result;\n }\n throw new Error(`unknown contract event: ${prop}`);\n }\n });\n defineProperties(this, { filters });\n // Return a Proxy that will respond to functions\n return new Proxy(this, {\n get: (target, _prop, receiver) => {\n if (_prop in target || passProperties.indexOf(_prop) >= 0) {\n return Reflect.get(target, _prop, receiver);\n }\n const prop = String(_prop);\n const result = target.getFunction(prop);\n if (result) {\n return result;\n }\n throw new Error(`unknown contract method: ${prop}`);\n }\n });\n }\n async getAddress() { return await getInternal(this).addrPromise; }\n async getDeployedCode() {\n const provider = getProvider(this.runner);\n if (!provider) {\n return logger.throwError(\"runner does not support .provider\", \"UNSUPPORTED_OPERATION\", {\n operation: \"getDeployedCode\"\n });\n }\n const code = await provider.getCode(await this.getAddress());\n if (code === \"0x\") {\n return null;\n }\n return code;\n }\n async waitForDeployment() {\n // We have the deployement transaction; just use that (throws if deployement fails)\n const deployTx = this.deploymentTransaction();\n if (deployTx) {\n await deployTx.wait();\n return this;\n }\n // Check for code\n const code = await this.getDeployedCode();\n if (code != null) {\n return this;\n }\n // Make sure we can subscribe to a provider event\n const provider = getProvider(this.runner);\n if (provider == null) {\n return logger.throwError(\"contract runner does not support .provider\", \"UNSUPPORTED_OPERATION\", {\n operation: \"waitForDeployment\"\n });\n }\n return new Promise((resolve, reject) => {\n const checkCode = async () => {\n try {\n const code = await this.getDeployedCode();\n if (code != null) {\n return resolve(this);\n }\n provider.once(\"block\", checkCode);\n }\n catch (error) {\n reject(error);\n }\n };\n checkCode();\n });\n }\n deploymentTransaction() {\n return getInternal(this).deployTx;\n }\n getFunction(key) {\n if (typeof (key) !== \"string\") {\n key = key.format();\n }\n return (new WrappedMethod(this, key));\n }\n getEvent(key) {\n if (typeof (key) !== \"string\") {\n key = key.format();\n }\n return (new WrappedEvent(this, key));\n }\n async queryTransaction(hash) {\n // Is this useful?\n throw new Error(\"@TODO\");\n }\n async queryFilter(event, fromBlock = 0, toBlock = \"latest\") {\n const { addr, addrPromise } = getInternal(this);\n const address = (addr ? addr : (await addrPromise));\n const { fragment, topics } = await getSubTag(this, event);\n const filter = { address, topics, fromBlock, toBlock };\n const provider = getProvider(this.runner);\n if (!provider) {\n return logger.throwError(\"contract runner does not have a provider\", \"UNSUPPORTED_OPERATION\", {\n operation: \"queryFilter\"\n });\n }\n return (await provider.getLogs(filter)).map((log) => {\n return new EventLog(log, this.interface, fragment);\n });\n }\n async canSubscribe(event) {\n try {\n getSubTag(this, event);\n return true;\n }\n catch (error) {\n console.log(\"EE2\", error);\n }\n return false;\n }\n async on(event, listener) {\n const sub = await getSub(this, event);\n sub.listeners.push({ listener, once: false });\n sub.start();\n return this;\n }\n async once(event, listener) {\n const sub = await getSub(this, event);\n sub.listeners.push({ listener, once: true });\n sub.start();\n return this;\n }\n async emit(event, ...args) {\n return await emit(this, event, args, null);\n }\n async listenerCount(event) {\n if (event) {\n const sub = await hasSub(this, event);\n if (!sub) {\n return 0;\n }\n return sub.listeners.length;\n }\n const { subs } = getInternal(this);\n let total = 0;\n for (const { listeners } of subs.values()) {\n total += listeners.length;\n }\n return total;\n }\n async listeners(event) {\n if (event) {\n const sub = await hasSub(this, event);\n if (!sub) {\n return [];\n }\n return sub.listeners.map(({ listener }) => listener);\n }\n const { subs } = getInternal(this);\n let result = [];\n for (const { listeners } of subs.values()) {\n result = result.concat(listeners.map(({ listener }) => listener));\n }\n return result;\n }\n async off(event, listener) {\n const sub = await hasSub(this, event);\n if (!sub) {\n return this;\n }\n if (listener) {\n const index = sub.listeners.map(({ listener }) => listener).indexOf(listener);\n if (index >= 0) {\n sub.listeners.splice(index, 1);\n }\n }\n if (listener == null || sub.listeners.length === 0) {\n sub.stop();\n getInternal(this).subs.delete(sub.tag);\n }\n return this;\n }\n async removeAllListeners(event) {\n if (event) {\n const sub = await hasSub(this, event);\n if (!sub) {\n return this;\n }\n sub.stop();\n getInternal(this).subs.delete(sub.tag);\n }\n else {\n const { subs } = getInternal(this);\n for (const { tag, stop } of subs.values()) {\n stop();\n subs.delete(tag);\n }\n }\n return this;\n }\n // Alias for \"on\"\n async addListener(event, listener) {\n return await this.on(event, listener);\n }\n // Alias for \"off\"\n async removeListener(event, listener) {\n return await this.off(event, listener);\n }\n static buildClass(abi) {\n class CustomContract extends BaseContract {\n constructor(address, runner = null) {\n super(address, abi, runner);\n }\n }\n return CustomContract;\n }\n ;\n static from(target, abi, runner = null) {\n const contract = new this(target, abi, runner);\n return contract;\n }\n}\nfunction _ContractBase() {\n return BaseContract;\n}\nexport class Contract extends _ContractBase() {\n}\n//# sourceMappingURL=contract.js.map","const subsChrs = \" !#$%&'()*+,-./<=>?@[]^_`{|}~\";\nconst Word = /^[a-z]*$/i;\nfunction unfold(words, sep) {\n let initial = 97;\n return words.reduce((accum, word) => {\n if (word === sep) {\n initial++;\n }\n else if (word.match(Word)) {\n accum.push(String.fromCharCode(initial) + word);\n }\n else {\n initial = 97;\n accum.push(word);\n }\n return accum;\n }, []);\n}\nexport function decode(data, subs) {\n // Replace all the substitutions with their expanded form\n for (let i = subsChrs.length - 1; i >= 0; i--) {\n data = data.split(subsChrs[i]).join(subs.substring(2 * i, 2 * i + 2));\n }\n // Get all tle clumps; each suffix, first-increment and second-increment\n const clumps = [];\n const leftover = data.replace(/(:|([0-9])|([A-Z][a-z]*))/g, (all, item, semi, word) => {\n if (semi) {\n for (let i = parseInt(semi); i >= 0; i--) {\n clumps.push(\";\");\n }\n }\n else {\n clumps.push(item.toLowerCase());\n }\n return \"\";\n });\n if (leftover) {\n throw new Error(`leftovers: ${JSON.stringify(leftover)}`);\n }\n return unfold(unfold(clumps, \";\"), \":\");\n}\nexport function decodeOwl(data) {\n if (data[0] !== \"0\") {\n throw TypeError(\"unsupported auwl data\");\n }\n return decode(data.substring(1 + 2 * subsChrs.length), data.substring(1, 1 + 2 * subsChrs.length));\n}\n//# sourceMappingURL=decode-owl.js.map","export const version = \"@ethersproject/wordlists@6.0.0-beta.2\";\n//# sourceMappingURL=_version.js.map","import { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version.js\";\nexport const logger = new Logger(version);\n//# sourceMappingURL=logger.js.map","import { defineProperties } from \"@ethersproject/properties\";\nexport class Wordlist {\n constructor(locale) {\n defineProperties(this, { locale });\n }\n // Subclasses may override this\n split(mnemonic) {\n return mnemonic.toLowerCase().split(/ +/g);\n }\n // Subclasses may override this\n join(words) {\n return words.join(\" \");\n }\n}\n//# sourceMappingURL=wordlist.js.map","// Use the encode-latin.js script to create the necessary\n// data files to be consumed by this class\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 _WordlistOwl_instances, _WordlistOwl_data, _WordlistOwl_checksum, _WordlistOwl_words, _WordlistOwl_loadWords;\nimport { id } from \"@ethersproject/hash\";\nimport { decodeOwl } from \"./decode-owl.js\";\nimport { logger } from \"./logger.js\";\nimport { Wordlist } from \"./wordlist.js\";\nexport class WordlistOwl extends Wordlist {\n constructor(locale, data, checksum) {\n super(locale);\n _WordlistOwl_instances.add(this);\n _WordlistOwl_data.set(this, void 0);\n _WordlistOwl_checksum.set(this, void 0);\n _WordlistOwl_words.set(this, void 0);\n __classPrivateFieldSet(this, _WordlistOwl_data, data, \"f\");\n __classPrivateFieldSet(this, _WordlistOwl_checksum, checksum, \"f\");\n __classPrivateFieldSet(this, _WordlistOwl_words, null, \"f\");\n }\n get _data() { return __classPrivateFieldGet(this, _WordlistOwl_data, \"f\"); }\n _decodeWords() {\n return decodeOwl(__classPrivateFieldGet(this, _WordlistOwl_data, \"f\"));\n }\n getWord(index) {\n const words = __classPrivateFieldGet(this, _WordlistOwl_instances, \"m\", _WordlistOwl_loadWords).call(this);\n if (index < 0 || index >= words.length) {\n logger.throwArgumentError(`invalid word index: ${index}`, \"index\", index);\n }\n return words[index];\n }\n getWordIndex(word) {\n return __classPrivateFieldGet(this, _WordlistOwl_instances, \"m\", _WordlistOwl_loadWords).call(this).indexOf(word);\n }\n}\n_WordlistOwl_data = new WeakMap(), _WordlistOwl_checksum = new WeakMap(), _WordlistOwl_words = new WeakMap(), _WordlistOwl_instances = new WeakSet(), _WordlistOwl_loadWords = function _WordlistOwl_loadWords() {\n if (__classPrivateFieldGet(this, _WordlistOwl_words, \"f\") == null) {\n const words = this._decodeWords();\n // Verify the computed list matches the official list\n const checksum = id(words.join(\"\\n\") + \"\\n\");\n /* c8 ignore start */\n if (checksum !== __classPrivateFieldGet(this, _WordlistOwl_checksum, \"f\")) {\n throw new Error(`BIP39 Wordlist for ${this.locale} FAILED`);\n }\n /* c8 ignore stop */\n __classPrivateFieldSet(this, _WordlistOwl_words, words, \"f\");\n }\n return __classPrivateFieldGet(this, _WordlistOwl_words, \"f\");\n};\n//# sourceMappingURL=wordlist-owl.js.map","import { WordlistOwl } from \"./wordlist-owl.js\";\nconst words = \"0erleonalorenseinceregesticitStanvetearctssi#ch2Athck&tneLl0And#Il.yLeOutO=S|S%b/ra@SurdU'0Ce[Cid|CountCu'Hie=IdOu,-Qui*Ro[TT]T%T*[Tu$0AptDD-tD*[Ju,M.UltV<)Vi)0Rob-0FairF%dRaid0A(EEntRee0Ead0MRRp%tS!_rmBumCoholErtI&LLeyLowMo,O}PhaReadySoT Ways0A>urAz(gOngOuntU'd0Aly,Ch%Ci|G G!GryIm$K!Noun)Nu$O` Sw T&naTiqueXietyY1ArtOlogyPe?P!Pro=Ril1ChCt-EaEnaGueMMedM%MyOundR<+Re,Ri=RowTTefa@Ti,Tw%k0KPe@SaultSetSi,SumeThma0H!>OmTa{T&dT.udeTra@0Ct]D.Gu,NtTh%ToTumn0Era+OcadoOid0AkeA*AyEsomeFulKw?d0Is:ByChel%C#D+GL<)Lc#y~MbooN<aNn RRelyRga(R*lSeS-SketTt!3A^AnAutyCau'ComeEfF%eG(Ha=H(dLie=LowLtN^Nef./TrayTt Twe&Y#d3Cyc!DKeNdOlogyRdR`Tt _{AdeAmeAnketA,EakE[IndOodO[omOu'UeUrUsh_rdAtDyIlMbNeNusOkO,Rd R(gRrowSsTtomUn)XY_{etA(AndA[A=EadEezeI{Id+IefIghtIngIskOccoliOk&OnzeOomO` OwnUsh2Bb!DdyD+tFf$oIldLbLkL!tNd!Nk Rd&Rg R,SS(e[SyTt Y Zz:Bba+B(B!CtusGeKe~LmM aMpNN$N)lNdyNn#NoeNvasNy#Pab!P.$Pta(RRb#RdRgoRpetRryRtSeShS(o/!Su$TT$ogT^Teg%yTt!UghtU'Ut]Ve3Il(gL yM|NsusNturyRe$Rta(_irAlkAmp]An+AosApt Ar+A'AtEapE{Ee'EfErryE,I{&IefIldIm}yOi)Oo'R#-U{!UnkUrn0G?Nnam#Rc!Tiz&TyVil_imApArifyAwAyE<ErkEv I{I|IffImbIn-IpO{OgO'O`OudOwnUbUmpU, Ut^_^A,C#utDeFfeeIlInL!@L%LumnMb(eMeMf%tM-Mm#Mp<yNc tNdu@NfirmNg*[N}@Nsid NtrolNv()OkOlPp PyR$ReRnR*@/Tt#U^UntryUp!Ur'Us(V Yo>_{Ad!AftAmA}AshAt AwlAzyEamEd.EekEwI{etImeIspIt-OpO[Ou^OwdUci$UelUi'Umb!Un^UshYY,$2BeLtu*PPbo?dRiousRr|Rta(R=Sh]/omTe3C!:DMa+MpN)Ng R(gShUght WnY3AlBa>BrisCadeCemb CideCl(eC%a>C*a'ErF&'F(eFyG*eLayLiv M<dMi'Ni$Nti,NyP?tP&dPos.P`PutyRi=ScribeS tSignSkSpair/royTailTe@VelopVi)Vo>3AgramAlAm#dAryCeE'lEtFf G.$Gn.yLemmaNn NosaurRe@RtSag*eScov Sea'ShSmi[S%d Splay/<)V tVideV%)Zzy5Ct%Cum|G~Lph(Ma(Na>NkeyN%OrSeUb!Ve_ftAg#AmaA,-AwEamE[IftIllInkIpI=OpUmY2CkMbNeR(g/T^Ty1Arf1Nam-:G G!RlyRnR`Sily/Sy1HoOlogyOnomy0GeItUca>1F%t0G1GhtTh 2BowD E@r-Eg<tEm|Eph<tEvat%I>Se0B?kBodyBra)Er+Ot]PloyPow Pty0Ab!A@DD![D%'EmyErgyF%)Ga+G(eH<)JoyLi,OughR-hRollSu*T Ti*TryVelope1Isode0U$Uip0AA'OdeOs]R%Upt0CapeSayS&)Ta>0Ern$H-s1Id&)IlOkeOl=1A@Amp!Ce[Ch<+C.eCludeCu'Ecu>Erci'Hau,Hib.I!I,ItOt-P<dPe@Pi*Pla(Po'P*[T&dTra0EEbrow:Br-CeCultyDeIntI`~L'MeMilyMousNNcyNtasyRmSh]TT$Th TigueUltV%.e3Atu*Bru?yD $EEdElMa!N)/iv$T^V W3B Ct]EldGu*LeLmLt N$NdNeNg NishReRmR,Sc$ShTT}[X_gAmeAshAtAv%EeIghtIpOatO{O%Ow UidUshY_mCusGIlLd~owOdOtR)Re,R+tRkRtu}RumRw?dSsil/ UndX_gi!AmeEqu|EshI&dIn+OgOntO,OwnOz&U.2ElNNnyRna)RyTu*:D+tInLaxy~ yMePRa+Rba+Rd&Rl-Rm|SSpTeTh U+Ze3N $NiusN*Nt!Nu(e/u*2O,0AntFtGg!Ng RaffeRlVe_dAn)A*A[IdeImp'ObeOomOryO=OwUe_tDde[LdOdO'RillaSpelSsipV nWn_bA)A(AntApeA[Av.yEatE&IdIefItOc yOupOwUnt_rdE[IdeIltIt?N3M:B.IrLfMm M, NdPpyRb%RdRshR=,TVeWkZ?d3AdAl`ArtAvyD+hogIght~oLmetLpNRo3Dd&Gh~NtPRe/%y5BbyCkeyLdLeLiday~owMeNeyOdPeRnRr%R'Sp.$/TelUrV 5BGeM<Mb!M%Nd*dNgryNtRd!RryRtSb<d3Brid:1EOn0EaEntifyLe2N%e4LLeg$L}[0A+Ita>M&'Mu}Pa@Po'Pro=Pul'0ChCludeComeC*a'DexD-a>Do%Du,ryF<tFl-tF%mHa!H .Iti$Je@JuryMa>N Noc|PutQuiryS<eSe@SideSpi*/$lTa@T e,ToVe,V.eVol=3On0L<dOla>Sue0Em1Ory:CketGu?RZz3AlousAns~yWel9BInKeUr}yY5D+I)MpNg!Ni%Nk/:Ng?oo3EnEpT^upY3CkDD}yNdNgdomSsTT^&TeTt&Wi4EeIfeO{Ow:BBelB%Dd DyKeMpNgua+PtopR+T T(UghUndryVaWWnWsu.Y Zy3Ad AfArnA=Ctu*FtGG$G&dIsu*M#NdNg`NsOp?dSs#Tt Vel3ArB tyBr?yC&'FeFtGhtKeMbM.NkOnQuid/Tt!VeZ?d5AdAnB, C$CkG-NelyNgOpTt yUdUn+VeY$5CkyGga+Mb N?N^Xury3R-s:Ch(eDG-G}tIdIlInJ%KeMm$NNa+Nda>NgoNs]Nu$P!Rb!R^Rg(R(eRketRria+SkSs/ T^T i$ThTrixTt XimumZe3AdowAnAsu*AtCh<-D$DiaLodyLtMb M%yNt]NuRcyR+R.RryShSsa+T$Thod3Dd!DnightLk~]M-NdNimumN%Nu>Rac!Rr%S ySs/akeXXedXtu*5Bi!DelDifyMM|N.%NkeyN, N`OnR$ReRn(gSqu.oTh T]T%Unta(U'VeVie5ChFf(LeLtiplySc!SeumShroomS-/Tu$3Self/ yTh:I=MePk(Rrow/yT]Tu*3ArCkEdGati=G!@I` PhewR=/TTw%kUtr$V WsXt3CeGht5B!I'M(eeOd!Rm$R`SeTab!TeTh(gTi)VelW5C!?Mb R'T:K0EyJe@Li+Scu*S =Ta(Vious0CurE<Tob 0Or1FF Fi)T&2L1Ay0DI=Ymp-0It0CeEI#L(eLy1EnEraIn]Po'T]1An+B.Ch?dD D(?yG<I|Ig($Ph<0Tr-h0H 0Tdo%T TputTside0AlEnEr0NN 0Yg&0/ 0O}:CtDd!GeIrLa)LmNdaNelN-N` P RadeR|RkRrotRtySsT^ThTi|TrolTt nU'VeYm|3A)AnutArAs<tL-<NN$tyNcilOp!Pp Rfe@Rm.Rs#T2O}OtoRa'Ys-$0AnoCn-Ctu*E)GGe#~LotNkO} Pe/olT^Zza_)A}tA,-A>AyEa'Ed+U{UgUn+2EmEtIntL?LeLi)NdNyOlPul?Rt]S.]Ssib!/TatoTt yV tyWd W _@i)Ai'Ed-tEf Epa*Es|EttyEv|I)IdeIm?yIntI%.yIs#Iva>IzeOb!mO)[Odu)Of.OgramOje@Omo>OofOp tyOsp O>@OudOvide2Bl-Dd(g~LpL'Mpk(N^PilPpyR^a'R.yRpo'R'ShTZz!3Ramid:99Al.yAntumArt E,]I{ItIzO>:Bb.Cco#CeCkD?DioIlInI'~yMpN^NdomN+PidReTeTh V&WZ%3AdyAlAs#BelBuildC$lCei=CipeC%dCyc!Du)F!@F%mFu'G]G*tGul?Je@LaxLea'LiefLyMa(Memb M(dMo=Nd NewNtOp&PairPeatPla)P%tQui*ScueSemb!Si,Sour)Sp#'SultTi*T*atTurnUn]Ve$ViewW?d2Y`m0BBb#CeChDeD+F!GhtGidNgOtPp!SkTu$V$V 5AdA,BotBu,CketM<)OfOkieOmSeTa>UghUndU>Y$5Bb DeGLeNNwayR$:DDd!D}[FeIlLadLm#L#LtLu>MeMp!NdTisfyToshiU)Usa+VeY1A!AnA*Att E}HemeHoolI&)I[%sOrp]OutRapRe&RiptRub1AAr^As#AtC#dC*tCt]Cur.yEdEkGm|Le@~M(?Ni%N'Nt&)RiesRvi)Ss]Tt!TupV&_dowAftAllowA*EdEllEriffIeldIftI}IpIv O{OeOotOpOrtOuld O=RimpRugUff!Y0Bl(gCkDeE+GhtGnL|Lk~yLv Mil?Mp!N)NgR&/ Tua>XZe1A>Et^IIllInIrtUll0AbAmEepEnd I)IdeIghtImOg<OtOwUsh0AllArtI!OkeOo`0A{AkeApIffOw0ApCc Ci$CkDaFtL?Ldi LidLut]L=Me#eNgOnRryRtUlUndUpUr)U`0A)A*Ati$AwnEakEci$EedEllEndH eI)Id IkeInIr.L.OilOns%O#OrtOtRayReadR(gY0Ua*UeezeUir*l_b!AdiumAffA+AirsAmpAndArtA>AyEakEelEmEpE*oI{IllIngO{Oma^O}OolOryO=Ra>gyReetRikeR#gRugg!Ud|UffUmb!Y!0Bje@Bm.BwayC)[ChDd&Ff G?G+,ItMm NNnyN'tP PplyP*meReRfa)R+Rpri'RroundR=ySpe@/a(1AllowAmpApArmE?EetIftImIngIt^Ord1MbolMptomRup/em:B!Ck!GIlL|LkNkPeR+tSk/eTtooXi3A^Am~NN<tNnisNtRm/Xt_nkAtEmeEnE%yE*EyIngIsOughtReeRi=RowUmbUnd 0CketDeG LtMb MeNyPRedSsueT!5A,BaccoDayDdl EGe` I!tK&MatoM%rowNeNgueNightOlO`PP-Pp!R^RnadoRtoi'SsT$Uri,W?dW WnY_{AdeAff-Ag-A(Ansf ApAshA=lAyEatEeEndI$IbeI{Igg ImIpOphyOub!U{UeUlyUmpetU,U`Y2BeIt]Mb!NaN}lRkeyRnRt!1El=EntyI)InI,O1PeP-$:5Ly5B*lla0Ab!Awa*C!Cov D DoFairFoldHappyIf%mIqueItIv 'KnownLo{TilUsu$Veil1Da>GradeHoldOnP Set1B<Ge0A+EEdEfulE![U$0Il.y:C<tCuumGueLidL!yL=NNishP%Rious/Ult3H-!L=tNd%Ntu*NueRbRifyRs]RyS'lT <3Ab!Br<tCiousCt%yDeoEw~a+Nta+Ol(Rtu$RusSaS.Su$T$Vid5C$I)IdLc<oLumeTeYa+:GeG#ItLk~LnutNtRfa*RmRri%ShSp/eT VeY3Al`Ap#ArA'lA` BDd(gEk&dIrdLcome/T_!AtEatEelEnE*IpIsp 0DeD`FeLd~NNdowNeNgNkNn Nt ReSdomSeShT}[5LfM<Nd OdOlRdRkRldRryR`_pE{E,!I,I>Ong::Rd3Ar~ow9UUngU`:3BraRo9NeO\";\nconst checksum = \"0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60\";\nexport class LangEn extends WordlistOwl {\n constructor() { super(\"en\", words, checksum); }\n}\nexport const langEn = new LangEn();\n//# sourceMappingURL=lang-en.js.map","export const version = \"@ethersproject/wallet@6.0.0-beta.4\";\n//# sourceMappingURL=_version.js.map","import { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version.js\";\nexport const logger = new Logger(version);\n//# sourceMappingURL=logger.js.map","import { langEn as en } from \"./lang-en.js\";\nexport const wordlists = Object.freeze({\n en\n});\n//# sourceMappingURL=wordlists-en.js.map","const Base64 = \")!@#$%^&*(ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_\";\nexport function decodeBits(width, data) {\n const maxValue = (1 << width) - 1;\n const result = [];\n let accum = 0, bits = 0, flood = 0;\n for (let i = 0; i < data.length; i++) {\n // Accumulate 6 bits of data\n accum = ((accum << 6) | Base64.indexOf(data[i]));\n bits += 6;\n // While we have enough for a word...\n while (bits >= width) {\n // ...read the word\n const value = (accum >> (bits - width));\n accum &= (1 << (bits - width)) - 1;\n bits -= width;\n // A value of 0 indicates we exceeded maxValue, it\n // floods over into the next value\n if (value === 0) {\n flood += maxValue;\n }\n else {\n result.push(value + flood);\n flood = 0;\n }\n }\n }\n return result;\n}\n//# sourceMappingURL=bit-reader.js.map","import { decodeBits } from \"./bit-reader.js\";\nimport { decodeOwl } from \"./decode-owl.js\";\nexport function decodeOwlA(data, accents) {\n let words = decodeOwl(data).join(\",\");\n // Inject the accents\n accents.split(/,/g).forEach((accent) => {\n const match = accent.match(/^([a-z]*)([0-9]+)([0-9])(.*)$/);\n if (!match) {\n throw new Error(\"internal error parsing accents\");\n }\n let posOffset = 0;\n const positions = decodeBits(parseInt(match[3]), match[4]);\n const charCode = parseInt(match[2]);\n const regex = new RegExp(`([${match[1]}])`, \"g\");\n words = words.replace(regex, (all, letter) => {\n const rem = --positions[posOffset];\n if (rem === 0) {\n letter = String.fromCharCode(letter.charCodeAt(0), charCode);\n posOffset++;\n }\n return letter;\n });\n });\n return words.split(\",\");\n}\n//# sourceMappingURL=decode-owla.js.map","var __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 _WordlistOwlA_accent;\nimport { WordlistOwl } from \"./wordlist-owl.js\";\nimport { decodeOwlA } from \"./decode-owla.js\";\nexport class WordlistOwlA extends WordlistOwl {\n constructor(locale, data, accent, checksum) {\n super(locale, data, checksum);\n _WordlistOwlA_accent.set(this, void 0);\n __classPrivateFieldSet(this, _WordlistOwlA_accent, accent, \"f\");\n }\n get _accent() { return __classPrivateFieldGet(this, _WordlistOwlA_accent, \"f\"); }\n _decodeWords() {\n return decodeOwlA(this._data, this._accent);\n }\n}\n_WordlistOwlA_accent = new WeakMap();\n//# sourceMappingURL=wordlist-owla.js.map","import { arrayify, hexlify } from \"@ethersproject/bytes\";\nimport { pbkdf2, sha256 } from \"@ethersproject/crypto\";\nimport { defineProperties } from \"@ethersproject/properties\";\nimport { toUtf8Bytes, UnicodeNormalizationForm } from \"@ethersproject/strings\";\nimport { langEn } from \"@ethersproject/wordlists\";\nimport { logger } from \"./logger.js\";\n// Returns a byte with the MSB bits set\nfunction getUpperMask(bits) {\n return ((1 << bits) - 1) << (8 - bits) & 0xff;\n}\n// Returns a byte with the LSB bits set\nfunction getLowerMask(bits) {\n return ((1 << bits) - 1) & 0xff;\n}\nfunction mnemonicToEntropy(mnemonic, wordlist = langEn) {\n logger.assertNormalize(\"NFKD\");\n if (wordlist == null) {\n wordlist = langEn;\n }\n const words = wordlist.split(mnemonic);\n if ((words.length % 3) !== 0 || words.length < 12 || words.length > 24) {\n logger.throwArgumentError(\"invalid mnemonic length\", \"mnemonic\", \"[ REDACTED ]\");\n }\n const entropy = arrayify(new Uint8Array(Math.ceil(11 * words.length / 8)));\n let offset = 0;\n for (let i = 0; i < words.length; i++) {\n let index = wordlist.getWordIndex(words[i].normalize(\"NFKD\"));\n if (index === -1) {\n logger.throwArgumentError(`invalid mnemonic word at index ${i}`, \"mnemonic\", \"[ REDACTED ]\");\n }\n for (let bit = 0; bit < 11; bit++) {\n if (index & (1 << (10 - bit))) {\n entropy[offset >> 3] |= (1 << (7 - (offset % 8)));\n }\n offset++;\n }\n }\n const entropyBits = 32 * words.length / 3;\n const checksumBits = words.length / 3;\n const checksumMask = getUpperMask(checksumBits);\n const checksum = arrayify(sha256(entropy.slice(0, entropyBits / 8)))[0] & checksumMask;\n if (checksum !== (entropy[entropy.length - 1] & checksumMask)) {\n logger.throwArgumentError(\"invalid mnemonic checksum\", \"mnemonic\", \"[ REDACTED ]\");\n }\n return hexlify(entropy.slice(0, entropyBits / 8));\n}\nfunction entropyToMnemonic(entropy, wordlist = langEn) {\n if ((entropy.length % 4) || entropy.length < 16 || entropy.length > 32) {\n logger.throwArgumentError(\"invalid entropy size\", \"entropy\", \"[ REDACTED ]\");\n }\n if (wordlist == null) {\n wordlist = langEn;\n }\n const indices = [0];\n let remainingBits = 11;\n for (let i = 0; i < entropy.length; i++) {\n // Consume the whole byte (with still more to go)\n if (remainingBits > 8) {\n indices[indices.length - 1] <<= 8;\n indices[indices.length - 1] |= entropy[i];\n remainingBits -= 8;\n // This byte will complete an 11-bit index\n }\n else {\n indices[indices.length - 1] <<= remainingBits;\n indices[indices.length - 1] |= entropy[i] >> (8 - remainingBits);\n // Start the next word\n indices.push(entropy[i] & getLowerMask(8 - remainingBits));\n remainingBits += 3;\n }\n }\n // Compute the checksum bits\n const checksumBits = entropy.length / 4;\n const checksum = parseInt(sha256(entropy).substring(2, 4), 16) & getUpperMask(checksumBits);\n // Shift the checksum into the word indices\n indices[indices.length - 1] <<= checksumBits;\n indices[indices.length - 1] |= (checksum >> (8 - checksumBits));\n return wordlist.join(indices.map((index) => wordlist.getWord(index)));\n}\nconst _guard = {};\nexport class Mnemonic {\n constructor(guard, entropy, phrase, password, wordlist) {\n if (password == null) {\n password = \"\";\n }\n if (wordlist == null) {\n wordlist = langEn;\n }\n logger.assertPrivate(guard, _guard, \"Mnemonic\");\n defineProperties(this, { phrase, password, wordlist, entropy });\n }\n computeSeed() {\n const salt = toUtf8Bytes(\"mnemonic\" + this.password, UnicodeNormalizationForm.NFKD);\n return pbkdf2(toUtf8Bytes(this.phrase, UnicodeNormalizationForm.NFKD), salt, 2048, 64, \"sha512\");\n }\n static fromPhrase(phrase, password, wordlist) {\n // Normalize the case and space; throws if invalid\n const entropy = mnemonicToEntropy(phrase, wordlist);\n phrase = entropyToMnemonic(logger.getBytes(entropy), wordlist);\n return new Mnemonic(_guard, entropy, phrase, password, wordlist);\n }\n static fromEntropy(_entropy, password, wordlist) {\n const entropy = logger.getBytes(_entropy, \"entropy\");\n const phrase = entropyToMnemonic(entropy, wordlist);\n return new Mnemonic(_guard, hexlify(entropy), phrase, password, wordlist);\n }\n static entropyToPhrase(_entropy, wordlist) {\n const entropy = logger.getBytes(_entropy, \"entropy\");\n return entropyToMnemonic(entropy, wordlist);\n }\n static phraseToEntropy(phrase, wordlist) {\n return mnemonicToEntropy(phrase, wordlist);\n }\n static isValidMnemonic(phrase, wordlist) {\n try {\n mnemonicToEntropy(phrase, wordlist);\n return true;\n }\n catch (error) { }\n return false;\n }\n}\n//# sourceMappingURL=mnemonic.js.map","var __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 _BaseWallet_signingKey;\nimport { getAddress, resolveAddress } from \"@ethersproject/address\";\nimport { hashMessage, TypedDataEncoder } from \"@ethersproject/hash\";\nimport { defineProperties, resolveProperties } from \"@ethersproject/properties\";\nimport { AbstractSigner } from \"@ethersproject/providers\";\nimport { computeAddress, Transaction } from \"@ethersproject/transaction\";\nimport { logger } from \"./logger.js\";\nexport class BaseWallet extends AbstractSigner {\n constructor(privateKey, provider) {\n super(provider);\n _BaseWallet_signingKey.set(this, void 0);\n __classPrivateFieldSet(this, _BaseWallet_signingKey, privateKey, \"f\");\n const address = computeAddress(this.signingKey.publicKey);\n defineProperties(this, { address });\n }\n // Store these in getters to reduce visibility in console.log\n get signingKey() { return __classPrivateFieldGet(this, _BaseWallet_signingKey, \"f\"); }\n get privateKey() { return this.signingKey.privateKey; }\n async getAddress() { return this.address; }\n connect(provider) {\n return new BaseWallet(__classPrivateFieldGet(this, _BaseWallet_signingKey, \"f\"), provider);\n }\n async signTransaction(_tx) {\n // Replace any Addressable or ENS name with an address\n const tx = Object.assign({}, _tx, await resolveProperties({\n to: (_tx.to ? resolveAddress(_tx.to, this.provider) : undefined),\n from: (_tx.from ? resolveAddress(_tx.from, this.provider) : undefined)\n }));\n if (tx.from != null) {\n if (getAddress(tx.from) !== this.address) {\n logger.throwArgumentError(\"transaction from address mismatch\", \"tx.from\", _tx.from);\n }\n delete tx.from;\n }\n // Build the transaction\n const btx = Transaction.from(tx);\n btx.signature = this.signingKey.sign(btx.unsignedHash);\n return btx.serialized;\n }\n async signMessage(message) {\n return this.signingKey.sign(hashMessage(message)).serialized;\n }\n async signTypedData(domain, types, value) {\n // Populate any ENS names\n const populated = await TypedDataEncoder.resolveNames(domain, types, value, async (name) => {\n if (this.provider == null) {\n return logger.throwError(\"cannot resolve ENS names without a provider\", \"UNSUPPORTED_OPERATION\", {\n operation: \"resolveName\",\n info: { name }\n });\n }\n const address = await this.provider.resolveName(name);\n if (address == null) {\n return logger.throwError(\"unconfigured ENS name\", \"UNCONFIGURED_NAME\", {\n value: name\n });\n }\n return address;\n });\n return this.signingKey.sign(TypedDataEncoder.hash(populated.domain, types, populated.value)).serialized;\n }\n}\n_BaseWallet_signingKey = new WeakMap();\n//# sourceMappingURL=base-wallet.js.map","var __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 _a, _HDNodeWallet_fromSeed, _HDNodeWalletManager_root;\nimport { arrayify, concat, dataSlice, hexlify } from \"@ethersproject/bytes\";\nimport { computeHmac, randomBytes, ripemd160, sha256 } from \"@ethersproject/crypto\";\nimport { decodeBase58, encodeBase58, toBigInt, toHex } from \"@ethersproject/math\";\nimport { defineProperties } from \"@ethersproject/properties\";\nimport { VoidSigner } from \"@ethersproject/providers\";\nimport { SigningKey } from \"@ethersproject/signing-key\";\nimport { computeAddress } from \"@ethersproject/transaction\";\nimport { langEn } from \"@ethersproject/wordlists/lib/lang-en.js\";\nimport { logger } from \"./logger.js\";\nimport { Mnemonic } from \"./mnemonic.js\";\nimport { BaseWallet } from \"./base-wallet.js\";\nexport const defaultPath = \"m/44'/60'/0'/0/0\";\n// \"Bitcoin seed\"\nconst MasterSecret = new Uint8Array([66, 105, 116, 99, 111, 105, 110, 32, 115, 101, 101, 100]);\nconst HardenedBit = 0x80000000;\nconst N = BigInt(\"0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141\");\nconst Nibbles = \"0123456789abcdef\";\nfunction zpad(value, length) {\n let result = \"\";\n while (value) {\n result = Nibbles[value % 16] + result;\n value = Math.trunc(value / 16);\n }\n while (result.length < length * 2) {\n result = \"0\" + result;\n }\n return \"0x\" + result;\n}\nfunction encodeBase58Check(_value) {\n const value = logger.getBytes(_value);\n const check = dataSlice(sha256(sha256(value)), 0, 4);\n const bytes = concat([value, check]);\n return encodeBase58(bytes);\n}\nconst _guard = {};\nfunction ser_I(index, chainCode, publicKey, privateKey) {\n const data = new Uint8Array(37);\n if (index & HardenedBit) {\n if (privateKey == null) {\n return logger.throwError(\"cannot derive child of neutered node\", \"UNSUPPORTED_OPERATION\", {\n operation: \"deriveChild\"\n });\n }\n // Data = 0x00 || ser_256(k_par)\n data.set(arrayify(privateKey), 1);\n }\n else {\n // Data = ser_p(point(k_par))\n data.set(arrayify(publicKey));\n }\n // Data += ser_32(i)\n for (let i = 24; i >= 0; i -= 8) {\n data[33 + (i >> 3)] = ((index >> (24 - i)) & 0xff);\n }\n const I = arrayify(computeHmac(\"sha512\", chainCode, data));\n return { IL: I.slice(0, 32), IR: I.slice(32) };\n}\nfunction derivePath(node, path) {\n const components = path.split(\"/\");\n if (components.length === 0 || (components[0] === \"m\" && node.depth !== 0)) {\n throw new Error(\"invalid path - \" + path);\n }\n if (components[0] === \"m\") {\n components.shift();\n }\n let result = node;\n for (let i = 0; i < components.length; i++) {\n const component = components[i];\n if (component.match(/^[0-9]+'$/)) {\n const index = parseInt(component.substring(0, component.length - 1));\n if (index >= HardenedBit) {\n throw new Error(\"invalid path index - \" + component);\n }\n result = result.deriveChild(HardenedBit + index);\n }\n else if (component.match(/^[0-9]+$/)) {\n const index = parseInt(component);\n if (index >= HardenedBit) {\n throw new Error(\"invalid path index - \" + component);\n }\n result = result.deriveChild(index);\n }\n else {\n throw new Error(\"invalid path component - \" + component);\n }\n }\n return result;\n}\nexport class HDNodeWallet extends BaseWallet {\n constructor(guard, signingKey, parentFingerprint, chainCode, path, index, depth, mnemonic, provider) {\n super(signingKey, provider);\n logger.assertPrivate(guard, _guard, \"HDNodeWallet\");\n defineProperties(this, { publicKey: signingKey.compressedPublicKey });\n const fingerprint = dataSlice(ripemd160(sha256(this.publicKey)), 0, 4);\n defineProperties(this, {\n parentFingerprint, fingerprint,\n chainCode, path, index, depth\n });\n defineProperties(this, { mnemonic });\n }\n connect(provider) {\n return new HDNodeWallet(_guard, this.signingKey, this.parentFingerprint, this.chainCode, this.path, this.index, this.depth, this.mnemonic, provider);\n }\n get extendedKey() {\n // We only support the mainnet values for now, but if anyone needs\n // testnet values, let me know. I believe current sentiment is that\n // we should always use mainnet, and use BIP-44 to derive the network\n // - Mainnet: public=0x0488B21E, private=0x0488ADE4\n // - Testnet: public=0x043587CF, private=0x04358394\n if (this.depth >= 256) {\n throw new Error(\"Depth too large!\");\n }\n return encodeBase58Check(concat([\n \"0x0488ADE4\", zpad(this.depth, 1), this.parentFingerprint,\n zpad(this.index, 4), this.chainCode,\n concat([\"0x00\", this.privateKey])\n ]));\n }\n hasPath() { return (this.path != null); }\n neuter() {\n return new HDNodeVoidWallet(_guard, this.address, this.publicKey, this.parentFingerprint, this.chainCode, this.path, this.index, this.depth, this.provider);\n }\n deriveChild(_index) {\n const index = logger.getNumber(_index, \"index\");\n if (index > 0xffffffff) {\n throw new Error(\"invalid index - \" + String(index));\n }\n // Base path\n let path = this.path;\n if (path) {\n path += \"/\" + (index & ~HardenedBit);\n if (index & HardenedBit) {\n path += \"'\";\n }\n }\n const { IR, IL } = ser_I(index, this.chainCode, this.publicKey, this.privateKey);\n const ki = new SigningKey(toHex((toBigInt(IL) + BigInt(this.privateKey)) % N, 32));\n return new HDNodeWallet(_guard, ki, this.fingerprint, hexlify(IR), path, index, this.depth + 1, this.mnemonic, this.provider);\n }\n derivePath(path) {\n return derivePath(this, path);\n }\n static fromSeed(seed) {\n return __classPrivateFieldGet(HDNodeWallet, _a, \"m\", _HDNodeWallet_fromSeed).call(HDNodeWallet, seed, null);\n }\n static fromPhrase(phrase, password = \"\", path = defaultPath, wordlist = langEn) {\n if (!path) {\n path = defaultPath;\n }\n const mnemonic = Mnemonic.fromPhrase(phrase, password, wordlist);\n return __classPrivateFieldGet(HDNodeWallet, _a, \"m\", _HDNodeWallet_fromSeed).call(HDNodeWallet, mnemonic.computeSeed(), mnemonic).derivePath(path);\n }\n static fromMnemonic(mnemonic, path = defaultPath) {\n if (!path) {\n path = defaultPath;\n }\n return __classPrivateFieldGet(HDNodeWallet, _a, \"m\", _HDNodeWallet_fromSeed).call(HDNodeWallet, mnemonic.computeSeed(), mnemonic).derivePath(path);\n }\n static fromExtendedKey(extendedKey) {\n const bytes = arrayify(decodeBase58(extendedKey)); // @TODO: redact\n if (bytes.length !== 82 || encodeBase58Check(bytes.slice(0, 78)) !== extendedKey) {\n logger.throwArgumentError(\"invalid extended key\", \"extendedKey\", \"[ REDACTED ]\");\n }\n const depth = bytes[4];\n const parentFingerprint = hexlify(bytes.slice(5, 9));\n const index = parseInt(hexlify(bytes.slice(9, 13)).substring(2), 16);\n const chainCode = hexlify(bytes.slice(13, 45));\n const key = bytes.slice(45, 78);\n switch (hexlify(bytes.slice(0, 4))) {\n // Public Key\n case \"0x0488b21e\":\n case \"0x043587cf\": {\n const publicKey = hexlify(key);\n return new HDNodeVoidWallet(_guard, computeAddress(publicKey), publicKey, parentFingerprint, chainCode, null, index, depth, null);\n }\n // Private Key\n case \"0x0488ade4\":\n case \"0x04358394 \":\n if (key[0] !== 0) {\n break;\n }\n return new HDNodeWallet(_guard, new SigningKey(key.slice(1)), parentFingerprint, chainCode, null, index, depth, null, null);\n }\n return logger.throwArgumentError(\"invalid extended key prefix\", \"extendedKey\", \"[ REDACTED ]\");\n }\n static createRandom(password = \"\", path = defaultPath, wordlist = langEn) {\n if (!path) {\n path = defaultPath;\n }\n const mnemonic = Mnemonic.fromEntropy(randomBytes(16), password, wordlist);\n return __classPrivateFieldGet(HDNodeWallet, _a, \"m\", _HDNodeWallet_fromSeed).call(HDNodeWallet, mnemonic.computeSeed(), mnemonic).derivePath(path);\n }\n}\n_a = HDNodeWallet, _HDNodeWallet_fromSeed = function _HDNodeWallet_fromSeed(_seed, mnemonic) {\n const seed = logger.getBytes(_seed, \"seed\");\n if (seed.length < 16 || seed.length > 64) {\n throw new Error(\"invalid seed\");\n }\n const I = arrayify(computeHmac(\"sha512\", MasterSecret, seed));\n const signingKey = new SigningKey(hexlify(I.slice(0, 32)));\n return new HDNodeWallet(_guard, signingKey, \"0x00000000\", hexlify(I.slice(32)), \"m\", 0, 0, mnemonic, null);\n};\nexport class HDNodeVoidWallet extends VoidSigner {\n constructor(guard, address, publicKey, parentFingerprint, chainCode, path, index, depth, provider) {\n super(address, provider);\n logger.assertPrivate(guard, _guard, \"HDNodeVoidWallet\");\n defineProperties(this, { publicKey });\n const fingerprint = dataSlice(ripemd160(sha256(publicKey)), 0, 4);\n defineProperties(this, {\n publicKey, fingerprint, parentFingerprint, chainCode, path, index, depth\n });\n }\n connect(provider) {\n return new HDNodeVoidWallet(_guard, this.address, this.publicKey, this.parentFingerprint, this.chainCode, this.path, this.index, this.depth, provider);\n }\n get extendedKey() {\n // We only support the mainnet values for now, but if anyone needs\n // testnet values, let me know. I believe current sentiment is that\n // we should always use mainnet, and use BIP-44 to derive the network\n // - Mainnet: public=0x0488B21E, private=0x0488ADE4\n // - Testnet: public=0x043587CF, private=0x04358394\n if (this.depth >= 256) {\n throw new Error(\"Depth too large!\");\n }\n return encodeBase58Check(concat([\n \"0x0488B21E\",\n zpad(this.depth, 1),\n this.parentFingerprint,\n zpad(this.index, 4),\n this.chainCode,\n this.publicKey,\n ]));\n }\n hasPath() { return (this.path != null); }\n deriveChild(_index) {\n const index = logger.getNumber(_index, \"index\");\n if (index > 0xffffffff) {\n throw new Error(\"invalid index - \" + String(index));\n }\n // Base path\n let path = this.path;\n if (path) {\n path += \"/\" + (index & ~HardenedBit);\n if (index & HardenedBit) {\n path += \"'\";\n }\n }\n const { IR, IL } = ser_I(index, this.chainCode, this.publicKey, null);\n const Ki = SigningKey._addPoints(IL, this.publicKey, true);\n const address = computeAddress(Ki);\n return new HDNodeVoidWallet(_guard, address, Ki, this.fingerprint, hexlify(IR), path, index, this.depth + 1, this.provider);\n }\n derivePath(path) {\n return derivePath(this, path);\n }\n}\nexport class HDNodeWalletManager {\n constructor(phrase, password = \"\", path = \"m/44'/60'/0'/0\", locale = langEn) {\n _HDNodeWalletManager_root.set(this, void 0);\n __classPrivateFieldSet(this, _HDNodeWalletManager_root, HDNodeWallet.fromPhrase(phrase, password, path, locale), \"f\");\n }\n getSigner(index = 0) {\n return __classPrivateFieldGet(this, _HDNodeWalletManager_root, \"f\").deriveChild(index);\n }\n}\n_HDNodeWalletManager_root = new WeakMap();\nexport function getAccountPath(_index) {\n const index = logger.getNumber(_index, \"index\");\n if (index < 0 || index >= HardenedBit) {\n logger.throwArgumentError(\"invalid account index\", \"index\", index);\n }\n return `m/44'/60'/${index}'/0/0`;\n}\n//# sourceMappingURL=hdwallet.js.map","/*! MIT License. Copyright 2015-2022 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */\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 _AES_key, _AES_Kd, _AES_Ke;\n// Number of rounds by keysize\nconst numberOfRounds = { 16: 10, 24: 12, 32: 14 };\n// Round constant words\nconst rcon = [0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91];\n// S-box and Inverse S-box (S is for Substitution)\nconst S = [0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16];\nconst Si = [0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d];\n// Transformations for encryption\nconst T1 = [0xc66363a5, 0xf87c7c84, 0xee777799, 0xf67b7b8d, 0xfff2f20d, 0xd66b6bbd, 0xde6f6fb1, 0x91c5c554, 0x60303050, 0x02010103, 0xce6767a9, 0x562b2b7d, 0xe7fefe19, 0xb5d7d762, 0x4dababe6, 0xec76769a, 0x8fcaca45, 0x1f82829d, 0x89c9c940, 0xfa7d7d87, 0xeffafa15, 0xb25959eb, 0x8e4747c9, 0xfbf0f00b, 0x41adadec, 0xb3d4d467, 0x5fa2a2fd, 0x45afafea, 0x239c9cbf, 0x53a4a4f7, 0xe4727296, 0x9bc0c05b, 0x75b7b7c2, 0xe1fdfd1c, 0x3d9393ae, 0x4c26266a, 0x6c36365a, 0x7e3f3f41, 0xf5f7f702, 0x83cccc4f, 0x6834345c, 0x51a5a5f4, 0xd1e5e534, 0xf9f1f108, 0xe2717193, 0xabd8d873, 0x62313153, 0x2a15153f, 0x0804040c, 0x95c7c752, 0x46232365, 0x9dc3c35e, 0x30181828, 0x379696a1, 0x0a05050f, 0x2f9a9ab5, 0x0e070709, 0x24121236, 0x1b80809b, 0xdfe2e23d, 0xcdebeb26, 0x4e272769, 0x7fb2b2cd, 0xea75759f, 0x1209091b, 0x1d83839e, 0x582c2c74, 0x341a1a2e, 0x361b1b2d, 0xdc6e6eb2, 0xb45a5aee, 0x5ba0a0fb, 0xa45252f6, 0x763b3b4d, 0xb7d6d661, 0x7db3b3ce, 0x5229297b, 0xdde3e33e, 0x5e2f2f71, 0x13848497, 0xa65353f5, 0xb9d1d168, 0x00000000, 0xc1eded2c, 0x40202060, 0xe3fcfc1f, 0x79b1b1c8, 0xb65b5bed, 0xd46a6abe, 0x8dcbcb46, 0x67bebed9, 0x7239394b, 0x944a4ade, 0x984c4cd4, 0xb05858e8, 0x85cfcf4a, 0xbbd0d06b, 0xc5efef2a, 0x4faaaae5, 0xedfbfb16, 0x864343c5, 0x9a4d4dd7, 0x66333355, 0x11858594, 0x8a4545cf, 0xe9f9f910, 0x04020206, 0xfe7f7f81, 0xa05050f0, 0x783c3c44, 0x259f9fba, 0x4ba8a8e3, 0xa25151f3, 0x5da3a3fe, 0x804040c0, 0x058f8f8a, 0x3f9292ad, 0x219d9dbc, 0x70383848, 0xf1f5f504, 0x63bcbcdf, 0x77b6b6c1, 0xafdada75, 0x42212163, 0x20101030, 0xe5ffff1a, 0xfdf3f30e, 0xbfd2d26d, 0x81cdcd4c, 0x180c0c14, 0x26131335, 0xc3ecec2f, 0xbe5f5fe1, 0x359797a2, 0x884444cc, 0x2e171739, 0x93c4c457, 0x55a7a7f2, 0xfc7e7e82, 0x7a3d3d47, 0xc86464ac, 0xba5d5de7, 0x3219192b, 0xe6737395, 0xc06060a0, 0x19818198, 0x9e4f4fd1, 0xa3dcdc7f, 0x44222266, 0x542a2a7e, 0x3b9090ab, 0x0b888883, 0x8c4646ca, 0xc7eeee29, 0x6bb8b8d3, 0x2814143c, 0xa7dede79, 0xbc5e5ee2, 0x160b0b1d, 0xaddbdb76, 0xdbe0e03b, 0x64323256, 0x743a3a4e, 0x140a0a1e, 0x924949db, 0x0c06060a, 0x4824246c, 0xb85c5ce4, 0x9fc2c25d, 0xbdd3d36e, 0x43acacef, 0xc46262a6, 0x399191a8, 0x319595a4, 0xd3e4e437, 0xf279798b, 0xd5e7e732, 0x8bc8c843, 0x6e373759, 0xda6d6db7, 0x018d8d8c, 0xb1d5d564, 0x9c4e4ed2, 0x49a9a9e0, 0xd86c6cb4, 0xac5656fa, 0xf3f4f407, 0xcfeaea25, 0xca6565af, 0xf47a7a8e, 0x47aeaee9, 0x10080818, 0x6fbabad5, 0xf0787888, 0x4a25256f, 0x5c2e2e72, 0x381c1c24, 0x57a6a6f1, 0x73b4b4c7, 0x97c6c651, 0xcbe8e823, 0xa1dddd7c, 0xe874749c, 0x3e1f1f21, 0x964b4bdd, 0x61bdbddc, 0x0d8b8b86, 0x0f8a8a85, 0xe0707090, 0x7c3e3e42, 0x71b5b5c4, 0xcc6666aa, 0x904848d8, 0x06030305, 0xf7f6f601, 0x1c0e0e12, 0xc26161a3, 0x6a35355f, 0xae5757f9, 0x69b9b9d0, 0x17868691, 0x99c1c158, 0x3a1d1d27, 0x279e9eb9, 0xd9e1e138, 0xebf8f813, 0x2b9898b3, 0x22111133, 0xd26969bb, 0xa9d9d970, 0x078e8e89, 0x339494a7, 0x2d9b9bb6, 0x3c1e1e22, 0x15878792, 0xc9e9e920, 0x87cece49, 0xaa5555ff, 0x50282878, 0xa5dfdf7a, 0x038c8c8f, 0x59a1a1f8, 0x09898980, 0x1a0d0d17, 0x65bfbfda, 0xd7e6e631, 0x844242c6, 0xd06868b8, 0x824141c3, 0x299999b0, 0x5a2d2d77, 0x1e0f0f11, 0x7bb0b0cb, 0xa85454fc, 0x6dbbbbd6, 0x2c16163a];\nconst T2 = [0xa5c66363, 0x84f87c7c, 0x99ee7777, 0x8df67b7b, 0x0dfff2f2, 0xbdd66b6b, 0xb1de6f6f, 0x5491c5c5, 0x50603030, 0x03020101, 0xa9ce6767, 0x7d562b2b, 0x19e7fefe, 0x62b5d7d7, 0xe64dabab, 0x9aec7676, 0x458fcaca, 0x9d1f8282, 0x4089c9c9, 0x87fa7d7d, 0x15effafa, 0xebb25959, 0xc98e4747, 0x0bfbf0f0, 0xec41adad, 0x67b3d4d4, 0xfd5fa2a2, 0xea45afaf, 0xbf239c9c, 0xf753a4a4, 0x96e47272, 0x5b9bc0c0, 0xc275b7b7, 0x1ce1fdfd, 0xae3d9393, 0x6a4c2626, 0x5a6c3636, 0x417e3f3f, 0x02f5f7f7, 0x4f83cccc, 0x5c683434, 0xf451a5a5, 0x34d1e5e5, 0x08f9f1f1, 0x93e27171, 0x73abd8d8, 0x53623131, 0x3f2a1515, 0x0c080404, 0x5295c7c7, 0x65462323, 0x5e9dc3c3, 0x28301818, 0xa1379696, 0x0f0a0505, 0xb52f9a9a, 0x090e0707, 0x36241212, 0x9b1b8080, 0x3ddfe2e2, 0x26cdebeb, 0x694e2727, 0xcd7fb2b2, 0x9fea7575, 0x1b120909, 0x9e1d8383, 0x74582c2c, 0x2e341a1a, 0x2d361b1b, 0xb2dc6e6e, 0xeeb45a5a, 0xfb5ba0a0, 0xf6a45252, 0x4d763b3b, 0x61b7d6d6, 0xce7db3b3, 0x7b522929, 0x3edde3e3, 0x715e2f2f, 0x97138484, 0xf5a65353, 0x68b9d1d1, 0x00000000, 0x2cc1eded, 0x60402020, 0x1fe3fcfc, 0xc879b1b1, 0xedb65b5b, 0xbed46a6a, 0x468dcbcb, 0xd967bebe, 0x4b723939, 0xde944a4a, 0xd4984c4c, 0xe8b05858, 0x4a85cfcf, 0x6bbbd0d0, 0x2ac5efef, 0xe54faaaa, 0x16edfbfb, 0xc5864343, 0xd79a4d4d, 0x55663333, 0x94118585, 0xcf8a4545, 0x10e9f9f9, 0x06040202, 0x81fe7f7f, 0xf0a05050, 0x44783c3c, 0xba259f9f, 0xe34ba8a8, 0xf3a25151, 0xfe5da3a3, 0xc0804040, 0x8a058f8f, 0xad3f9292, 0xbc219d9d, 0x48703838, 0x04f1f5f5, 0xdf63bcbc, 0xc177b6b6, 0x75afdada, 0x63422121, 0x30201010, 0x1ae5ffff, 0x0efdf3f3, 0x6dbfd2d2, 0x4c81cdcd, 0x14180c0c, 0x35261313, 0x2fc3ecec, 0xe1be5f5f, 0xa2359797, 0xcc884444, 0x392e1717, 0x5793c4c4, 0xf255a7a7, 0x82fc7e7e, 0x477a3d3d, 0xacc86464, 0xe7ba5d5d, 0x2b321919, 0x95e67373, 0xa0c06060, 0x98198181, 0xd19e4f4f, 0x7fa3dcdc, 0x66442222, 0x7e542a2a, 0xab3b9090, 0x830b8888, 0xca8c4646, 0x29c7eeee, 0xd36bb8b8, 0x3c281414, 0x79a7dede, 0xe2bc5e5e, 0x1d160b0b, 0x76addbdb, 0x3bdbe0e0, 0x56643232, 0x4e743a3a, 0x1e140a0a, 0xdb924949, 0x0a0c0606, 0x6c482424, 0xe4b85c5c, 0x5d9fc2c2, 0x6ebdd3d3, 0xef43acac, 0xa6c46262, 0xa8399191, 0xa4319595, 0x37d3e4e4, 0x8bf27979, 0x32d5e7e7, 0x438bc8c8, 0x596e3737, 0xb7da6d6d, 0x8c018d8d, 0x64b1d5d5, 0xd29c4e4e, 0xe049a9a9, 0xb4d86c6c, 0xfaac5656, 0x07f3f4f4, 0x25cfeaea, 0xafca6565, 0x8ef47a7a, 0xe947aeae, 0x18100808, 0xd56fbaba, 0x88f07878, 0x6f4a2525, 0x725c2e2e, 0x24381c1c, 0xf157a6a6, 0xc773b4b4, 0x5197c6c6, 0x23cbe8e8, 0x7ca1dddd, 0x9ce87474, 0x213e1f1f, 0xdd964b4b, 0xdc61bdbd, 0x860d8b8b, 0x850f8a8a, 0x90e07070, 0x427c3e3e, 0xc471b5b5, 0xaacc6666, 0xd8904848, 0x05060303, 0x01f7f6f6, 0x121c0e0e, 0xa3c26161, 0x5f6a3535, 0xf9ae5757, 0xd069b9b9, 0x91178686, 0x5899c1c1, 0x273a1d1d, 0xb9279e9e, 0x38d9e1e1, 0x13ebf8f8, 0xb32b9898, 0x33221111, 0xbbd26969, 0x70a9d9d9, 0x89078e8e, 0xa7339494, 0xb62d9b9b, 0x223c1e1e, 0x92158787, 0x20c9e9e9, 0x4987cece, 0xffaa5555, 0x78502828, 0x7aa5dfdf, 0x8f038c8c, 0xf859a1a1, 0x80098989, 0x171a0d0d, 0xda65bfbf, 0x31d7e6e6, 0xc6844242, 0xb8d06868, 0xc3824141, 0xb0299999, 0x775a2d2d, 0x111e0f0f, 0xcb7bb0b0, 0xfca85454, 0xd66dbbbb, 0x3a2c1616];\nconst T3 = [0x63a5c663, 0x7c84f87c, 0x7799ee77, 0x7b8df67b, 0xf20dfff2, 0x6bbdd66b, 0x6fb1de6f, 0xc55491c5, 0x30506030, 0x01030201, 0x67a9ce67, 0x2b7d562b, 0xfe19e7fe, 0xd762b5d7, 0xabe64dab, 0x769aec76, 0xca458fca, 0x829d1f82, 0xc94089c9, 0x7d87fa7d, 0xfa15effa, 0x59ebb259, 0x47c98e47, 0xf00bfbf0, 0xadec41ad, 0xd467b3d4, 0xa2fd5fa2, 0xafea45af, 0x9cbf239c, 0xa4f753a4, 0x7296e472, 0xc05b9bc0, 0xb7c275b7, 0xfd1ce1fd, 0x93ae3d93, 0x266a4c26, 0x365a6c36, 0x3f417e3f, 0xf702f5f7, 0xcc4f83cc, 0x345c6834, 0xa5f451a5, 0xe534d1e5, 0xf108f9f1, 0x7193e271, 0xd873abd8, 0x31536231, 0x153f2a15, 0x040c0804, 0xc75295c7, 0x23654623, 0xc35e9dc3, 0x18283018, 0x96a13796, 0x050f0a05, 0x9ab52f9a, 0x07090e07, 0x12362412, 0x809b1b80, 0xe23ddfe2, 0xeb26cdeb, 0x27694e27, 0xb2cd7fb2, 0x759fea75, 0x091b1209, 0x839e1d83, 0x2c74582c, 0x1a2e341a, 0x1b2d361b, 0x6eb2dc6e, 0x5aeeb45a, 0xa0fb5ba0, 0x52f6a452, 0x3b4d763b, 0xd661b7d6, 0xb3ce7db3, 0x297b5229, 0xe33edde3, 0x2f715e2f, 0x84971384, 0x53f5a653, 0xd168b9d1, 0x00000000, 0xed2cc1ed, 0x20604020, 0xfc1fe3fc, 0xb1c879b1, 0x5bedb65b, 0x6abed46a, 0xcb468dcb, 0xbed967be, 0x394b7239, 0x4ade944a, 0x4cd4984c, 0x58e8b058, 0xcf4a85cf, 0xd06bbbd0, 0xef2ac5ef, 0xaae54faa, 0xfb16edfb, 0x43c58643, 0x4dd79a4d, 0x33556633, 0x85941185, 0x45cf8a45, 0xf910e9f9, 0x02060402, 0x7f81fe7f, 0x50f0a050, 0x3c44783c, 0x9fba259f, 0xa8e34ba8, 0x51f3a251, 0xa3fe5da3, 0x40c08040, 0x8f8a058f, 0x92ad3f92, 0x9dbc219d, 0x38487038, 0xf504f1f5, 0xbcdf63bc, 0xb6c177b6, 0xda75afda, 0x21634221, 0x10302010, 0xff1ae5ff, 0xf30efdf3, 0xd26dbfd2, 0xcd4c81cd, 0x0c14180c, 0x13352613, 0xec2fc3ec, 0x5fe1be5f, 0x97a23597, 0x44cc8844, 0x17392e17, 0xc45793c4, 0xa7f255a7, 0x7e82fc7e, 0x3d477a3d, 0x64acc864, 0x5de7ba5d, 0x192b3219, 0x7395e673, 0x60a0c060, 0x81981981, 0x4fd19e4f, 0xdc7fa3dc, 0x22664422, 0x2a7e542a, 0x90ab3b90, 0x88830b88, 0x46ca8c46, 0xee29c7ee, 0xb8d36bb8, 0x143c2814, 0xde79a7de, 0x5ee2bc5e, 0x0b1d160b, 0xdb76addb, 0xe03bdbe0, 0x32566432, 0x3a4e743a, 0x0a1e140a, 0x49db9249, 0x060a0c06, 0x246c4824, 0x5ce4b85c, 0xc25d9fc2, 0xd36ebdd3, 0xacef43ac, 0x62a6c462, 0x91a83991, 0x95a43195, 0xe437d3e4, 0x798bf279, 0xe732d5e7, 0xc8438bc8, 0x37596e37, 0x6db7da6d, 0x8d8c018d, 0xd564b1d5, 0x4ed29c4e, 0xa9e049a9, 0x6cb4d86c, 0x56faac56, 0xf407f3f4, 0xea25cfea, 0x65afca65, 0x7a8ef47a, 0xaee947ae, 0x08181008, 0xbad56fba, 0x7888f078, 0x256f4a25, 0x2e725c2e, 0x1c24381c, 0xa6f157a6, 0xb4c773b4, 0xc65197c6, 0xe823cbe8, 0xdd7ca1dd, 0x749ce874, 0x1f213e1f, 0x4bdd964b, 0xbddc61bd, 0x8b860d8b, 0x8a850f8a, 0x7090e070, 0x3e427c3e, 0xb5c471b5, 0x66aacc66, 0x48d89048, 0x03050603, 0xf601f7f6, 0x0e121c0e, 0x61a3c261, 0x355f6a35, 0x57f9ae57, 0xb9d069b9, 0x86911786, 0xc15899c1, 0x1d273a1d, 0x9eb9279e, 0xe138d9e1, 0xf813ebf8, 0x98b32b98, 0x11332211, 0x69bbd269, 0xd970a9d9, 0x8e89078e, 0x94a73394, 0x9bb62d9b, 0x1e223c1e, 0x87921587, 0xe920c9e9, 0xce4987ce, 0x55ffaa55, 0x28785028, 0xdf7aa5df, 0x8c8f038c, 0xa1f859a1, 0x89800989, 0x0d171a0d, 0xbfda65bf, 0xe631d7e6, 0x42c68442, 0x68b8d068, 0x41c38241, 0x99b02999, 0x2d775a2d, 0x0f111e0f, 0xb0cb7bb0, 0x54fca854, 0xbbd66dbb, 0x163a2c16];\nconst T4 = [0x6363a5c6, 0x7c7c84f8, 0x777799ee, 0x7b7b8df6, 0xf2f20dff, 0x6b6bbdd6, 0x6f6fb1de, 0xc5c55491, 0x30305060, 0x01010302, 0x6767a9ce, 0x2b2b7d56, 0xfefe19e7, 0xd7d762b5, 0xababe64d, 0x76769aec, 0xcaca458f, 0x82829d1f, 0xc9c94089, 0x7d7d87fa, 0xfafa15ef, 0x5959ebb2, 0x4747c98e, 0xf0f00bfb, 0xadadec41, 0xd4d467b3, 0xa2a2fd5f, 0xafafea45, 0x9c9cbf23, 0xa4a4f753, 0x727296e4, 0xc0c05b9b, 0xb7b7c275, 0xfdfd1ce1, 0x9393ae3d, 0x26266a4c, 0x36365a6c, 0x3f3f417e, 0xf7f702f5, 0xcccc4f83, 0x34345c68, 0xa5a5f451, 0xe5e534d1, 0xf1f108f9, 0x717193e2, 0xd8d873ab, 0x31315362, 0x15153f2a, 0x04040c08, 0xc7c75295, 0x23236546, 0xc3c35e9d, 0x18182830, 0x9696a137, 0x05050f0a, 0x9a9ab52f, 0x0707090e, 0x12123624, 0x80809b1b, 0xe2e23ddf, 0xebeb26cd, 0x2727694e, 0xb2b2cd7f, 0x75759fea, 0x09091b12, 0x83839e1d, 0x2c2c7458, 0x1a1a2e34, 0x1b1b2d36, 0x6e6eb2dc, 0x5a5aeeb4, 0xa0a0fb5b, 0x5252f6a4, 0x3b3b4d76, 0xd6d661b7, 0xb3b3ce7d, 0x29297b52, 0xe3e33edd, 0x2f2f715e, 0x84849713, 0x5353f5a6, 0xd1d168b9, 0x00000000, 0xeded2cc1, 0x20206040, 0xfcfc1fe3, 0xb1b1c879, 0x5b5bedb6, 0x6a6abed4, 0xcbcb468d, 0xbebed967, 0x39394b72, 0x4a4ade94, 0x4c4cd498, 0x5858e8b0, 0xcfcf4a85, 0xd0d06bbb, 0xefef2ac5, 0xaaaae54f, 0xfbfb16ed, 0x4343c586, 0x4d4dd79a, 0x33335566, 0x85859411, 0x4545cf8a, 0xf9f910e9, 0x02020604, 0x7f7f81fe, 0x5050f0a0, 0x3c3c4478, 0x9f9fba25, 0xa8a8e34b, 0x5151f3a2, 0xa3a3fe5d, 0x4040c080, 0x8f8f8a05, 0x9292ad3f, 0x9d9dbc21, 0x38384870, 0xf5f504f1, 0xbcbcdf63, 0xb6b6c177, 0xdada75af, 0x21216342, 0x10103020, 0xffff1ae5, 0xf3f30efd, 0xd2d26dbf, 0xcdcd4c81, 0x0c0c1418, 0x13133526, 0xecec2fc3, 0x5f5fe1be, 0x9797a235, 0x4444cc88, 0x1717392e, 0xc4c45793, 0xa7a7f255, 0x7e7e82fc, 0x3d3d477a, 0x6464acc8, 0x5d5de7ba, 0x19192b32, 0x737395e6, 0x6060a0c0, 0x81819819, 0x4f4fd19e, 0xdcdc7fa3, 0x22226644, 0x2a2a7e54, 0x9090ab3b, 0x8888830b, 0x4646ca8c, 0xeeee29c7, 0xb8b8d36b, 0x14143c28, 0xdede79a7, 0x5e5ee2bc, 0x0b0b1d16, 0xdbdb76ad, 0xe0e03bdb, 0x32325664, 0x3a3a4e74, 0x0a0a1e14, 0x4949db92, 0x06060a0c, 0x24246c48, 0x5c5ce4b8, 0xc2c25d9f, 0xd3d36ebd, 0xacacef43, 0x6262a6c4, 0x9191a839, 0x9595a431, 0xe4e437d3, 0x79798bf2, 0xe7e732d5, 0xc8c8438b, 0x3737596e, 0x6d6db7da, 0x8d8d8c01, 0xd5d564b1, 0x4e4ed29c, 0xa9a9e049, 0x6c6cb4d8, 0x5656faac, 0xf4f407f3, 0xeaea25cf, 0x6565afca, 0x7a7a8ef4, 0xaeaee947, 0x08081810, 0xbabad56f, 0x787888f0, 0x25256f4a, 0x2e2e725c, 0x1c1c2438, 0xa6a6f157, 0xb4b4c773, 0xc6c65197, 0xe8e823cb, 0xdddd7ca1, 0x74749ce8, 0x1f1f213e, 0x4b4bdd96, 0xbdbddc61, 0x8b8b860d, 0x8a8a850f, 0x707090e0, 0x3e3e427c, 0xb5b5c471, 0x6666aacc, 0x4848d890, 0x03030506, 0xf6f601f7, 0x0e0e121c, 0x6161a3c2, 0x35355f6a, 0x5757f9ae, 0xb9b9d069, 0x86869117, 0xc1c15899, 0x1d1d273a, 0x9e9eb927, 0xe1e138d9, 0xf8f813eb, 0x9898b32b, 0x11113322, 0x6969bbd2, 0xd9d970a9, 0x8e8e8907, 0x9494a733, 0x9b9bb62d, 0x1e1e223c, 0x87879215, 0xe9e920c9, 0xcece4987, 0x5555ffaa, 0x28287850, 0xdfdf7aa5, 0x8c8c8f03, 0xa1a1f859, 0x89898009, 0x0d0d171a, 0xbfbfda65, 0xe6e631d7, 0x4242c684, 0x6868b8d0, 0x4141c382, 0x9999b029, 0x2d2d775a, 0x0f0f111e, 0xb0b0cb7b, 0x5454fca8, 0xbbbbd66d, 0x16163a2c];\n// Transformations for decryption\nconst T5 = [0x51f4a750, 0x7e416553, 0x1a17a4c3, 0x3a275e96, 0x3bab6bcb, 0x1f9d45f1, 0xacfa58ab, 0x4be30393, 0x2030fa55, 0xad766df6, 0x88cc7691, 0xf5024c25, 0x4fe5d7fc, 0xc52acbd7, 0x26354480, 0xb562a38f, 0xdeb15a49, 0x25ba1b67, 0x45ea0e98, 0x5dfec0e1, 0xc32f7502, 0x814cf012, 0x8d4697a3, 0x6bd3f9c6, 0x038f5fe7, 0x15929c95, 0xbf6d7aeb, 0x955259da, 0xd4be832d, 0x587421d3, 0x49e06929, 0x8ec9c844, 0x75c2896a, 0xf48e7978, 0x99583e6b, 0x27b971dd, 0xbee14fb6, 0xf088ad17, 0xc920ac66, 0x7dce3ab4, 0x63df4a18, 0xe51a3182, 0x97513360, 0x62537f45, 0xb16477e0, 0xbb6bae84, 0xfe81a01c, 0xf9082b94, 0x70486858, 0x8f45fd19, 0x94de6c87, 0x527bf8b7, 0xab73d323, 0x724b02e2, 0xe31f8f57, 0x6655ab2a, 0xb2eb2807, 0x2fb5c203, 0x86c57b9a, 0xd33708a5, 0x302887f2, 0x23bfa5b2, 0x02036aba, 0xed16825c, 0x8acf1c2b, 0xa779b492, 0xf307f2f0, 0x4e69e2a1, 0x65daf4cd, 0x0605bed5, 0xd134621f, 0xc4a6fe8a, 0x342e539d, 0xa2f355a0, 0x058ae132, 0xa4f6eb75, 0x0b83ec39, 0x4060efaa, 0x5e719f06, 0xbd6e1051, 0x3e218af9, 0x96dd063d, 0xdd3e05ae, 0x4de6bd46, 0x91548db5, 0x71c45d05, 0x0406d46f, 0x605015ff, 0x1998fb24, 0xd6bde997, 0x894043cc, 0x67d99e77, 0xb0e842bd, 0x07898b88, 0xe7195b38, 0x79c8eedb, 0xa17c0a47, 0x7c420fe9, 0xf8841ec9, 0x00000000, 0x09808683, 0x322bed48, 0x1e1170ac, 0x6c5a724e, 0xfd0efffb, 0x0f853856, 0x3daed51e, 0x362d3927, 0x0a0fd964, 0x685ca621, 0x9b5b54d1, 0x24362e3a, 0x0c0a67b1, 0x9357e70f, 0xb4ee96d2, 0x1b9b919e, 0x80c0c54f, 0x61dc20a2, 0x5a774b69, 0x1c121a16, 0xe293ba0a, 0xc0a02ae5, 0x3c22e043, 0x121b171d, 0x0e090d0b, 0xf28bc7ad, 0x2db6a8b9, 0x141ea9c8, 0x57f11985, 0xaf75074c, 0xee99ddbb, 0xa37f60fd, 0xf701269f, 0x5c72f5bc, 0x44663bc5, 0x5bfb7e34, 0x8b432976, 0xcb23c6dc, 0xb6edfc68, 0xb8e4f163, 0xd731dcca, 0x42638510, 0x13972240, 0x84c61120, 0x854a247d, 0xd2bb3df8, 0xaef93211, 0xc729a16d, 0x1d9e2f4b, 0xdcb230f3, 0x0d8652ec, 0x77c1e3d0, 0x2bb3166c, 0xa970b999, 0x119448fa, 0x47e96422, 0xa8fc8cc4, 0xa0f03f1a, 0x567d2cd8, 0x223390ef, 0x87494ec7, 0xd938d1c1, 0x8ccaa2fe, 0x98d40b36, 0xa6f581cf, 0xa57ade28, 0xdab78e26, 0x3fadbfa4, 0x2c3a9de4, 0x5078920d, 0x6a5fcc9b, 0x547e4662, 0xf68d13c2, 0x90d8b8e8, 0x2e39f75e, 0x82c3aff5, 0x9f5d80be, 0x69d0937c, 0x6fd52da9, 0xcf2512b3, 0xc8ac993b, 0x10187da7, 0xe89c636e, 0xdb3bbb7b, 0xcd267809, 0x6e5918f4, 0xec9ab701, 0x834f9aa8, 0xe6956e65, 0xaaffe67e, 0x21bccf08, 0xef15e8e6, 0xbae79bd9, 0x4a6f36ce, 0xea9f09d4, 0x29b07cd6, 0x31a4b2af, 0x2a3f2331, 0xc6a59430, 0x35a266c0, 0x744ebc37, 0xfc82caa6, 0xe090d0b0, 0x33a7d815, 0xf104984a, 0x41ecdaf7, 0x7fcd500e, 0x1791f62f, 0x764dd68d, 0x43efb04d, 0xccaa4d54, 0xe49604df, 0x9ed1b5e3, 0x4c6a881b, 0xc12c1fb8, 0x4665517f, 0x9d5eea04, 0x018c355d, 0xfa877473, 0xfb0b412e, 0xb3671d5a, 0x92dbd252, 0xe9105633, 0x6dd64713, 0x9ad7618c, 0x37a10c7a, 0x59f8148e, 0xeb133c89, 0xcea927ee, 0xb761c935, 0xe11ce5ed, 0x7a47b13c, 0x9cd2df59, 0x55f2733f, 0x1814ce79, 0x73c737bf, 0x53f7cdea, 0x5ffdaa5b, 0xdf3d6f14, 0x7844db86, 0xcaaff381, 0xb968c43e, 0x3824342c, 0xc2a3405f, 0x161dc372, 0xbce2250c, 0x283c498b, 0xff0d9541, 0x39a80171, 0x080cb3de, 0xd8b4e49c, 0x6456c190, 0x7bcb8461, 0xd532b670, 0x486c5c74, 0xd0b85742];\nconst T6 = [0x5051f4a7, 0x537e4165, 0xc31a17a4, 0x963a275e, 0xcb3bab6b, 0xf11f9d45, 0xabacfa58, 0x934be303, 0x552030fa, 0xf6ad766d, 0x9188cc76, 0x25f5024c, 0xfc4fe5d7, 0xd7c52acb, 0x80263544, 0x8fb562a3, 0x49deb15a, 0x6725ba1b, 0x9845ea0e, 0xe15dfec0, 0x02c32f75, 0x12814cf0, 0xa38d4697, 0xc66bd3f9, 0xe7038f5f, 0x9515929c, 0xebbf6d7a, 0xda955259, 0x2dd4be83, 0xd3587421, 0x2949e069, 0x448ec9c8, 0x6a75c289, 0x78f48e79, 0x6b99583e, 0xdd27b971, 0xb6bee14f, 0x17f088ad, 0x66c920ac, 0xb47dce3a, 0x1863df4a, 0x82e51a31, 0x60975133, 0x4562537f, 0xe0b16477, 0x84bb6bae, 0x1cfe81a0, 0x94f9082b, 0x58704868, 0x198f45fd, 0x8794de6c, 0xb7527bf8, 0x23ab73d3, 0xe2724b02, 0x57e31f8f, 0x2a6655ab, 0x07b2eb28, 0x032fb5c2, 0x9a86c57b, 0xa5d33708, 0xf2302887, 0xb223bfa5, 0xba02036a, 0x5ced1682, 0x2b8acf1c, 0x92a779b4, 0xf0f307f2, 0xa14e69e2, 0xcd65daf4, 0xd50605be, 0x1fd13462, 0x8ac4a6fe, 0x9d342e53, 0xa0a2f355, 0x32058ae1, 0x75a4f6eb, 0x390b83ec, 0xaa4060ef, 0x065e719f, 0x51bd6e10, 0xf93e218a, 0x3d96dd06, 0xaedd3e05, 0x464de6bd, 0xb591548d, 0x0571c45d, 0x6f0406d4, 0xff605015, 0x241998fb, 0x97d6bde9, 0xcc894043, 0x7767d99e, 0xbdb0e842, 0x8807898b, 0x38e7195b, 0xdb79c8ee, 0x47a17c0a, 0xe97c420f, 0xc9f8841e, 0x00000000, 0x83098086, 0x48322bed, 0xac1e1170, 0x4e6c5a72, 0xfbfd0eff, 0x560f8538, 0x1e3daed5, 0x27362d39, 0x640a0fd9, 0x21685ca6, 0xd19b5b54, 0x3a24362e, 0xb10c0a67, 0x0f9357e7, 0xd2b4ee96, 0x9e1b9b91, 0x4f80c0c5, 0xa261dc20, 0x695a774b, 0x161c121a, 0x0ae293ba, 0xe5c0a02a, 0x433c22e0, 0x1d121b17, 0x0b0e090d, 0xadf28bc7, 0xb92db6a8, 0xc8141ea9, 0x8557f119, 0x4caf7507, 0xbbee99dd, 0xfda37f60, 0x9ff70126, 0xbc5c72f5, 0xc544663b, 0x345bfb7e, 0x768b4329, 0xdccb23c6, 0x68b6edfc, 0x63b8e4f1, 0xcad731dc, 0x10426385, 0x40139722, 0x2084c611, 0x7d854a24, 0xf8d2bb3d, 0x11aef932, 0x6dc729a1, 0x4b1d9e2f, 0xf3dcb230, 0xec0d8652, 0xd077c1e3, 0x6c2bb316, 0x99a970b9, 0xfa119448, 0x2247e964, 0xc4a8fc8c, 0x1aa0f03f, 0xd8567d2c, 0xef223390, 0xc787494e, 0xc1d938d1, 0xfe8ccaa2, 0x3698d40b, 0xcfa6f581, 0x28a57ade, 0x26dab78e, 0xa43fadbf, 0xe42c3a9d, 0x0d507892, 0x9b6a5fcc, 0x62547e46, 0xc2f68d13, 0xe890d8b8, 0x5e2e39f7, 0xf582c3af, 0xbe9f5d80, 0x7c69d093, 0xa96fd52d, 0xb3cf2512, 0x3bc8ac99, 0xa710187d, 0x6ee89c63, 0x7bdb3bbb, 0x09cd2678, 0xf46e5918, 0x01ec9ab7, 0xa8834f9a, 0x65e6956e, 0x7eaaffe6, 0x0821bccf, 0xe6ef15e8, 0xd9bae79b, 0xce4a6f36, 0xd4ea9f09, 0xd629b07c, 0xaf31a4b2, 0x312a3f23, 0x30c6a594, 0xc035a266, 0x37744ebc, 0xa6fc82ca, 0xb0e090d0, 0x1533a7d8, 0x4af10498, 0xf741ecda, 0x0e7fcd50, 0x2f1791f6, 0x8d764dd6, 0x4d43efb0, 0x54ccaa4d, 0xdfe49604, 0xe39ed1b5, 0x1b4c6a88, 0xb8c12c1f, 0x7f466551, 0x049d5eea, 0x5d018c35, 0x73fa8774, 0x2efb0b41, 0x5ab3671d, 0x5292dbd2, 0x33e91056, 0x136dd647, 0x8c9ad761, 0x7a37a10c, 0x8e59f814, 0x89eb133c, 0xeecea927, 0x35b761c9, 0xede11ce5, 0x3c7a47b1, 0x599cd2df, 0x3f55f273, 0x791814ce, 0xbf73c737, 0xea53f7cd, 0x5b5ffdaa, 0x14df3d6f, 0x867844db, 0x81caaff3, 0x3eb968c4, 0x2c382434, 0x5fc2a340, 0x72161dc3, 0x0cbce225, 0x8b283c49, 0x41ff0d95, 0x7139a801, 0xde080cb3, 0x9cd8b4e4, 0x906456c1, 0x617bcb84, 0x70d532b6, 0x74486c5c, 0x42d0b857];\nconst T7 = [0xa75051f4, 0x65537e41, 0xa4c31a17, 0x5e963a27, 0x6bcb3bab, 0x45f11f9d, 0x58abacfa, 0x03934be3, 0xfa552030, 0x6df6ad76, 0x769188cc, 0x4c25f502, 0xd7fc4fe5, 0xcbd7c52a, 0x44802635, 0xa38fb562, 0x5a49deb1, 0x1b6725ba, 0x0e9845ea, 0xc0e15dfe, 0x7502c32f, 0xf012814c, 0x97a38d46, 0xf9c66bd3, 0x5fe7038f, 0x9c951592, 0x7aebbf6d, 0x59da9552, 0x832dd4be, 0x21d35874, 0x692949e0, 0xc8448ec9, 0x896a75c2, 0x7978f48e, 0x3e6b9958, 0x71dd27b9, 0x4fb6bee1, 0xad17f088, 0xac66c920, 0x3ab47dce, 0x4a1863df, 0x3182e51a, 0x33609751, 0x7f456253, 0x77e0b164, 0xae84bb6b, 0xa01cfe81, 0x2b94f908, 0x68587048, 0xfd198f45, 0x6c8794de, 0xf8b7527b, 0xd323ab73, 0x02e2724b, 0x8f57e31f, 0xab2a6655, 0x2807b2eb, 0xc2032fb5, 0x7b9a86c5, 0x08a5d337, 0x87f23028, 0xa5b223bf, 0x6aba0203, 0x825ced16, 0x1c2b8acf, 0xb492a779, 0xf2f0f307, 0xe2a14e69, 0xf4cd65da, 0xbed50605, 0x621fd134, 0xfe8ac4a6, 0x539d342e, 0x55a0a2f3, 0xe132058a, 0xeb75a4f6, 0xec390b83, 0xefaa4060, 0x9f065e71, 0x1051bd6e, 0x8af93e21, 0x063d96dd, 0x05aedd3e, 0xbd464de6, 0x8db59154, 0x5d0571c4, 0xd46f0406, 0x15ff6050, 0xfb241998, 0xe997d6bd, 0x43cc8940, 0x9e7767d9, 0x42bdb0e8, 0x8b880789, 0x5b38e719, 0xeedb79c8, 0x0a47a17c, 0x0fe97c42, 0x1ec9f884, 0x00000000, 0x86830980, 0xed48322b, 0x70ac1e11, 0x724e6c5a, 0xfffbfd0e, 0x38560f85, 0xd51e3dae, 0x3927362d, 0xd9640a0f, 0xa621685c, 0x54d19b5b, 0x2e3a2436, 0x67b10c0a, 0xe70f9357, 0x96d2b4ee, 0x919e1b9b, 0xc54f80c0, 0x20a261dc, 0x4b695a77, 0x1a161c12, 0xba0ae293, 0x2ae5c0a0, 0xe0433c22, 0x171d121b, 0x0d0b0e09, 0xc7adf28b, 0xa8b92db6, 0xa9c8141e, 0x198557f1, 0x074caf75, 0xddbbee99, 0x60fda37f, 0x269ff701, 0xf5bc5c72, 0x3bc54466, 0x7e345bfb, 0x29768b43, 0xc6dccb23, 0xfc68b6ed, 0xf163b8e4, 0xdccad731, 0x85104263, 0x22401397, 0x112084c6, 0x247d854a, 0x3df8d2bb, 0x3211aef9, 0xa16dc729, 0x2f4b1d9e, 0x30f3dcb2, 0x52ec0d86, 0xe3d077c1, 0x166c2bb3, 0xb999a970, 0x48fa1194, 0x642247e9, 0x8cc4a8fc, 0x3f1aa0f0, 0x2cd8567d, 0x90ef2233, 0x4ec78749, 0xd1c1d938, 0xa2fe8cca, 0x0b3698d4, 0x81cfa6f5, 0xde28a57a, 0x8e26dab7, 0xbfa43fad, 0x9de42c3a, 0x920d5078, 0xcc9b6a5f, 0x4662547e, 0x13c2f68d, 0xb8e890d8, 0xf75e2e39, 0xaff582c3, 0x80be9f5d, 0x937c69d0, 0x2da96fd5, 0x12b3cf25, 0x993bc8ac, 0x7da71018, 0x636ee89c, 0xbb7bdb3b, 0x7809cd26, 0x18f46e59, 0xb701ec9a, 0x9aa8834f, 0x6e65e695, 0xe67eaaff, 0xcf0821bc, 0xe8e6ef15, 0x9bd9bae7, 0x36ce4a6f, 0x09d4ea9f, 0x7cd629b0, 0xb2af31a4, 0x23312a3f, 0x9430c6a5, 0x66c035a2, 0xbc37744e, 0xcaa6fc82, 0xd0b0e090, 0xd81533a7, 0x984af104, 0xdaf741ec, 0x500e7fcd, 0xf62f1791, 0xd68d764d, 0xb04d43ef, 0x4d54ccaa, 0x04dfe496, 0xb5e39ed1, 0x881b4c6a, 0x1fb8c12c, 0x517f4665, 0xea049d5e, 0x355d018c, 0x7473fa87, 0x412efb0b, 0x1d5ab367, 0xd25292db, 0x5633e910, 0x47136dd6, 0x618c9ad7, 0x0c7a37a1, 0x148e59f8, 0x3c89eb13, 0x27eecea9, 0xc935b761, 0xe5ede11c, 0xb13c7a47, 0xdf599cd2, 0x733f55f2, 0xce791814, 0x37bf73c7, 0xcdea53f7, 0xaa5b5ffd, 0x6f14df3d, 0xdb867844, 0xf381caaf, 0xc43eb968, 0x342c3824, 0x405fc2a3, 0xc372161d, 0x250cbce2, 0x498b283c, 0x9541ff0d, 0x017139a8, 0xb3de080c, 0xe49cd8b4, 0xc1906456, 0x84617bcb, 0xb670d532, 0x5c74486c, 0x5742d0b8];\nconst T8 = [0xf4a75051, 0x4165537e, 0x17a4c31a, 0x275e963a, 0xab6bcb3b, 0x9d45f11f, 0xfa58abac, 0xe303934b, 0x30fa5520, 0x766df6ad, 0xcc769188, 0x024c25f5, 0xe5d7fc4f, 0x2acbd7c5, 0x35448026, 0x62a38fb5, 0xb15a49de, 0xba1b6725, 0xea0e9845, 0xfec0e15d, 0x2f7502c3, 0x4cf01281, 0x4697a38d, 0xd3f9c66b, 0x8f5fe703, 0x929c9515, 0x6d7aebbf, 0x5259da95, 0xbe832dd4, 0x7421d358, 0xe0692949, 0xc9c8448e, 0xc2896a75, 0x8e7978f4, 0x583e6b99, 0xb971dd27, 0xe14fb6be, 0x88ad17f0, 0x20ac66c9, 0xce3ab47d, 0xdf4a1863, 0x1a3182e5, 0x51336097, 0x537f4562, 0x6477e0b1, 0x6bae84bb, 0x81a01cfe, 0x082b94f9, 0x48685870, 0x45fd198f, 0xde6c8794, 0x7bf8b752, 0x73d323ab, 0x4b02e272, 0x1f8f57e3, 0x55ab2a66, 0xeb2807b2, 0xb5c2032f, 0xc57b9a86, 0x3708a5d3, 0x2887f230, 0xbfa5b223, 0x036aba02, 0x16825ced, 0xcf1c2b8a, 0x79b492a7, 0x07f2f0f3, 0x69e2a14e, 0xdaf4cd65, 0x05bed506, 0x34621fd1, 0xa6fe8ac4, 0x2e539d34, 0xf355a0a2, 0x8ae13205, 0xf6eb75a4, 0x83ec390b, 0x60efaa40, 0x719f065e, 0x6e1051bd, 0x218af93e, 0xdd063d96, 0x3e05aedd, 0xe6bd464d, 0x548db591, 0xc45d0571, 0x06d46f04, 0x5015ff60, 0x98fb2419, 0xbde997d6, 0x4043cc89, 0xd99e7767, 0xe842bdb0, 0x898b8807, 0x195b38e7, 0xc8eedb79, 0x7c0a47a1, 0x420fe97c, 0x841ec9f8, 0x00000000, 0x80868309, 0x2bed4832, 0x1170ac1e, 0x5a724e6c, 0x0efffbfd, 0x8538560f, 0xaed51e3d, 0x2d392736, 0x0fd9640a, 0x5ca62168, 0x5b54d19b, 0x362e3a24, 0x0a67b10c, 0x57e70f93, 0xee96d2b4, 0x9b919e1b, 0xc0c54f80, 0xdc20a261, 0x774b695a, 0x121a161c, 0x93ba0ae2, 0xa02ae5c0, 0x22e0433c, 0x1b171d12, 0x090d0b0e, 0x8bc7adf2, 0xb6a8b92d, 0x1ea9c814, 0xf1198557, 0x75074caf, 0x99ddbbee, 0x7f60fda3, 0x01269ff7, 0x72f5bc5c, 0x663bc544, 0xfb7e345b, 0x4329768b, 0x23c6dccb, 0xedfc68b6, 0xe4f163b8, 0x31dccad7, 0x63851042, 0x97224013, 0xc6112084, 0x4a247d85, 0xbb3df8d2, 0xf93211ae, 0x29a16dc7, 0x9e2f4b1d, 0xb230f3dc, 0x8652ec0d, 0xc1e3d077, 0xb3166c2b, 0x70b999a9, 0x9448fa11, 0xe9642247, 0xfc8cc4a8, 0xf03f1aa0, 0x7d2cd856, 0x3390ef22, 0x494ec787, 0x38d1c1d9, 0xcaa2fe8c, 0xd40b3698, 0xf581cfa6, 0x7ade28a5, 0xb78e26da, 0xadbfa43f, 0x3a9de42c, 0x78920d50, 0x5fcc9b6a, 0x7e466254, 0x8d13c2f6, 0xd8b8e890, 0x39f75e2e, 0xc3aff582, 0x5d80be9f, 0xd0937c69, 0xd52da96f, 0x2512b3cf, 0xac993bc8, 0x187da710, 0x9c636ee8, 0x3bbb7bdb, 0x267809cd, 0x5918f46e, 0x9ab701ec, 0x4f9aa883, 0x956e65e6, 0xffe67eaa, 0xbccf0821, 0x15e8e6ef, 0xe79bd9ba, 0x6f36ce4a, 0x9f09d4ea, 0xb07cd629, 0xa4b2af31, 0x3f23312a, 0xa59430c6, 0xa266c035, 0x4ebc3774, 0x82caa6fc, 0x90d0b0e0, 0xa7d81533, 0x04984af1, 0xecdaf741, 0xcd500e7f, 0x91f62f17, 0x4dd68d76, 0xefb04d43, 0xaa4d54cc, 0x9604dfe4, 0xd1b5e39e, 0x6a881b4c, 0x2c1fb8c1, 0x65517f46, 0x5eea049d, 0x8c355d01, 0x877473fa, 0x0b412efb, 0x671d5ab3, 0xdbd25292, 0x105633e9, 0xd647136d, 0xd7618c9a, 0xa10c7a37, 0xf8148e59, 0x133c89eb, 0xa927eece, 0x61c935b7, 0x1ce5ede1, 0x47b13c7a, 0xd2df599c, 0xf2733f55, 0x14ce7918, 0xc737bf73, 0xf7cdea53, 0xfdaa5b5f, 0x3d6f14df, 0x44db8678, 0xaff381ca, 0x68c43eb9, 0x24342c38, 0xa3405fc2, 0x1dc37216, 0xe2250cbc, 0x3c498b28, 0x0d9541ff, 0xa8017139, 0x0cb3de08, 0xb4e49cd8, 0x56c19064, 0xcb84617b, 0x32b670d5, 0x6c5c7448, 0xb85742d0];\n// Transformations for decryption key expansion\nconst U1 = [0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927, 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45, 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb, 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381, 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf, 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66, 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28, 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012, 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec, 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e, 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd, 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7, 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89, 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b, 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815, 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f, 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa, 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8, 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36, 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c, 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742, 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea, 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4, 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e, 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360, 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502, 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87, 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd, 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3, 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621, 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f, 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55, 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26, 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844, 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba, 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480, 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce, 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67, 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929, 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713, 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed, 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f, 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3];\nconst U2 = [0x00000000, 0x0b0e090d, 0x161c121a, 0x1d121b17, 0x2c382434, 0x27362d39, 0x3a24362e, 0x312a3f23, 0x58704868, 0x537e4165, 0x4e6c5a72, 0x4562537f, 0x74486c5c, 0x7f466551, 0x62547e46, 0x695a774b, 0xb0e090d0, 0xbbee99dd, 0xa6fc82ca, 0xadf28bc7, 0x9cd8b4e4, 0x97d6bde9, 0x8ac4a6fe, 0x81caaff3, 0xe890d8b8, 0xe39ed1b5, 0xfe8ccaa2, 0xf582c3af, 0xc4a8fc8c, 0xcfa6f581, 0xd2b4ee96, 0xd9bae79b, 0x7bdb3bbb, 0x70d532b6, 0x6dc729a1, 0x66c920ac, 0x57e31f8f, 0x5ced1682, 0x41ff0d95, 0x4af10498, 0x23ab73d3, 0x28a57ade, 0x35b761c9, 0x3eb968c4, 0x0f9357e7, 0x049d5eea, 0x198f45fd, 0x12814cf0, 0xcb3bab6b, 0xc035a266, 0xdd27b971, 0xd629b07c, 0xe7038f5f, 0xec0d8652, 0xf11f9d45, 0xfa119448, 0x934be303, 0x9845ea0e, 0x8557f119, 0x8e59f814, 0xbf73c737, 0xb47dce3a, 0xa96fd52d, 0xa261dc20, 0xf6ad766d, 0xfda37f60, 0xe0b16477, 0xebbf6d7a, 0xda955259, 0xd19b5b54, 0xcc894043, 0xc787494e, 0xaedd3e05, 0xa5d33708, 0xb8c12c1f, 0xb3cf2512, 0x82e51a31, 0x89eb133c, 0x94f9082b, 0x9ff70126, 0x464de6bd, 0x4d43efb0, 0x5051f4a7, 0x5b5ffdaa, 0x6a75c289, 0x617bcb84, 0x7c69d093, 0x7767d99e, 0x1e3daed5, 0x1533a7d8, 0x0821bccf, 0x032fb5c2, 0x32058ae1, 0x390b83ec, 0x241998fb, 0x2f1791f6, 0x8d764dd6, 0x867844db, 0x9b6a5fcc, 0x906456c1, 0xa14e69e2, 0xaa4060ef, 0xb7527bf8, 0xbc5c72f5, 0xd50605be, 0xde080cb3, 0xc31a17a4, 0xc8141ea9, 0xf93e218a, 0xf2302887, 0xef223390, 0xe42c3a9d, 0x3d96dd06, 0x3698d40b, 0x2b8acf1c, 0x2084c611, 0x11aef932, 0x1aa0f03f, 0x07b2eb28, 0x0cbce225, 0x65e6956e, 0x6ee89c63, 0x73fa8774, 0x78f48e79, 0x49deb15a, 0x42d0b857, 0x5fc2a340, 0x54ccaa4d, 0xf741ecda, 0xfc4fe5d7, 0xe15dfec0, 0xea53f7cd, 0xdb79c8ee, 0xd077c1e3, 0xcd65daf4, 0xc66bd3f9, 0xaf31a4b2, 0xa43fadbf, 0xb92db6a8, 0xb223bfa5, 0x83098086, 0x8807898b, 0x9515929c, 0x9e1b9b91, 0x47a17c0a, 0x4caf7507, 0x51bd6e10, 0x5ab3671d, 0x6b99583e, 0x60975133, 0x7d854a24, 0x768b4329, 0x1fd13462, 0x14df3d6f, 0x09cd2678, 0x02c32f75, 0x33e91056, 0x38e7195b, 0x25f5024c, 0x2efb0b41, 0x8c9ad761, 0x8794de6c, 0x9a86c57b, 0x9188cc76, 0xa0a2f355, 0xabacfa58, 0xb6bee14f, 0xbdb0e842, 0xd4ea9f09, 0xdfe49604, 0xc2f68d13, 0xc9f8841e, 0xf8d2bb3d, 0xf3dcb230, 0xeecea927, 0xe5c0a02a, 0x3c7a47b1, 0x37744ebc, 0x2a6655ab, 0x21685ca6, 0x10426385, 0x1b4c6a88, 0x065e719f, 0x0d507892, 0x640a0fd9, 0x6f0406d4, 0x72161dc3, 0x791814ce, 0x48322bed, 0x433c22e0, 0x5e2e39f7, 0x552030fa, 0x01ec9ab7, 0x0ae293ba, 0x17f088ad, 0x1cfe81a0, 0x2dd4be83, 0x26dab78e, 0x3bc8ac99, 0x30c6a594, 0x599cd2df, 0x5292dbd2, 0x4f80c0c5, 0x448ec9c8, 0x75a4f6eb, 0x7eaaffe6, 0x63b8e4f1, 0x68b6edfc, 0xb10c0a67, 0xba02036a, 0xa710187d, 0xac1e1170, 0x9d342e53, 0x963a275e, 0x8b283c49, 0x80263544, 0xe97c420f, 0xe2724b02, 0xff605015, 0xf46e5918, 0xc544663b, 0xce4a6f36, 0xd3587421, 0xd8567d2c, 0x7a37a10c, 0x7139a801, 0x6c2bb316, 0x6725ba1b, 0x560f8538, 0x5d018c35, 0x40139722, 0x4b1d9e2f, 0x2247e964, 0x2949e069, 0x345bfb7e, 0x3f55f273, 0x0e7fcd50, 0x0571c45d, 0x1863df4a, 0x136dd647, 0xcad731dc, 0xc1d938d1, 0xdccb23c6, 0xd7c52acb, 0xe6ef15e8, 0xede11ce5, 0xf0f307f2, 0xfbfd0eff, 0x92a779b4, 0x99a970b9, 0x84bb6bae, 0x8fb562a3, 0xbe9f5d80, 0xb591548d, 0xa8834f9a, 0xa38d4697];\nconst U3 = [0x00000000, 0x0d0b0e09, 0x1a161c12, 0x171d121b, 0x342c3824, 0x3927362d, 0x2e3a2436, 0x23312a3f, 0x68587048, 0x65537e41, 0x724e6c5a, 0x7f456253, 0x5c74486c, 0x517f4665, 0x4662547e, 0x4b695a77, 0xd0b0e090, 0xddbbee99, 0xcaa6fc82, 0xc7adf28b, 0xe49cd8b4, 0xe997d6bd, 0xfe8ac4a6, 0xf381caaf, 0xb8e890d8, 0xb5e39ed1, 0xa2fe8cca, 0xaff582c3, 0x8cc4a8fc, 0x81cfa6f5, 0x96d2b4ee, 0x9bd9bae7, 0xbb7bdb3b, 0xb670d532, 0xa16dc729, 0xac66c920, 0x8f57e31f, 0x825ced16, 0x9541ff0d, 0x984af104, 0xd323ab73, 0xde28a57a, 0xc935b761, 0xc43eb968, 0xe70f9357, 0xea049d5e, 0xfd198f45, 0xf012814c, 0x6bcb3bab, 0x66c035a2, 0x71dd27b9, 0x7cd629b0, 0x5fe7038f, 0x52ec0d86, 0x45f11f9d, 0x48fa1194, 0x03934be3, 0x0e9845ea, 0x198557f1, 0x148e59f8, 0x37bf73c7, 0x3ab47dce, 0x2da96fd5, 0x20a261dc, 0x6df6ad76, 0x60fda37f, 0x77e0b164, 0x7aebbf6d, 0x59da9552, 0x54d19b5b, 0x43cc8940, 0x4ec78749, 0x05aedd3e, 0x08a5d337, 0x1fb8c12c, 0x12b3cf25, 0x3182e51a, 0x3c89eb13, 0x2b94f908, 0x269ff701, 0xbd464de6, 0xb04d43ef, 0xa75051f4, 0xaa5b5ffd, 0x896a75c2, 0x84617bcb, 0x937c69d0, 0x9e7767d9, 0xd51e3dae, 0xd81533a7, 0xcf0821bc, 0xc2032fb5, 0xe132058a, 0xec390b83, 0xfb241998, 0xf62f1791, 0xd68d764d, 0xdb867844, 0xcc9b6a5f, 0xc1906456, 0xe2a14e69, 0xefaa4060, 0xf8b7527b, 0xf5bc5c72, 0xbed50605, 0xb3de080c, 0xa4c31a17, 0xa9c8141e, 0x8af93e21, 0x87f23028, 0x90ef2233, 0x9de42c3a, 0x063d96dd, 0x0b3698d4, 0x1c2b8acf, 0x112084c6, 0x3211aef9, 0x3f1aa0f0, 0x2807b2eb, 0x250cbce2, 0x6e65e695, 0x636ee89c, 0x7473fa87, 0x7978f48e, 0x5a49deb1, 0x5742d0b8, 0x405fc2a3, 0x4d54ccaa, 0xdaf741ec, 0xd7fc4fe5, 0xc0e15dfe, 0xcdea53f7, 0xeedb79c8, 0xe3d077c1, 0xf4cd65da, 0xf9c66bd3, 0xb2af31a4, 0xbfa43fad, 0xa8b92db6, 0xa5b223bf, 0x86830980, 0x8b880789, 0x9c951592, 0x919e1b9b, 0x0a47a17c, 0x074caf75, 0x1051bd6e, 0x1d5ab367, 0x3e6b9958, 0x33609751, 0x247d854a, 0x29768b43, 0x621fd134, 0x6f14df3d, 0x7809cd26, 0x7502c32f, 0x5633e910, 0x5b38e719, 0x4c25f502, 0x412efb0b, 0x618c9ad7, 0x6c8794de, 0x7b9a86c5, 0x769188cc, 0x55a0a2f3, 0x58abacfa, 0x4fb6bee1, 0x42bdb0e8, 0x09d4ea9f, 0x04dfe496, 0x13c2f68d, 0x1ec9f884, 0x3df8d2bb, 0x30f3dcb2, 0x27eecea9, 0x2ae5c0a0, 0xb13c7a47, 0xbc37744e, 0xab2a6655, 0xa621685c, 0x85104263, 0x881b4c6a, 0x9f065e71, 0x920d5078, 0xd9640a0f, 0xd46f0406, 0xc372161d, 0xce791814, 0xed48322b, 0xe0433c22, 0xf75e2e39, 0xfa552030, 0xb701ec9a, 0xba0ae293, 0xad17f088, 0xa01cfe81, 0x832dd4be, 0x8e26dab7, 0x993bc8ac, 0x9430c6a5, 0xdf599cd2, 0xd25292db, 0xc54f80c0, 0xc8448ec9, 0xeb75a4f6, 0xe67eaaff, 0xf163b8e4, 0xfc68b6ed, 0x67b10c0a, 0x6aba0203, 0x7da71018, 0x70ac1e11, 0x539d342e, 0x5e963a27, 0x498b283c, 0x44802635, 0x0fe97c42, 0x02e2724b, 0x15ff6050, 0x18f46e59, 0x3bc54466, 0x36ce4a6f, 0x21d35874, 0x2cd8567d, 0x0c7a37a1, 0x017139a8, 0x166c2bb3, 0x1b6725ba, 0x38560f85, 0x355d018c, 0x22401397, 0x2f4b1d9e, 0x642247e9, 0x692949e0, 0x7e345bfb, 0x733f55f2, 0x500e7fcd, 0x5d0571c4, 0x4a1863df, 0x47136dd6, 0xdccad731, 0xd1c1d938, 0xc6dccb23, 0xcbd7c52a, 0xe8e6ef15, 0xe5ede11c, 0xf2f0f307, 0xfffbfd0e, 0xb492a779, 0xb999a970, 0xae84bb6b, 0xa38fb562, 0x80be9f5d, 0x8db59154, 0x9aa8834f, 0x97a38d46];\nconst U4 = [0x00000000, 0x090d0b0e, 0x121a161c, 0x1b171d12, 0x24342c38, 0x2d392736, 0x362e3a24, 0x3f23312a, 0x48685870, 0x4165537e, 0x5a724e6c, 0x537f4562, 0x6c5c7448, 0x65517f46, 0x7e466254, 0x774b695a, 0x90d0b0e0, 0x99ddbbee, 0x82caa6fc, 0x8bc7adf2, 0xb4e49cd8, 0xbde997d6, 0xa6fe8ac4, 0xaff381ca, 0xd8b8e890, 0xd1b5e39e, 0xcaa2fe8c, 0xc3aff582, 0xfc8cc4a8, 0xf581cfa6, 0xee96d2b4, 0xe79bd9ba, 0x3bbb7bdb, 0x32b670d5, 0x29a16dc7, 0x20ac66c9, 0x1f8f57e3, 0x16825ced, 0x0d9541ff, 0x04984af1, 0x73d323ab, 0x7ade28a5, 0x61c935b7, 0x68c43eb9, 0x57e70f93, 0x5eea049d, 0x45fd198f, 0x4cf01281, 0xab6bcb3b, 0xa266c035, 0xb971dd27, 0xb07cd629, 0x8f5fe703, 0x8652ec0d, 0x9d45f11f, 0x9448fa11, 0xe303934b, 0xea0e9845, 0xf1198557, 0xf8148e59, 0xc737bf73, 0xce3ab47d, 0xd52da96f, 0xdc20a261, 0x766df6ad, 0x7f60fda3, 0x6477e0b1, 0x6d7aebbf, 0x5259da95, 0x5b54d19b, 0x4043cc89, 0x494ec787, 0x3e05aedd, 0x3708a5d3, 0x2c1fb8c1, 0x2512b3cf, 0x1a3182e5, 0x133c89eb, 0x082b94f9, 0x01269ff7, 0xe6bd464d, 0xefb04d43, 0xf4a75051, 0xfdaa5b5f, 0xc2896a75, 0xcb84617b, 0xd0937c69, 0xd99e7767, 0xaed51e3d, 0xa7d81533, 0xbccf0821, 0xb5c2032f, 0x8ae13205, 0x83ec390b, 0x98fb2419, 0x91f62f17, 0x4dd68d76, 0x44db8678, 0x5fcc9b6a, 0x56c19064, 0x69e2a14e, 0x60efaa40, 0x7bf8b752, 0x72f5bc5c, 0x05bed506, 0x0cb3de08, 0x17a4c31a, 0x1ea9c814, 0x218af93e, 0x2887f230, 0x3390ef22, 0x3a9de42c, 0xdd063d96, 0xd40b3698, 0xcf1c2b8a, 0xc6112084, 0xf93211ae, 0xf03f1aa0, 0xeb2807b2, 0xe2250cbc, 0x956e65e6, 0x9c636ee8, 0x877473fa, 0x8e7978f4, 0xb15a49de, 0xb85742d0, 0xa3405fc2, 0xaa4d54cc, 0xecdaf741, 0xe5d7fc4f, 0xfec0e15d, 0xf7cdea53, 0xc8eedb79, 0xc1e3d077, 0xdaf4cd65, 0xd3f9c66b, 0xa4b2af31, 0xadbfa43f, 0xb6a8b92d, 0xbfa5b223, 0x80868309, 0x898b8807, 0x929c9515, 0x9b919e1b, 0x7c0a47a1, 0x75074caf, 0x6e1051bd, 0x671d5ab3, 0x583e6b99, 0x51336097, 0x4a247d85, 0x4329768b, 0x34621fd1, 0x3d6f14df, 0x267809cd, 0x2f7502c3, 0x105633e9, 0x195b38e7, 0x024c25f5, 0x0b412efb, 0xd7618c9a, 0xde6c8794, 0xc57b9a86, 0xcc769188, 0xf355a0a2, 0xfa58abac, 0xe14fb6be, 0xe842bdb0, 0x9f09d4ea, 0x9604dfe4, 0x8d13c2f6, 0x841ec9f8, 0xbb3df8d2, 0xb230f3dc, 0xa927eece, 0xa02ae5c0, 0x47b13c7a, 0x4ebc3774, 0x55ab2a66, 0x5ca62168, 0x63851042, 0x6a881b4c, 0x719f065e, 0x78920d50, 0x0fd9640a, 0x06d46f04, 0x1dc37216, 0x14ce7918, 0x2bed4832, 0x22e0433c, 0x39f75e2e, 0x30fa5520, 0x9ab701ec, 0x93ba0ae2, 0x88ad17f0, 0x81a01cfe, 0xbe832dd4, 0xb78e26da, 0xac993bc8, 0xa59430c6, 0xd2df599c, 0xdbd25292, 0xc0c54f80, 0xc9c8448e, 0xf6eb75a4, 0xffe67eaa, 0xe4f163b8, 0xedfc68b6, 0x0a67b10c, 0x036aba02, 0x187da710, 0x1170ac1e, 0x2e539d34, 0x275e963a, 0x3c498b28, 0x35448026, 0x420fe97c, 0x4b02e272, 0x5015ff60, 0x5918f46e, 0x663bc544, 0x6f36ce4a, 0x7421d358, 0x7d2cd856, 0xa10c7a37, 0xa8017139, 0xb3166c2b, 0xba1b6725, 0x8538560f, 0x8c355d01, 0x97224013, 0x9e2f4b1d, 0xe9642247, 0xe0692949, 0xfb7e345b, 0xf2733f55, 0xcd500e7f, 0xc45d0571, 0xdf4a1863, 0xd647136d, 0x31dccad7, 0x38d1c1d9, 0x23c6dccb, 0x2acbd7c5, 0x15e8e6ef, 0x1ce5ede1, 0x07f2f0f3, 0x0efffbfd, 0x79b492a7, 0x70b999a9, 0x6bae84bb, 0x62a38fb5, 0x5d80be9f, 0x548db591, 0x4f9aa883, 0x4697a38d];\nfunction convertToInt32(bytes) {\n const result = [];\n for (let i = 0; i < bytes.length; i += 4) {\n result.push((bytes[i] << 24) | (bytes[i + 1] << 16) | (bytes[i + 2] << 8) | bytes[i + 3]);\n }\n return result;\n}\nexport class AES {\n constructor(key) {\n _AES_key.set(this, void 0);\n _AES_Kd.set(this, void 0);\n _AES_Ke.set(this, void 0);\n if (!(this instanceof AES)) {\n throw Error('AES must be instanitated with `new`');\n }\n __classPrivateFieldSet(this, _AES_key, new Uint8Array(key), \"f\");\n const rounds = numberOfRounds[this.key.length];\n if (rounds == null) {\n throw new TypeError('invalid key size (must be 16, 24 or 32 bytes)');\n }\n // encryption round keys\n __classPrivateFieldSet(this, _AES_Ke, [], \"f\");\n // decryption round keys\n __classPrivateFieldSet(this, _AES_Kd, [], \"f\");\n for (let i = 0; i <= rounds; i++) {\n __classPrivateFieldGet(this, _AES_Ke, \"f\").push([0, 0, 0, 0]);\n __classPrivateFieldGet(this, _AES_Kd, \"f\").push([0, 0, 0, 0]);\n }\n const roundKeyCount = (rounds + 1) * 4;\n const KC = this.key.length / 4;\n // convert the key into ints\n const tk = convertToInt32(this.key);\n // copy values into round key arrays\n let index;\n for (let i = 0; i < KC; i++) {\n index = i >> 2;\n __classPrivateFieldGet(this, _AES_Ke, \"f\")[index][i % 4] = tk[i];\n __classPrivateFieldGet(this, _AES_Kd, \"f\")[rounds - index][i % 4] = tk[i];\n }\n // key expansion (fips-197 section 5.2)\n let rconpointer = 0;\n let t = KC, tt;\n while (t < roundKeyCount) {\n tt = tk[KC - 1];\n tk[0] ^= ((S[(tt >> 16) & 0xFF] << 24) ^\n (S[(tt >> 8) & 0xFF] << 16) ^\n (S[tt & 0xFF] << 8) ^\n S[(tt >> 24) & 0xFF] ^\n (rcon[rconpointer] << 24));\n rconpointer += 1;\n // key expansion (for non-256 bit)\n if (KC != 8) {\n for (let i = 1; i < KC; i++) {\n tk[i] ^= tk[i - 1];\n }\n // key expansion for 256-bit keys is \"slightly different\" (fips-197)\n }\n else {\n for (let i = 1; i < (KC / 2); i++) {\n tk[i] ^= tk[i - 1];\n }\n tt = tk[(KC / 2) - 1];\n tk[KC / 2] ^= (S[tt & 0xFF] ^\n (S[(tt >> 8) & 0xFF] << 8) ^\n (S[(tt >> 16) & 0xFF] << 16) ^\n (S[(tt >> 24) & 0xFF] << 24));\n for (let i = (KC / 2) + 1; i < KC; i++) {\n tk[i] ^= tk[i - 1];\n }\n }\n // copy values into round key arrays\n let i = 0, r, c;\n while (i < KC && t < roundKeyCount) {\n r = t >> 2;\n c = t % 4;\n __classPrivateFieldGet(this, _AES_Ke, \"f\")[r][c] = tk[i];\n __classPrivateFieldGet(this, _AES_Kd, \"f\")[rounds - r][c] = tk[i++];\n t++;\n }\n }\n // inverse-cipher-ify the decryption round key (fips-197 section 5.3)\n for (let r = 1; r < rounds; r++) {\n for (let c = 0; c < 4; c++) {\n tt = __classPrivateFieldGet(this, _AES_Kd, \"f\")[r][c];\n __classPrivateFieldGet(this, _AES_Kd, \"f\")[r][c] = (U1[(tt >> 24) & 0xFF] ^\n U2[(tt >> 16) & 0xFF] ^\n U3[(tt >> 8) & 0xFF] ^\n U4[tt & 0xFF]);\n }\n }\n }\n get key() { return __classPrivateFieldGet(this, _AES_key, \"f\").slice(); }\n encrypt(plaintext) {\n if (plaintext.length != 16) {\n throw new TypeError('invalid plaintext size (must be 16 bytes)');\n }\n const rounds = __classPrivateFieldGet(this, _AES_Ke, \"f\").length - 1;\n const a = [0, 0, 0, 0];\n // convert plaintext to (ints ^ key)\n let t = convertToInt32(plaintext);\n for (let i = 0; i < 4; i++) {\n t[i] ^= __classPrivateFieldGet(this, _AES_Ke, \"f\")[0][i];\n }\n // apply round transforms\n for (let r = 1; r < rounds; r++) {\n for (let i = 0; i < 4; i++) {\n a[i] = (T1[(t[i] >> 24) & 0xff] ^\n T2[(t[(i + 1) % 4] >> 16) & 0xff] ^\n T3[(t[(i + 2) % 4] >> 8) & 0xff] ^\n T4[t[(i + 3) % 4] & 0xff] ^\n __classPrivateFieldGet(this, _AES_Ke, \"f\")[r][i]);\n }\n t = a.slice();\n }\n // the last round is special\n const result = new Uint8Array(16);\n let tt = 0;\n for (let i = 0; i < 4; i++) {\n tt = __classPrivateFieldGet(this, _AES_Ke, \"f\")[rounds][i];\n result[4 * i] = (S[(t[i] >> 24) & 0xff] ^ (tt >> 24)) & 0xff;\n result[4 * i + 1] = (S[(t[(i + 1) % 4] >> 16) & 0xff] ^ (tt >> 16)) & 0xff;\n result[4 * i + 2] = (S[(t[(i + 2) % 4] >> 8) & 0xff] ^ (tt >> 8)) & 0xff;\n result[4 * i + 3] = (S[t[(i + 3) % 4] & 0xff] ^ tt) & 0xff;\n }\n return result;\n }\n decrypt(ciphertext) {\n if (ciphertext.length != 16) {\n throw new TypeError('invalid ciphertext size (must be 16 bytes)');\n }\n const rounds = __classPrivateFieldGet(this, _AES_Kd, \"f\").length - 1;\n const a = [0, 0, 0, 0];\n // convert plaintext to (ints ^ key)\n let t = convertToInt32(ciphertext);\n for (let i = 0; i < 4; i++) {\n t[i] ^= __classPrivateFieldGet(this, _AES_Kd, \"f\")[0][i];\n }\n // apply round transforms\n for (let r = 1; r < rounds; r++) {\n for (let i = 0; i < 4; i++) {\n a[i] = (T5[(t[i] >> 24) & 0xff] ^\n T6[(t[(i + 3) % 4] >> 16) & 0xff] ^\n T7[(t[(i + 2) % 4] >> 8) & 0xff] ^\n T8[t[(i + 1) % 4] & 0xff] ^\n __classPrivateFieldGet(this, _AES_Kd, \"f\")[r][i]);\n }\n t = a.slice();\n }\n // the last round is special\n const result = new Uint8Array(16);\n let tt = 0;\n for (let i = 0; i < 4; i++) {\n tt = __classPrivateFieldGet(this, _AES_Kd, \"f\")[rounds][i];\n result[4 * i] = (Si[(t[i] >> 24) & 0xff] ^ (tt >> 24)) & 0xff;\n result[4 * i + 1] = (Si[(t[(i + 3) % 4] >> 16) & 0xff] ^ (tt >> 16)) & 0xff;\n result[4 * i + 2] = (Si[(t[(i + 2) % 4] >> 8) & 0xff] ^ (tt >> 8)) & 0xff;\n result[4 * i + 3] = (Si[t[(i + 1) % 4] & 0xff] ^ tt) & 0xff;\n }\n return result;\n }\n}\n_AES_key = new WeakMap(), _AES_Kd = new WeakMap(), _AES_Ke = new WeakMap();\n//# sourceMappingURL=aes.js.map","import { AES } from \"./aes.js\";\nexport class ModeOfOperation {\n constructor(name, key, cls) {\n if (cls && !(this instanceof cls)) {\n throw new Error(`${name} must be instantiated with \"new\"`);\n }\n Object.defineProperties(this, {\n aes: { enumerable: true, value: new AES(key) },\n name: { enumerable: true, value: name }\n });\n }\n}\n//# sourceMappingURL=mode.js.map","// Cipher Block Chaining\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 _CBC_iv, _CBC_lastBlock;\nimport { ModeOfOperation } from \"./mode.js\";\nexport class CBC extends ModeOfOperation {\n constructor(key, iv) {\n super(\"ECC\", key, CBC);\n _CBC_iv.set(this, void 0);\n _CBC_lastBlock.set(this, void 0);\n if (iv) {\n if (iv.length % 16) {\n throw new TypeError(\"invalid iv size (must be 16 bytes)\");\n }\n __classPrivateFieldSet(this, _CBC_iv, new Uint8Array(iv), \"f\");\n }\n else {\n __classPrivateFieldSet(this, _CBC_iv, new Uint8Array(16), \"f\");\n }\n __classPrivateFieldSet(this, _CBC_lastBlock, this.iv, \"f\");\n }\n get iv() { return new Uint8Array(__classPrivateFieldGet(this, _CBC_iv, \"f\")); }\n encrypt(plaintext) {\n if (plaintext.length % 16) {\n throw new TypeError(\"invalid plaintext size (must be multiple of 16 bytes)\");\n }\n const ciphertext = new Uint8Array(plaintext.length);\n for (let i = 0; i < plaintext.length; i += 16) {\n for (let j = 0; j < 16; j++) {\n __classPrivateFieldGet(this, _CBC_lastBlock, \"f\")[j] ^= plaintext[i + j];\n }\n __classPrivateFieldSet(this, _CBC_lastBlock, this.aes.encrypt(__classPrivateFieldGet(this, _CBC_lastBlock, \"f\")), \"f\");\n ciphertext.set(__classPrivateFieldGet(this, _CBC_lastBlock, \"f\"), i);\n }\n return ciphertext;\n }\n decrypt(ciphertext) {\n if (ciphertext.length % 16) {\n throw new TypeError(\"invalid ciphertext size (must be multiple of 16 bytes)\");\n }\n const plaintext = new Uint8Array(ciphertext.length);\n for (let i = 0; i < ciphertext.length; i += 16) {\n const block = this.aes.decrypt(ciphertext.subarray(i, i + 16));\n for (let j = 0; j < 16; j++) {\n plaintext[i + j] = block[j] ^ __classPrivateFieldGet(this, _CBC_lastBlock, \"f\")[j];\n __classPrivateFieldGet(this, _CBC_lastBlock, \"f\")[j] = ciphertext[i + j];\n }\n }\n return plaintext;\n }\n}\n_CBC_iv = new WeakMap(), _CBC_lastBlock = new WeakMap();\n//# sourceMappingURL=mode-cbc.js.map","// Cipher Feedback\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 _CFB_instances, _CFB_iv, _CFB_shiftRegister, _CFB_shift;\nimport { ModeOfOperation } from \"./mode.js\";\nexport class CFB extends ModeOfOperation {\n constructor(key, iv, segmentSize = 8) {\n super(\"CFB\", key, CFB);\n _CFB_instances.add(this);\n _CFB_iv.set(this, void 0);\n _CFB_shiftRegister.set(this, void 0);\n // This library currently only handles byte-aligned segmentSize\n if (!Number.isInteger(segmentSize) || (segmentSize % 8)) {\n throw new TypeError(\"invalid segmentSize\");\n }\n Object.defineProperties(this, {\n segmentSize: { enumerable: true, value: segmentSize }\n });\n if (iv) {\n if (iv.length % 16) {\n throw new TypeError(\"invalid iv size (must be 16 bytes)\");\n }\n __classPrivateFieldSet(this, _CFB_iv, new Uint8Array(iv), \"f\");\n }\n else {\n __classPrivateFieldSet(this, _CFB_iv, new Uint8Array(16), \"f\");\n }\n __classPrivateFieldSet(this, _CFB_shiftRegister, this.iv, \"f\");\n }\n get iv() { return new Uint8Array(__classPrivateFieldGet(this, _CFB_iv, \"f\")); }\n encrypt(plaintext) {\n if (8 * plaintext.length % this.segmentSize) {\n throw new TypeError(\"invalid plaintext size (must be multiple of segmentSize bytes)\");\n }\n const segmentSize = this.segmentSize / 8;\n const ciphertext = new Uint8Array(plaintext);\n for (let i = 0; i < ciphertext.length; i += segmentSize) {\n const xorSegment = this.aes.encrypt(__classPrivateFieldGet(this, _CFB_shiftRegister, \"f\"));\n for (let j = 0; j < segmentSize; j++) {\n ciphertext[i + j] ^= xorSegment[j];\n }\n __classPrivateFieldGet(this, _CFB_instances, \"m\", _CFB_shift).call(this, ciphertext.subarray(i));\n }\n return ciphertext;\n }\n decrypt(ciphertext) {\n if (8 * ciphertext.length % this.segmentSize) {\n throw new TypeError(\"invalid ciphertext size (must be multiple of segmentSize bytes)\");\n }\n const segmentSize = this.segmentSize / 8;\n const plaintext = new Uint8Array(ciphertext);\n for (let i = 0; i < plaintext.length; i += segmentSize) {\n const xorSegment = this.aes.encrypt(__classPrivateFieldGet(this, _CFB_shiftRegister, \"f\"));\n for (let j = 0; j < segmentSize; j++) {\n plaintext[i + j] ^= xorSegment[j];\n }\n __classPrivateFieldGet(this, _CFB_instances, \"m\", _CFB_shift).call(this, ciphertext.subarray(i));\n }\n return plaintext;\n }\n}\n_CFB_iv = new WeakMap(), _CFB_shiftRegister = new WeakMap(), _CFB_instances = new WeakSet(), _CFB_shift = function _CFB_shift(data) {\n const segmentSize = this.segmentSize / 8;\n // Shift the register\n __classPrivateFieldGet(this, _CFB_shiftRegister, \"f\").set(__classPrivateFieldGet(this, _CFB_shiftRegister, \"f\").subarray(segmentSize));\n __classPrivateFieldGet(this, _CFB_shiftRegister, \"f\").set(data.subarray(0, segmentSize), 16 - segmentSize);\n};\n//# sourceMappingURL=mode-cfb.js.map","// Counter Mode\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 _CTR_remaining, _CTR_remainingIndex, _CTR_counter;\nimport { ModeOfOperation } from \"./mode.js\";\nexport class CTR extends ModeOfOperation {\n constructor(key, initialValue) {\n super(\"CTR\", key, CTR);\n // Remaining bytes for the one-time pad\n _CTR_remaining.set(this, void 0);\n _CTR_remainingIndex.set(this, void 0);\n // The current counter\n _CTR_counter.set(this, void 0);\n __classPrivateFieldSet(this, _CTR_counter, new Uint8Array(16), \"f\");\n __classPrivateFieldGet(this, _CTR_counter, \"f\").fill(0);\n __classPrivateFieldSet(this, _CTR_remaining, __classPrivateFieldGet(this, _CTR_counter, \"f\"), \"f\"); // This will be discarded immediately\n __classPrivateFieldSet(this, _CTR_remainingIndex, 16, \"f\");\n if (initialValue == null) {\n initialValue = 1;\n }\n if (typeof (initialValue) === \"number\") {\n this.setCounterValue(initialValue);\n }\n else {\n this.setCounterBytes(initialValue);\n }\n }\n get counter() { return new Uint8Array(__classPrivateFieldGet(this, _CTR_counter, \"f\")); }\n setCounterValue(value) {\n if (!Number.isInteger(value) || value < 0 || value > Number.MAX_SAFE_INTEGER) {\n throw new TypeError(\"invalid counter initial integer value\");\n }\n for (let index = 15; index >= 0; --index) {\n __classPrivateFieldGet(this, _CTR_counter, \"f\")[index] = value % 256;\n value = Math.floor(value / 256);\n }\n }\n setCounterBytes(value) {\n if (value.length !== 16) {\n throw new TypeError(\"invalid counter initial Uint8Array value length\");\n }\n __classPrivateFieldGet(this, _CTR_counter, \"f\").set(value);\n }\n increment() {\n for (let i = 15; i >= 0; i--) {\n if (__classPrivateFieldGet(this, _CTR_counter, \"f\")[i] === 255) {\n __classPrivateFieldGet(this, _CTR_counter, \"f\")[i] = 0;\n }\n else {\n __classPrivateFieldGet(this, _CTR_counter, \"f\")[i]++;\n break;\n }\n }\n }\n encrypt(plaintext) {\n var _a, _b;\n const crypttext = new Uint8Array(plaintext);\n for (let i = 0; i < crypttext.length; i++) {\n if (__classPrivateFieldGet(this, _CTR_remainingIndex, \"f\") === 16) {\n __classPrivateFieldSet(this, _CTR_remaining, this.aes.encrypt(__classPrivateFieldGet(this, _CTR_counter, \"f\")), \"f\");\n __classPrivateFieldSet(this, _CTR_remainingIndex, 0, \"f\");\n this.increment();\n }\n crypttext[i] ^= __classPrivateFieldGet(this, _CTR_remaining, \"f\")[__classPrivateFieldSet(this, _CTR_remainingIndex, (_b = __classPrivateFieldGet(this, _CTR_remainingIndex, \"f\"), _a = _b++, _b), \"f\"), _a];\n }\n return crypttext;\n }\n decrypt(ciphertext) {\n return this.encrypt(ciphertext);\n }\n}\n_CTR_remaining = new WeakMap(), _CTR_remainingIndex = new WeakMap(), _CTR_counter = new WeakMap();\n//# sourceMappingURL=mode-ctr.js.map","// Output Feedback\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 _OFB_iv, _OFB_lastPrecipher, _OFB_lastPrecipherIndex;\nimport { ModeOfOperation } from \"./mode.js\";\nexport class OFB extends ModeOfOperation {\n constructor(key, iv) {\n super(\"OFB\", key, OFB);\n _OFB_iv.set(this, void 0);\n _OFB_lastPrecipher.set(this, void 0);\n _OFB_lastPrecipherIndex.set(this, void 0);\n if (iv) {\n if (iv.length % 16) {\n throw new TypeError(\"invalid iv size (must be 16 bytes)\");\n }\n __classPrivateFieldSet(this, _OFB_iv, new Uint8Array(iv), \"f\");\n }\n else {\n __classPrivateFieldSet(this, _OFB_iv, new Uint8Array(16), \"f\");\n }\n __classPrivateFieldSet(this, _OFB_lastPrecipher, this.iv, \"f\");\n __classPrivateFieldSet(this, _OFB_lastPrecipherIndex, 16, \"f\");\n }\n get iv() { return new Uint8Array(__classPrivateFieldGet(this, _OFB_iv, \"f\")); }\n encrypt(plaintext) {\n var _a, _b;\n if (plaintext.length % 16) {\n throw new TypeError(\"invalid plaintext size (must be multiple of 16 bytes)\");\n }\n const ciphertext = new Uint8Array(plaintext);\n for (let i = 0; i < ciphertext.length; i++) {\n if (__classPrivateFieldGet(this, _OFB_lastPrecipherIndex, \"f\") === 16) {\n __classPrivateFieldSet(this, _OFB_lastPrecipher, this.aes.encrypt(__classPrivateFieldGet(this, _OFB_lastPrecipher, \"f\")), \"f\");\n __classPrivateFieldSet(this, _OFB_lastPrecipherIndex, 0, \"f\");\n }\n ciphertext[i] ^= __classPrivateFieldGet(this, _OFB_lastPrecipher, \"f\")[__classPrivateFieldSet(this, _OFB_lastPrecipherIndex, (_b = __classPrivateFieldGet(this, _OFB_lastPrecipherIndex, \"f\"), _a = _b++, _b), \"f\"), _a];\n }\n return ciphertext;\n }\n decrypt(ciphertext) {\n if (ciphertext.length % 16) {\n throw new TypeError(\"invalid ciphertext size (must be multiple of 16 bytes)\");\n }\n return this.encrypt(ciphertext);\n }\n}\n_OFB_iv = new WeakMap(), _OFB_lastPrecipher = new WeakMap(), _OFB_lastPrecipherIndex = new WeakMap();\n//# sourceMappingURL=mode-ofb.js.map","export function pkcs7Pad(data) {\n const padder = 16 - (data.length % 16);\n const result = new Uint8Array(data.length + padder);\n result.set(data);\n for (let i = data.length; i < result.length; i++) {\n result[i] = padder;\n }\n return result;\n}\nexport function pkcs7Strip(data) {\n if (data.length < 16) {\n throw new TypeError('PKCS#7 invalid length');\n }\n const padder = data[data.length - 1];\n if (padder > 16) {\n throw new TypeError('PKCS#7 padding byte out of range');\n }\n const length = data.length - padder;\n for (let i = 0; i < padder; i++) {\n if (data[length + i] !== padder) {\n throw new TypeError('PKCS#7 invalid padding byte');\n }\n }\n return new Uint8Array(data.subarray(0, length));\n}\n//# sourceMappingURL=padding.js.map","import { arrayify, hexlify } from \"@ethersproject/bytes\";\nimport { toUtf8Bytes, UnicodeNormalizationForm } from '@ethersproject/strings';\nimport { logger } from \"./logger.js\";\nexport function looseArrayify(hexString) {\n if (typeof (hexString) === 'string' && hexString.substring(0, 2) !== '0x') {\n hexString = '0x' + hexString;\n }\n return arrayify(hexString);\n}\nexport function zpad(value, length) {\n value = String(value);\n while (value.length < length) {\n value = '0' + value;\n }\n return value;\n}\nexport function getPassword(password) {\n if (typeof (password) === 'string') {\n return toUtf8Bytes(password, UnicodeNormalizationForm.NFKC);\n }\n return arrayify(password);\n}\nexport function spelunk(object, _path) {\n const match = _path.match(/^([a-z0-9$_.-]*)(:([a-z]+))?(!)?$/i);\n if (match == null) {\n return logger.throwArgumentError(\"invalid path\", \"path\", _path);\n }\n const path = match[1];\n const type = match[3];\n const reqd = (match[4] === \"!\");\n let cur = object;\n for (const comp of path.toLowerCase().split('.')) {\n // Search for a child object with a case-insensitive matching key\n if (Array.isArray(cur)) {\n if (!comp.match(/^[0-9]+$/)) {\n break;\n }\n cur = cur[parseInt(comp)];\n }\n else if (typeof (cur) === \"object\") {\n let found = null;\n for (const key in cur) {\n if (key.toLowerCase() === comp) {\n found = cur[key];\n break;\n }\n }\n cur = found;\n }\n else {\n cur = null;\n }\n if (cur == null) {\n break;\n }\n }\n if (reqd && cur == null) {\n logger.throwArgumentError(\"missing required value\", \"path\", path);\n }\n if (type && cur != null) {\n if (type === \"int\") {\n if (typeof (cur) === \"string\" && cur.match(/^-?[0-9]+$/)) {\n return parseInt(cur);\n }\n else if (Number.isSafeInteger(cur)) {\n return cur;\n }\n }\n if (type === \"number\") {\n if (typeof (cur) === \"string\" && cur.match(/^-?[0-9.]*$/)) {\n return parseFloat(cur);\n }\n }\n if (type === \"data\") {\n if (typeof (cur) === \"string\") {\n return looseArrayify(cur);\n }\n }\n if (type === \"array\" && Array.isArray(cur)) {\n return cur;\n }\n if (type === typeof (cur)) {\n return cur;\n }\n logger.throwArgumentError(`wrong type found for ${type} `, \"path\", path);\n }\n return cur;\n}\n/*\nexport function follow(object: any, path: string): null | string {\n let currentChild = object;\n\n for (const comp of path.toLowerCase().split('/')) {\n\n // Search for a child object with a case-insensitive matching key\n let matchingChild = null;\n for (const key in currentChild) {\n if (key.toLowerCase() === comp) {\n matchingChild = currentChild[key];\n break;\n }\n }\n\n if (matchingChild === null) { return null; }\n\n currentChild = matchingChild;\n }\n\n return currentChild;\n}\n\n// \"path/to/something:type!\"\nexport function followRequired(data: any, path: string): string {\n const value = follow(data, path);\n if (value != null) { return value; }\n return logger.throwArgumentError(\"invalid value\", `data:${ path }`,\n JSON.stringify(data));\n}\n*/\n// See: https://www.ietf.org/rfc/rfc4122.txt (Section 4.4)\nexport function uuidV4(randomBytes) {\n const bytes = logger.getBytes(randomBytes, \"randomBytes\");\n // Section: 4.1.3:\n // - time_hi_and_version[12:16] = 0b0100\n bytes[6] = (bytes[6] & 0x0f) | 0x40;\n // Section 4.4\n // - clock_seq_hi_and_reserved[6] = 0b0\n // - clock_seq_hi_and_reserved[7] = 0b1\n bytes[8] = (bytes[8] & 0x3f) | 0x80;\n const value = hexlify(bytes);\n return [\n value.substring(2, 10),\n value.substring(10, 14),\n value.substring(14, 18),\n value.substring(18, 22),\n value.substring(22, 34),\n ].join(\"-\");\n}\n//# sourceMappingURL=utils.js.map","import { CBC, pkcs7Strip } from \"aes-js\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { pbkdf2 } from \"@ethersproject/crypto\";\nimport { id } from \"@ethersproject/hash\";\nimport { logger } from \"./logger.js\";\nimport { getPassword, looseArrayify, spelunk } from \"./utils.js\";\nexport function isCrowdsaleJson(json) {\n try {\n const data = JSON.parse(json);\n if (data.encseed) {\n return true;\n }\n }\n catch (error) { }\n return false;\n}\n// See: https://github.com/ethereum/pyethsaletool\nexport function decryptCrowdsaleJson(json, _password) {\n const data = JSON.parse(json);\n const password = getPassword(_password);\n // Ethereum Address\n const address = getAddress(spelunk(data, \"ethaddr:string!\"));\n // Encrypted Seed\n const encseed = looseArrayify(spelunk(data, \"encseed:string!\"));\n if (!encseed || (encseed.length % 16) !== 0) {\n logger.throwArgumentError(\"invalid encseed\", \"json\", json);\n }\n const key = arrayify(pbkdf2(password, password, 2000, 32, \"sha256\")).slice(0, 16);\n const iv = encseed.slice(0, 16);\n const encryptedSeed = encseed.slice(16);\n // Decrypt the seed\n const aesCbc = new CBC(key, iv);\n const seed = pkcs7Strip(arrayify(aesCbc.decrypt(encryptedSeed)));\n // This wallet format is weird... Convert the binary encoded hex to a string.\n let seedHex = \"\";\n for (let i = 0; i < seed.length; i++) {\n seedHex += String.fromCharCode(seed[i]);\n }\n return { address, privateKey: id(seedHex) };\n}\n//# sourceMappingURL=json-crowdsale.js.map","import { CTR } from \"aes-js\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { arrayify, concat, hexlify } from \"@ethersproject/bytes\";\nimport { keccak256, pbkdf2, randomBytes, scrypt, scryptSync } from \"@ethersproject/crypto\";\nimport { computeAddress } from \"@ethersproject/transaction\";\nimport { logger } from \"./logger.js\";\nimport { getPassword, spelunk, uuidV4, zpad } from \"./utils.js\";\nimport { version } from \"./_version.js\";\nconst defaultPath = \"m/44'/60'/0'/0/0\";\nexport function isKeystoreJson(json) {\n try {\n const data = JSON.parse(json);\n const version = ((data.version != null) ? parseInt(data.version) : 0);\n if (version === 3) {\n return true;\n }\n }\n catch (error) { }\n return false;\n}\nfunction decrypt(data, key, ciphertext) {\n const cipher = spelunk(data, \"crypto.cipher:string\");\n if (cipher === \"aes-128-ctr\") {\n const iv = spelunk(data, \"crypto.cipherparams.iv:data!\");\n const aesCtr = new CTR(key, iv);\n return hexlify(aesCtr.decrypt(ciphertext));\n }\n return logger.throwError(\"unsupported cipher\", \"UNSUPPORTED_OPERATION\", {\n operation: \"decrypt\"\n });\n}\nfunction getAccount(data, _key) {\n const key = logger.getBytes(_key);\n const ciphertext = spelunk(data, \"crypto.ciphertext:data!\");\n const computedMAC = hexlify(keccak256(concat([key.slice(16, 32), ciphertext]))).substring(2);\n if (computedMAC !== spelunk(data, \"crypto.mac:string!\").toLowerCase()) {\n return logger.throwArgumentError(\"incorrect password\", \"password\", \"[ REDACTED ]\");\n }\n const privateKey = decrypt(data, key.slice(0, 16), ciphertext);\n const address = computeAddress(privateKey);\n if (data.address) {\n let check = data.address.toLowerCase();\n if (check.substring(0, 2) !== \"0x\") {\n check = \"0x\" + check;\n }\n if (getAddress(check) !== address) {\n logger.throwArgumentError(\"keystore address/privateKey mismatch\", \"address\", data.address);\n }\n }\n const account = { address, privateKey };\n // Version 0.1 x-ethers metadata must contain an encrypted mnemonic phrase\n const version = spelunk(data, \"x-ethers.version:string\");\n if (version === \"0.1\") {\n const mnemonicKey = key.slice(32, 64);\n const mnemonicCiphertext = spelunk(data, \"x-ethers.mnemonicCiphertext:data!\");\n const mnemonicIv = spelunk(data, \"x-ethers.mnemonicCounter:data!\");\n const mnemonicAesCtr = new CTR(mnemonicKey, mnemonicIv);\n account.mnemonic = {\n path: (spelunk(data, \"x-ethers.path:string\") || defaultPath),\n locale: (spelunk(data, \"x-ethers.locale:string\") || \"en\"),\n entropy: hexlify(arrayify(mnemonicAesCtr.decrypt(mnemonicCiphertext)))\n };\n }\n return account;\n}\nfunction getKdfParams(data) {\n const kdf = spelunk(data, \"crypto.kdf:string\");\n if (kdf && typeof (kdf) === \"string\") {\n const throwError = function (name, value) {\n return logger.throwArgumentError(\"invalid key-derivation function parameters\", name, value);\n };\n if (kdf.toLowerCase() === \"scrypt\") {\n const salt = spelunk(data, \"crypto.kdfparams.salt:data!\");\n const N = spelunk(data, \"crypto.kdfparams.n:int!\");\n const r = spelunk(data, \"crypto.kdfparams.r:int!\");\n const p = spelunk(data, \"crypto.kdfparams.p:int!\");\n // Check for all required parameters\n if (!N || !r || !p) {\n return throwError(\"kdf\", kdf);\n }\n // Make sure N is a power of 2\n if ((N & (N - 1)) !== 0) {\n return throwError(\"N\", N);\n }\n const dkLen = spelunk(data, \"crypto.kdfparams.dklen:int!\");\n if (dkLen !== 32) {\n return throwError(\"dklen\", dkLen);\n }\n return { name: \"scrypt\", salt, N, r, p, dkLen: 64 };\n }\n else if (kdf.toLowerCase() === \"pbkdf2\") {\n const salt = spelunk(data, \"crypto.kdfparams.salt:data!\");\n const prf = spelunk(data, \"crypto.kdfparams.prf:string!\");\n const algorithm = prf.split(\"-\").pop();\n if (algorithm !== \"sha256\" && algorithm !== \"sha512\") {\n return throwError(\"prf\", prf);\n }\n const count = spelunk(data, \"crypto.kdfparams.c:int!\");\n const dkLen = spelunk(data, \"crypto.kdfparams.dklen:int!\");\n if (dkLen !== 32) {\n throwError(\"dklen\", dkLen);\n }\n return { name: \"pbkdf2\", salt, count, dkLen, algorithm };\n }\n }\n return logger.throwArgumentError(\"unsupported key-derivation function\", \"kdf\", kdf);\n}\nexport function decryptKeystoreJsonSync(json, _password) {\n const data = JSON.parse(json);\n const password = getPassword(_password);\n const params = getKdfParams(data);\n if (params.name === \"pbkdf2\") {\n const { salt, count, dkLen, algorithm } = params;\n const key = pbkdf2(password, salt, count, dkLen, algorithm);\n return getAccount(data, key);\n }\n else if (params.name === \"scrypt\") {\n const { salt, N, r, p, dkLen } = params;\n const key = scryptSync(password, salt, N, r, p, dkLen);\n return getAccount(data, key);\n }\n throw new Error(\"unreachable\");\n}\nfunction stall(duration) {\n return new Promise((resolve) => { setTimeout(() => { resolve(); }, duration); });\n}\nexport async function decryptKeystoreJson(json, _password, progress) {\n const data = JSON.parse(json);\n const password = getPassword(_password);\n const params = getKdfParams(data);\n if (params.name === \"pbkdf2\") {\n if (progress) {\n progress(0);\n await stall(0);\n }\n const { salt, count, dkLen, algorithm } = params;\n const key = pbkdf2(password, salt, count, dkLen, algorithm);\n if (progress) {\n progress(1);\n await stall(0);\n }\n return getAccount(data, key);\n }\n else if (params.name === \"scrypt\") {\n const { salt, N, r, p, dkLen } = params;\n const key = await scrypt(password, salt, N, r, p, dkLen, progress);\n return getAccount(data, key);\n }\n throw new Error(\"unreachable\");\n}\nexport async function encryptKeystoreJson(account, password, options, progressCallback) {\n // Check the address matches the private key\n //if (getAddress(account.address) !== computeAddress(account.privateKey)) {\n // throw new Error(\"address/privateKey mismatch\");\n //}\n // Check the mnemonic (if any) matches the private key\n /*\n if (hasMnemonic(account)) {\n const mnemonic = account.mnemonic;\n const node = HDNode.fromMnemonic(mnemonic.phrase, null, mnemonic.locale).derivePath(mnemonic.path || defaultPath);\n\n if (node.privateKey != account.privateKey) {\n throw new Error(\"mnemonic mismatch\");\n }\n }\n */\n // The options are optional, so adjust the call as needed\n if (typeof (options) === \"function\" && !progressCallback) {\n progressCallback = options;\n options = {};\n }\n if (!options) {\n options = {};\n }\n const privateKey = logger.getBytes(account.privateKey, \"privateKey\");\n const passwordBytes = getPassword(password);\n /*\n let mnemonic: null | Mnemonic = null;\n let entropy: Uint8Array = null\n let path: string = null;\n let locale: string = null;\n if (hasMnemonic(account)) {\n const srcMnemonic = account.mnemonic;\n entropy = arrayify(mnemonicToEntropy(srcMnemonic.phrase, srcMnemonic.locale || \"en\"));\n path = srcMnemonic.path || defaultPath;\n locale = srcMnemonic.locale || \"en\";\n mnemonic = Mnemonic.from(\n }\n */\n // Check/generate the salt\n const salt = (options.salt != null) ? logger.getBytes(options.salt, \"options.slat\") : randomBytes(32);\n // Override initialization vector\n const iv = (options.iv != null) ? logger.getBytes(options.iv, \"options.iv\") : randomBytes(16);\n if (iv.length !== 16) {\n logger.throwArgumentError(\"invalid options.iv\", \"options.iv\", options.iv);\n }\n // Override the uuid\n const uuidRandom = (options.uuid != null) ? logger.getBytes(options.uuid, \"options.uuid\") : randomBytes(16);\n if (uuidRandom.length !== 16) {\n logger.throwArgumentError(\"invalid options.uuid\", \"options.uuid\", options.iv);\n }\n if (uuidRandom.length !== 16) {\n throw new Error(\"invalid uuid\");\n }\n // Override the scrypt password-based key derivation function parameters\n let N = (1 << 17), r = 8, p = 1;\n if (options.scrypt) {\n if (options.scrypt.N) {\n N = options.scrypt.N;\n }\n if (options.scrypt.r) {\n r = options.scrypt.r;\n }\n if (options.scrypt.p) {\n p = options.scrypt.p;\n }\n }\n // We take 64 bytes:\n // - 32 bytes As normal for the Web3 secret storage (derivedKey, macPrefix)\n // - 32 bytes AES key to encrypt mnemonic with (required here to be Ethers Wallet)\n const _key = await scrypt(passwordBytes, salt, N, r, p, 64, progressCallback);\n const key = arrayify(_key);\n // This will be used to encrypt the wallet (as per Web3 secret storage)\n const derivedKey = key.slice(0, 16);\n const macPrefix = key.slice(16, 32);\n // Encrypt the private key\n const aesCtr = new CTR(derivedKey, iv);\n const ciphertext = arrayify(aesCtr.encrypt(privateKey));\n // Compute the message authentication code, used to check the password\n const mac = keccak256(concat([macPrefix, ciphertext]));\n // See: https://github.com/ethereum/wiki/wiki/Web3-Secret-Storage-Definition\n const data = {\n address: account.address.substring(2).toLowerCase(),\n id: uuidV4(uuidRandom),\n version: 3,\n Crypto: {\n cipher: \"aes-128-ctr\",\n cipherparams: {\n iv: hexlify(iv).substring(2),\n },\n ciphertext: hexlify(ciphertext).substring(2),\n kdf: \"scrypt\",\n kdfparams: {\n salt: hexlify(salt).substring(2),\n n: N,\n dklen: 32,\n p: p,\n r: r\n },\n mac: mac.substring(2)\n }\n };\n // If we have a mnemonic, encrypt it into the JSON wallet\n if (account.mnemonic) {\n const client = (options.client != null) ? options.client : `ethers/${version}`;\n const path = account.mnemonic.path || defaultPath;\n const locale = account.mnemonic.locale || \"en\";\n const mnemonicKey = key.slice(32, 64);\n const entropy = logger.getBytes(account.mnemonic.entropy, \"account.mnemonic.entropy\");\n const mnemonicIv = randomBytes(16);\n const mnemonicAesCtr = new CTR(mnemonicKey, mnemonicIv);\n const mnemonicCiphertext = arrayify(mnemonicAesCtr.encrypt(entropy));\n const now = new Date();\n const timestamp = (now.getUTCFullYear() + \"-\" +\n zpad(now.getUTCMonth() + 1, 2) + \"-\" +\n zpad(now.getUTCDate(), 2) + \"T\" +\n zpad(now.getUTCHours(), 2) + \"-\" +\n zpad(now.getUTCMinutes(), 2) + \"-\" +\n zpad(now.getUTCSeconds(), 2) + \".0Z\");\n const gethFilename = (\"UTC--\" + timestamp + \"--\" + data.address);\n data[\"x-ethers\"] = {\n client, gethFilename, path, locale,\n mnemonicCounter: hexlify(mnemonicIv).substring(2),\n mnemonicCiphertext: hexlify(mnemonicCiphertext).substring(2),\n version: \"0.1\"\n };\n }\n return JSON.stringify(data);\n}\n//# sourceMappingURL=json-keystore.js.map","var __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 _Wallet_mnemonic;\nimport { isHexString } from \"@ethersproject/bytes\";\nimport { randomBytes } from \"@ethersproject/crypto\";\nimport { SigningKey } from \"@ethersproject/signing-key\";\nimport { computeAddress } from \"@ethersproject/transaction\";\nimport { BaseWallet } from \"./base-wallet.js\";\nimport { HDNodeWallet } from \"./hdwallet.js\";\nimport { decryptCrowdsaleJson, isCrowdsaleJson } from \"./json-crowdsale.js\";\nimport { decryptKeystoreJson, decryptKeystoreJsonSync, isKeystoreJson } from \"./json-keystore.js\";\nimport { logger } from \"./logger.js\";\nimport { Mnemonic } from \"./mnemonic.js\";\nfunction tryWallet(value) {\n try {\n if (!value || !value.signingKey) {\n return null;\n }\n const key = trySigningKey(value.signingKey);\n if (key == null || computeAddress(key.publicKey) !== value.address) {\n return null;\n }\n if (value.mnemonic) {\n const wallet = HDNodeWallet.fromMnemonic(value.mnemonic);\n if (wallet.privateKey !== key.privateKey) {\n return null;\n }\n }\n return value;\n }\n catch (e) {\n console.log(e);\n }\n return null;\n}\n// Try using value as mnemonic to derive the defaultPath HDodeWallet\nfunction tryMnemonic(value) {\n try {\n if (value == null || typeof (value.phrase) !== \"string\" ||\n typeof (value.password) !== \"string\" ||\n value.wordlist == null) {\n return null;\n }\n return HDNodeWallet.fromPhrase(value.phrase, value.password, null, value.wordlist);\n }\n catch (error) {\n console.log(error);\n }\n return null;\n}\nfunction trySigningKey(value) {\n try {\n if (!value || !isHexString(value.privateKey, 32)) {\n return null;\n }\n const key = value.privateKey;\n if (SigningKey.computePublicKey(key) !== value.publicKey) {\n return null;\n }\n return new SigningKey(key);\n }\n catch (e) {\n console.log(e);\n }\n return null;\n}\nfunction stall(duration) {\n return new Promise((resolve) => { setTimeout(() => { resolve(); }, duration); });\n}\nexport class Wallet extends BaseWallet {\n constructor(key, provider) {\n let signingKey = null;\n let mnemonic = null;\n // A normal private key\n if (typeof (key) === \"string\") {\n signingKey = new SigningKey(key);\n }\n // Try Wallet\n if (signingKey == null) {\n const wallet = tryWallet(key);\n if (wallet) {\n signingKey = wallet.signingKey;\n mnemonic = wallet.mnemonic || null;\n }\n }\n // Try Mnemonic, with the defaultPath wallet\n if (signingKey == null) {\n const wallet = tryMnemonic(key);\n if (wallet) {\n signingKey = wallet.signingKey;\n mnemonic = wallet.mnemonic || null;\n }\n }\n // A signing key\n if (signingKey == null) {\n signingKey = trySigningKey(key);\n }\n if (signingKey == null) {\n logger.throwArgumentError(\"invalid key\", \"key\", \"[ REDACTED ]\");\n }\n super(signingKey, provider);\n _Wallet_mnemonic.set(this, void 0);\n __classPrivateFieldSet(this, _Wallet_mnemonic, mnemonic, \"f\");\n }\n // Store this in a getter to reduce visibility in console.log\n get mnemonic() { return __classPrivateFieldGet(this, _Wallet_mnemonic, \"f\"); }\n connect(provider) {\n return new Wallet(this, provider);\n }\n async encrypt(password, options, progressCallback) {\n throw new Error(\"TODO\");\n }\n encryptSync(password, options) {\n throw new Error(\"TODO\");\n }\n static async fromEncryptedJson(json, password, progress) {\n let account = null;\n if (isKeystoreJson(json)) {\n account = await decryptKeystoreJson(json, password, progress);\n }\n else if (isCrowdsaleJson(json)) {\n if (progress) {\n progress(0);\n await stall(0);\n }\n account = decryptCrowdsaleJson(json, password);\n if (progress) {\n progress(1);\n await stall(0);\n }\n }\n else {\n return logger.throwArgumentError(\"invalid JSON wallet\", \"json\", \"[ REDACTED ]\");\n }\n const wallet = new Wallet(account.privateKey);\n if (wallet.address !== account.address) {\n logger.throwArgumentError(\"address/privateKey mismatch\", \"json\", \"[ REDACTED ]\");\n }\n // @TODO: mnemonic\n return wallet;\n }\n static fromEncryptedJsonSync(json, password) {\n let account = null;\n if (isKeystoreJson(json)) {\n account = decryptKeystoreJsonSync(json, password);\n }\n else if (isCrowdsaleJson(json)) {\n account = decryptCrowdsaleJson(json, password);\n }\n else {\n return logger.throwArgumentError(\"invalid JSON wallet\", \"json\", \"[ REDACTED ]\");\n }\n const wallet = new Wallet(account.privateKey);\n if (wallet.address !== account.address) {\n logger.throwArgumentError(\"address/privateKey mismatch\", \"json\", \"[ REDACTED ]\");\n }\n // @TODO: mnemonic\n return wallet;\n }\n static createRandom(provider, password, wordlist) {\n return new Wallet(Mnemonic.fromEntropy(randomBytes(16), password, wordlist), provider);\n }\n static fromMnemonic(mnemonic, provider) {\n return new Wallet(mnemonic, provider);\n }\n static fromPhrase(phrase, provider, password = \"\", wordlist) {\n return new Wallet(Mnemonic.fromPhrase(phrase, password, wordlist), provider);\n }\n}\n_Wallet_mnemonic = new WeakMap();\n//# sourceMappingURL=wallet.js.map","export const version = \"ethers@6.0.0-beta.5\";\n//# sourceMappingURL=_version.js.map"],"names":["__classPrivateFieldSet","this","__classPrivateFieldGet","version","maxValue","logger","_guard","internal","nibbles","BN_0","BN_1","zeros","passProperties","getValue","pbkdf2","sha256","u64.split","u64.rotrSH","u64.shrSH","u64.rotrSL","u64.shrSL","u64.rotrBH","u64.rotrBL","u64.add4L","u64.add4H","u64.add5L","u64.add5H","u64.add","u64.add3L","u64.add3H","sha512","getGlobal","crypto","randomBytes","locked","_0n","_1n","_2n","u64.rotlBH","u64.rotlSH","u64.rotlBL","u64.rotlSL","rotl","ripemd160","noble_ripemd160","crypto_random","scrypt","_nobleAsync","_nobleSync","H","Empty","BN_MAX_UINT256","getTime","_a","numPad","bytesPad","encodeBytes","BN_2","BN_27","BN_28","BN_35","Signature","secp256k1.utils","secp256k1.signSync","secp256k1.Signature","secp256k1.getSharedSecret","secp256k1.getPublicKey","secp256k1.Point","secp256k1.recoverPublicKey","copyRequest","Network","copy","concisify","defaultApiKey","getHost","stall","WebSocket","_Network","en","defaultPath"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAe,iBAAiB,CAAC,KAAK,EAAE;AAC/C,IAAI,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpC,IAAI,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClF,IAAI,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,KAAK;AAC/C,QAAQ,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/B,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK,EAAE,EAAE,CAAC,CAAC;AACX,CAAC;AAQD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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,CAAC,CAAC,EAAE;AAC/E,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAGA,GAAO,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE;AAC/E,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAGA,GAAO,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE;AAC/E,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAGA,GAAO,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE;AAC/E,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAGA,GAAO,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE;AAC/E,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAGA,GAAO,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE;AAC/E,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAGA,GAAO,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE;AAC/E,QAAQ,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,E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AQ,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AACvC,QAAQ,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACtC,QAAQ,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACtC,QAAQ,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AACvC,QAAQ,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AACvC,QAAQ,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACtC,QAAQ,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACtC,QAAQ,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AACvC,QAAQ,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AACvC,QAAQ,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACtC,QAAQ,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACtC,QAAQ,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AACvC,QAAQ,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AACvC,QAAQ,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACtC,QAAQ,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACtC,QAAQ,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,CA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AAC,CAAC,EAAE;AAC3C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,IAAI,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AACxC,IAAI,OAAO,IAAI,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;AACvC,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AACzC,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AACzC,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AACzC,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AACzC,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AACzC,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AACzC,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AACzC,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AACzC,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AACzC,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AACzC,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AACzC,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,GAAG,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AACxC,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACpC,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AACxC,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AACxC,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AACxC,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AACxC,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AACxC,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AACxC,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AACxC,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AACxC,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AACxC,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE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CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAChE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;AAChC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAClD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAC3D,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;AAChC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;AAChC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;AAChC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;AAChC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;AAChC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;AAChC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AACzC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC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AI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC3gD,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC5gD;AACA,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAC5gG,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAC5gG,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAC5gG,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAC5gG;AACA,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAC5gG,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAC5gG,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAC5gG,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAC5gG;AACA,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAC5gG,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAC5gG,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAC5gG,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,U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"} |