{"version":3,"file":"static/js/main.73eeb5db.js","mappings":"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xB,OAAO,CACT,CAIA,IAAI6nB,GAAY,CAEdI,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EAEAE,EAEAC,EAEAC,EAEAC,EACAmD,GACAA,GACAA,GACAA,GAEAlD,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EAEAC,EAEAC,EAEAC,GAEAC,GACA8C,GACAA,GACAA,GACAA,GAEA9I,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GAEAkG,GAEAC,GAEAC,GAEAC,GACAyC,GACAA,GACAA,GAEAxC,GAEArG,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GAEAsG,GAEAC,GAEAC,GAEAC,GAEAoC,GACAA,GACAA,GACAnC,GAEAzG,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GAEA0G,GAEAC,GAEAC,GAEAC,GAEA+B,GACAA,GACAA,GACA9B,GAEA7G,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GAEA8G,GAEAC,GAEAC,GAEAC,GACA0B,GACAA,GACAA,GAEAz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","sources":["../node_modules/@dfinity/agent/src/canisterStatus/index.ts","../node_modules/@dfinity/agent/src/cbor.ts","../node_modules/@dfinity/agent/src/certificate.ts","../node_modules/@dfinity/agent/src/errors.ts","../node_modules/@dfinity/agent/src/request_id.ts","../node_modules/@dfinity/agent/src/vendor/bls/bls.ts","../node_modules/@dfinity/agent/src/vendor/bls/wasm.ts","../node_modules/@dfinity/agent/src/utils/bls.ts","../node_modules/@dfinity/agent/src/utils/buffer.ts","../node_modules/@dfinity/assets/src/utils/browserShim.ts","../node_modules/@dfinity/candid/src/utils/buffer.ts","../node_modules/@dfinity/candid/src/utils/hash.ts","../node_modules/@dfinity/candid/src/utils/leb128.ts","../node_modules/@dfinity/candid/src/utils/bigint-math.ts","../node_modules/@dfinity/candid/src/idl.ts","../node_modules/@dfinity/principal/src/utils/base32.ts","../node_modules/@dfinity/principal/src/utils/getCrc.ts","../node_modules/@dfinity/principal/src/index.ts","../node_modules/@dfinity/principal/src/utils/sha224.ts","../node_modules/base64-arraybuffer/lib/base64-arraybuffer.js","../node_modules/base64-js/index.js","../node_modules/bignumber.js/bignumber.js","../node_modules/borc/src/constants.js","../node_modules/borc/src/decoder.asm.js","../node_modules/borc/src/decoder.js","../node_modules/borc/src/diagnose.js","../node_modules/borc/src/encoder.js","../node_modules/borc/src/index.js","../node_modules/borc/src/simple.js","../node_modules/borc/src/tagged.js","../node_modules/borc/src/utils.js","../node_modules/buffer/index.js","../node_modules/ieee754/index.js","../node_modules/iso-url/index.js","../node_modules/iso-url/src/relative.js","../node_modules/iso-url/src/url-browser.js","../node_modules/js-sha256/src/sha256.js","../node_modules/mime/Mime.js","../node_modules/mime/lite.js","../node_modules/mime/types/standard.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../index.ts","../serializer.ts","../value.ts","../node_modules/tweetnacl/nacl-fast.js","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/define property getters","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../node_modules/@dfinity/agent/src/agent/api.ts","../node_modules/@dfinity/agent/src/auth.ts","../node_modules/@dfinity/agent/src/agent/http/types.ts","../node_modules/@dfinity/agent/src/agent/http/transforms.ts","../node_modules/@dfinity/agent/src/agent/http/index.ts","../node_modules/@dfinity/agent/src/agent/proxy.ts","../node_modules/@dfinity/agent/src/agent/index.ts","../node_modules/@dfinity/agent/src/polling/index.ts","../node_modules/@dfinity/agent/src/canisters/management_idl.ts","../node_modules/@dfinity/agent/src/actor.ts","../node_modules/@dfinity/agent/src/polling/strategy.ts","../node_modules/@dfinity/identity/src/buffer.ts","../node_modules/@dfinity/identity/src/identity/der.ts","../node_modules/@dfinity/identity/src/identity/ed25519.ts","../node_modules/@dfinity/identity/src/identity/ecdsa.ts","../node_modules/@dfinity/identity/src/identity/delegation.ts","../node_modules/@dfinity/identity/src/identity/webauthn.ts","../node_modules/@dfinity/assets/src/canisters/assets_idl.js","../node_modules/@dfinity/assets/node_modules/src/index.ts","../node_modules/@dfinity/assets/src/readable/readable.ts","../node_modules/@dfinity/assets/src/readable/readableFile.ts","../node_modules/@dfinity/assets/src/readable/readableBlob.ts","../node_modules/@dfinity/assets/src/readable/readablePath.ts","../node_modules/@dfinity/assets/src/readable/readableBytes.ts","../node_modules/@dfinity/assets/src/utils/limit.ts","../node_modules/@dfinity/assets/src/index.ts","../node_modules/@dfinity/assets/src/canisters/assets.ts","../node_modules/react-masonry-css/dist/react-masonry-css.module.js","App.js","index.js"],"sourcesContent":["/** @module CanisterStatus */\n\nimport { lebDecode, PipeArrayBuffer } from '@dfinity/candid';\nimport { Principal } from '@dfinity/principal';\nimport { AgentError } from '../errors';\nimport { HttpAgent } from '../agent/http';\nimport { Certificate, CreateCertificateOptions } from '../certificate';\nimport { toHex } from '../utils/buffer';\nimport * as Cbor from '../cbor';\n\n/**\n * Types of an entry on the canisterStatus map.\n * An entry of null indicates that the request failed, due to lack of permissions or the result being missing.\n */\nexport type Status = string | ArrayBuffer | Date | ArrayBuffer[] | Principal[] | bigint | null;\n\n/**\n * Interface to define a custom path. Nested paths will be represented as individual buffers, and can be created from text using {@link TextEncoder}\n */\nexport interface CustomPath {\n key: string;\n path: ArrayBuffer[] | string;\n decodeStrategy: 'cbor' | 'hex' | 'leb128' | 'utf-8' | 'raw';\n}\n\n/**\n * Interface to request metadata from the icp:public or icp:private sections.\n * Similar to {@link CustomPath}, but accepts a simple string argument.\n * Private metadata will require the ${@link Identity} used by the ${@link HttpAgent} will need to be requested using an identity that controlls the canister.\n */\nexport interface MetaData {\n kind: 'metadata';\n key: string;\n path: string | ArrayBuffer;\n decodeStrategy: 'cbor' | 'hex' | 'leb128' | 'utf-8' | 'raw';\n}\n\n/**\n * Pre-configured fields for canister status paths\n */\nexport type Path =\n | 'time'\n | 'controllers'\n | 'subnet'\n | 'module_hash'\n | 'candid'\n | MetaData\n | CustomPath;\n\nexport type StatusMap = Map;\n\nexport type CanisterStatusOptions = {\n canisterId: Principal;\n agent: HttpAgent;\n paths?: Path[] | Set;\n blsVerify?: CreateCertificateOptions['blsVerify'];\n};\n\n/**\n *\n * @param {CanisterStatusOptions} options {@link CanisterStatusOptions}\n * @param {CanisterStatusOptions['canisterId']} options.canisterId {@link Principal}\n * @param {CanisterStatusOptions['agent']} options.agent {@link HttpAgent} optional authenticated agent to use to make the canister request. Useful for accessing private metadata under icp:private\n * @param {CanisterStatusOptions['paths']} options.paths {@link Path[]}\n * @returns {Status} object populated with data from the requested paths\n * @example\n * const status = await canisterStatus({\n * paths: ['controllers', 'candid'],\n * ...options\n * });\n *\n * const controllers = status.get('controllers');\n */\nexport const request = async (options: {\n canisterId: Principal;\n agent: HttpAgent;\n paths?: Path[] | Set;\n}): Promise => {\n const { canisterId, agent, paths } = options;\n\n const uniquePaths = [...new Set(paths)];\n\n // Map path options to their correct formats\n const encodedPaths = uniquePaths.map(path => {\n return encodePath(path, canisterId);\n });\n const status = new Map();\n\n const promises = uniquePaths.map((path, index) => {\n return (async () => {\n try {\n const response = await agent.readState(canisterId, {\n paths: [encodedPaths[index]],\n });\n const cert = await Certificate.create({\n certificate: response.certificate,\n rootKey: agent.rootKey,\n canisterId: canisterId,\n });\n\n const data = cert.lookup(encodePath(uniquePaths[index], canisterId));\n if (!data) {\n // Typically, the cert lookup will throw\n console.warn(`Expected to find result for path ${path}, but instead found nothing.`);\n if (typeof path === 'string') {\n status.set(path, null);\n } else {\n status.set(path.key, null);\n }\n } else {\n switch (path) {\n case 'time': {\n status.set(path, decodeTime(data));\n break;\n }\n case 'controllers': {\n status.set(path, decodeControllers(data));\n break;\n }\n case 'module_hash': {\n status.set(path, decodeHex(data));\n break;\n }\n case 'candid': {\n status.set(path, new TextDecoder().decode(data));\n break;\n }\n default: {\n // Check for CustomPath signature\n if (typeof path !== 'string' && 'key' in path && 'path' in path) {\n switch (path.decodeStrategy) {\n case 'raw':\n status.set(path.key, data);\n break;\n case 'leb128': {\n status.set(path.key, decodeLeb128(data));\n break;\n }\n case 'cbor': {\n status.set(path.key, decodeCbor(data));\n break;\n }\n case 'hex': {\n status.set(path.key, decodeHex(data));\n break;\n }\n case 'utf-8': {\n status.set(path.key, decodeUtf8(data));\n }\n }\n }\n }\n }\n }\n } catch (error) {\n // Break on signature verification errors\n if ((error as AgentError)?.message?.includes('Invalid certificate')) {\n throw new AgentError((error as AgentError).message);\n }\n if (typeof path !== 'string' && 'key' in path && 'path' in path) {\n status.set(path.key, null);\n } else {\n status.set(path, null);\n }\n console.group();\n console.warn(`Expected to find result for path ${path}, but instead found nothing.`);\n console.warn(error);\n console.groupEnd();\n }\n })();\n });\n\n // Fetch all values separately, as each option can fail\n await Promise.all(promises);\n\n return status;\n};\n\nexport const encodePath = (path: Path, canisterId: Principal): ArrayBuffer[] => {\n const encoder = new TextEncoder();\n\n const encode = (arg: string): ArrayBuffer => {\n return new DataView(encoder.encode(arg).buffer).buffer;\n };\n const canisterBuffer = new DataView(canisterId.toUint8Array().buffer).buffer;\n switch (path) {\n case 'time':\n return [encode('time')];\n case 'controllers':\n return [encode('canister'), canisterBuffer, encode('controllers')];\n case 'module_hash':\n return [encode('canister'), canisterBuffer, encode('module_hash')];\n case 'subnet':\n return [encode('subnet')];\n case 'candid':\n return [encode('canister'), canisterBuffer, encode('metadata'), encode('candid:service')];\n default: {\n // Check for CustomPath signature\n if ('key' in path && 'path' in path) {\n // For simplified metadata queries\n if (typeof path['path'] === 'string' || path['path'] instanceof ArrayBuffer) {\n const metaPath = path.path;\n const encoded = typeof metaPath === 'string' ? encode(metaPath) : metaPath;\n\n return [encode('canister'), canisterBuffer, encode('metadata'), encoded];\n\n // For non-metadata, return the provided custompath\n } else {\n return path['path'];\n }\n }\n }\n }\n throw new Error(\n `An unexpeected error was encountered while encoding your path for canister status. Please ensure that your path, ${path} was formatted correctly.`,\n );\n};\n\nconst decodeHex = (buf: ArrayBuffer): string => {\n return toHex(buf);\n};\n\nconst decodeLeb128 = (buf: ArrayBuffer): bigint => {\n return lebDecode(new PipeArrayBuffer(buf));\n};\n\nconst decodeCbor = (buf: ArrayBuffer): ArrayBuffer[] => {\n return Cbor.decode(buf);\n};\n\nconst decodeUtf8 = (buf: ArrayBuffer): string => {\n return new TextDecoder().decode(buf);\n};\n\n// time is a LEB128-encoded Nat\nconst decodeTime = (buf: ArrayBuffer): Date => {\n const decoded = decodeLeb128(buf);\n return new Date(Number(decoded / BigInt(1_000_000)));\n};\n\n// Controllers are CBOR-encoded buffers, starting with a Tag we don't need\nconst decodeControllers = (buf: ArrayBuffer): Principal[] => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [tag, ...controllersRaw] = decodeCbor(buf);\n return controllersRaw.map((buf: ArrayBuffer) => {\n return Principal.fromUint8Array(new Uint8Array(buf));\n });\n};\n","// tslint:disable:max-classes-per-file\n// This file is based on:\n// tslint:disable-next-line: max-line-length\n// https://github.com/dfinity-lab/dfinity/blob/9bca65f8edd65701ea6bdb00e0752f9186bbc893/docs/spec/public/index.adoc#cbor-encoding-of-requests-and-responses\nimport borc from 'borc';\nimport * as cbor from 'simple-cbor';\nimport { CborEncoder, SelfDescribeCborSerializer } from 'simple-cbor';\nimport { Principal } from '@dfinity/principal';\nimport { concat, fromHex } from './utils/buffer';\n\n// We are using hansl/simple-cbor for CBOR serialization, to avoid issues with\n// encoding the uint64 values that the HTTP handler of the client expects for\n// canister IDs. However, simple-cbor does not yet provide deserialization so\n// we are using `Uint8Array` so that we can use the dignifiedquire/borc CBOR\n// decoder.\n\nclass PrincipalEncoder implements CborEncoder {\n public get name() {\n return 'Principal';\n }\n\n public get priority() {\n return 0;\n }\n\n public match(value: any): boolean {\n return value && value._isPrincipal === true;\n }\n\n public encode(v: Principal): cbor.CborValue {\n return cbor.value.bytes(v.toUint8Array());\n }\n}\n\nclass BufferEncoder implements CborEncoder {\n public get name() {\n return 'Buffer';\n }\n\n public get priority() {\n return 1;\n }\n\n public match(value: any): boolean {\n return value instanceof ArrayBuffer || ArrayBuffer.isView(value);\n }\n\n public encode(v: ArrayBuffer): cbor.CborValue {\n return cbor.value.bytes(new Uint8Array(v));\n }\n}\n\nclass BigIntEncoder implements CborEncoder {\n public get name() {\n return 'BigInt';\n }\n\n public get priority() {\n return 1;\n }\n\n public match(value: any): boolean {\n return typeof value === `bigint`;\n }\n\n public encode(v: bigint): cbor.CborValue {\n // Always use a bigint encoding.\n if (v > BigInt(0)) {\n return cbor.value.tagged(2, cbor.value.bytes(fromHex(v.toString(16))));\n } else {\n return cbor.value.tagged(3, cbor.value.bytes(fromHex((BigInt('-1') * v).toString(16))));\n }\n }\n}\n\nconst serializer = SelfDescribeCborSerializer.withDefaultEncoders(true);\nserializer.addEncoder(new PrincipalEncoder());\nserializer.addEncoder(new BufferEncoder());\nserializer.addEncoder(new BigIntEncoder());\n\nexport enum CborTag {\n Uint64LittleEndian = 71,\n Semantic = 55799,\n}\n\n/**\n * Encode a JavaScript value into CBOR.\n */\nexport function encode(value: any): ArrayBuffer {\n return serializer.serialize(value);\n}\n\nfunction decodePositiveBigInt(buf: Uint8Array): bigint {\n const len = buf.byteLength;\n let res = BigInt(0);\n for (let i = 0; i < len; i++) {\n // tslint:disable-next-line:no-bitwise\n res = res * BigInt(0x100) + BigInt(buf[i]);\n }\n\n return res;\n}\n\n// A BORC subclass that decodes byte strings to ArrayBuffer instead of the Buffer class.\nclass Uint8ArrayDecoder extends borc.Decoder {\n public createByteString(raw: ArrayBuffer[]): ArrayBuffer {\n return concat(...raw);\n }\n\n public createByteStringFromHeap(start: number, end: number): ArrayBuffer {\n if (start === end) {\n return new ArrayBuffer(0);\n }\n\n return new Uint8Array((this as any)._heap.slice(start, end));\n }\n}\n\nexport function decode(input: ArrayBuffer): T {\n const buffer = new Uint8Array(input);\n const decoder = new Uint8ArrayDecoder({\n size: buffer.byteLength,\n tags: {\n // Override tags 2 and 3 for BigInt support (borc supports only BigNumber).\n 2: val => decodePositiveBigInt(val),\n 3: val => -decodePositiveBigInt(val),\n [CborTag.Semantic]: (value: T): T => value,\n },\n });\n\n return decoder.decodeFirst(buffer);\n}\n","import * as cbor from './cbor';\nimport { AgentError } from './errors';\nimport { hash } from './request_id';\nimport { concat, fromHex, toHex } from './utils/buffer';\nimport { Principal } from '@dfinity/principal';\nimport * as bls from './utils/bls';\n\n/**\n * A certificate may fail verification with respect to the provided public key\n */\nexport class CertificateVerificationError extends AgentError {\n constructor(reason: string) {\n super(`Invalid certificate: ${reason}`);\n }\n}\n\ninterface Cert {\n tree: HashTree;\n signature: ArrayBuffer;\n delegation?: Delegation;\n}\n\nconst enum NodeId {\n Empty = 0,\n Fork = 1,\n Labeled = 2,\n Leaf = 3,\n Pruned = 4,\n}\n\nexport type HashTree =\n | [NodeId.Empty]\n | [NodeId.Fork, HashTree, HashTree]\n | [NodeId.Labeled, ArrayBuffer, HashTree]\n | [NodeId.Leaf, ArrayBuffer]\n | [NodeId.Pruned, ArrayBuffer];\n\n/**\n * Make a human readable string out of a hash tree.\n * @param tree\n */\nexport function hashTreeToString(tree: HashTree): string {\n const indent = (s: string) =>\n s\n .split('\\n')\n .map(x => ' ' + x)\n .join('\\n');\n function labelToString(label: ArrayBuffer): string {\n const decoder = new TextDecoder(undefined, { fatal: true });\n try {\n return JSON.stringify(decoder.decode(label));\n } catch (e) {\n return `data(...${label.byteLength} bytes)`;\n }\n }\n\n switch (tree[0]) {\n case NodeId.Empty:\n return '()';\n case NodeId.Fork: {\n const left = hashTreeToString(tree[1]);\n const right = hashTreeToString(tree[2]);\n return `sub(\\n left:\\n${indent(left)}\\n---\\n right:\\n${indent(right)}\\n)`;\n }\n case NodeId.Labeled: {\n const label = labelToString(tree[1]);\n const sub = hashTreeToString(tree[2]);\n return `label(\\n label:\\n${indent(label)}\\n sub:\\n${indent(sub)}\\n)`;\n }\n case NodeId.Leaf: {\n return `leaf(...${tree[1].byteLength} bytes)`;\n }\n case NodeId.Pruned: {\n return `pruned(${toHex(new Uint8Array(tree[1]))}`;\n }\n default: {\n return `unknown(${JSON.stringify(tree[0])})`;\n }\n }\n}\n\ninterface Delegation extends Record {\n subnet_id: ArrayBuffer;\n certificate: ArrayBuffer;\n}\n\nfunction isBufferEqual(a: ArrayBuffer, b: ArrayBuffer): boolean {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n const a8 = new Uint8Array(a);\n const b8 = new Uint8Array(b);\n for (let i = 0; i < a8.length; i++) {\n if (a8[i] !== b8[i]) {\n return false;\n }\n }\n return true;\n}\n\ntype VerifyFunc = (pk: Uint8Array, sig: Uint8Array, msg: Uint8Array) => Promise;\n\nexport interface CreateCertificateOptions {\n /**\n * The bytes encoding the certificate to be verified\n */\n certificate: ArrayBuffer;\n /**\n * The root key against which to verify the certificate\n * (normally, the root key of the IC main network)\n */\n rootKey: ArrayBuffer;\n /**\n * The effective canister ID of the request when verifying a response, or\n * the signing canister ID when verifying a certified variable.\n */\n canisterId: Principal;\n /**\n * BLS Verification strategy. Default strategy uses wasm for performance, but that may not be available in all contexts.\n */\n blsVerify?: VerifyFunc;\n}\n\nexport class Certificate {\n private readonly cert: Cert;\n\n /**\n * Create a new instance of a certificate, automatically verifying it. Throws a\n * CertificateVerificationError if the certificate cannot be verified.\n * @constructs {@link AuthClient}\n * @param {CreateCertificateOptions} options\n * @see {@link CreateCertificateOptions}\n * @param {ArrayBuffer} options.certificate The bytes of the certificate\n * @param {ArrayBuffer} options.rootKey The root key to verify against\n * @param {Principal} options.canisterId The effective or signing canister ID\n * @throws {CertificateVerificationError}\n */\n public static async create(options: CreateCertificateOptions): Promise {\n let blsVerify = options.blsVerify;\n if (!blsVerify) {\n blsVerify = bls.blsVerify;\n }\n const cert = new Certificate(\n options.certificate,\n options.rootKey,\n options.canisterId,\n blsVerify,\n );\n await cert.verify();\n return cert;\n }\n\n private constructor(\n certificate: ArrayBuffer,\n private _rootKey: ArrayBuffer,\n private _canisterId: Principal,\n private _blsVerify: VerifyFunc,\n ) {\n this.cert = cbor.decode(new Uint8Array(certificate));\n }\n\n public lookup(path: Array): ArrayBuffer | undefined {\n return lookup_path(path, this.cert.tree);\n }\n\n private async verify(): Promise {\n const rootHash = await reconstruct(this.cert.tree);\n const derKey = await this._checkDelegationAndGetKey(this.cert.delegation);\n const sig = this.cert.signature;\n const key = extractDER(derKey);\n const msg = concat(domain_sep('ic-state-root'), rootHash);\n let sigVer = false;\n try {\n sigVer = await this._blsVerify(new Uint8Array(key), new Uint8Array(sig), new Uint8Array(msg));\n } catch (err) {\n sigVer = false;\n }\n if (!sigVer) {\n throw new CertificateVerificationError('Signature verification failed');\n }\n }\n\n private async _checkDelegationAndGetKey(d?: Delegation): Promise {\n if (!d) {\n return this._rootKey;\n }\n const cert: Certificate = await Certificate.create({\n certificate: d.certificate,\n rootKey: this._rootKey,\n canisterId: this._canisterId,\n });\n\n const rangeLookup = cert.lookup(['subnet', d.subnet_id, 'canister_ranges']);\n if (!rangeLookup) {\n throw new CertificateVerificationError(\n `Could not find canister ranges for subnet 0x${toHex(d.subnet_id)}`,\n );\n }\n const ranges_arr: Array<[Uint8Array, Uint8Array]> = cbor.decode(rangeLookup);\n const ranges: Array<[Principal, Principal]> = ranges_arr.map(v => [\n Principal.fromUint8Array(v[0]),\n Principal.fromUint8Array(v[1]),\n ]);\n\n const canisterInRange = ranges.some(\n r => r[0].ltEq(this._canisterId) && r[1].gtEq(this._canisterId),\n );\n if (!canisterInRange) {\n throw new CertificateVerificationError(\n `Canister ${this._canisterId} not in range of delegations for subnet 0x${toHex(\n d.subnet_id,\n )}`,\n );\n }\n const publicKeyLookup = cert.lookup(['subnet', d.subnet_id, 'public_key']);\n if (!publicKeyLookup) {\n throw new Error(`Could not find subnet key for subnet 0x${toHex(d.subnet_id)}`);\n }\n return publicKeyLookup;\n }\n}\n\nconst DER_PREFIX = fromHex(\n '308182301d060d2b0601040182dc7c0503010201060c2b0601040182dc7c05030201036100',\n);\nconst KEY_LENGTH = 96;\n\nfunction extractDER(buf: ArrayBuffer): ArrayBuffer {\n const expectedLength = DER_PREFIX.byteLength + KEY_LENGTH;\n if (buf.byteLength !== expectedLength) {\n throw new TypeError(`BLS DER-encoded public key must be ${expectedLength} bytes long`);\n }\n const prefix = buf.slice(0, DER_PREFIX.byteLength);\n if (!isBufferEqual(prefix, DER_PREFIX)) {\n throw new TypeError(\n `BLS DER-encoded public key is invalid. Expect the following prefix: ${DER_PREFIX}, but get ${prefix}`,\n );\n }\n\n return buf.slice(DER_PREFIX.byteLength);\n}\n\n/**\n * @param t\n */\nexport async function reconstruct(t: HashTree): Promise {\n switch (t[0]) {\n case NodeId.Empty:\n return hash(domain_sep('ic-hashtree-empty'));\n case NodeId.Pruned:\n return t[1] as ArrayBuffer;\n case NodeId.Leaf:\n return hash(concat(domain_sep('ic-hashtree-leaf'), t[1] as ArrayBuffer));\n case NodeId.Labeled:\n return hash(\n concat(\n domain_sep('ic-hashtree-labeled'),\n t[1] as ArrayBuffer,\n await reconstruct(t[2] as HashTree),\n ),\n );\n case NodeId.Fork:\n return hash(\n concat(\n domain_sep('ic-hashtree-fork'),\n await reconstruct(t[1] as HashTree),\n await reconstruct(t[2] as HashTree),\n ),\n );\n default:\n throw new Error('unreachable');\n }\n}\n\nfunction domain_sep(s: string): ArrayBuffer {\n const len = new Uint8Array([s.length]);\n const str = new TextEncoder().encode(s);\n return concat(len, str);\n}\n\n/**\n * @param path\n * @param tree\n */\nexport function lookup_path(\n path: Array,\n tree: HashTree,\n): ArrayBuffer | undefined {\n if (path.length === 0) {\n switch (tree[0]) {\n case NodeId.Leaf: {\n return new Uint8Array(tree[1]).buffer;\n }\n default: {\n return undefined;\n }\n }\n }\n\n const label = typeof path[0] === 'string' ? new TextEncoder().encode(path[0]) : path[0];\n const t = find_label(label, flatten_forks(tree));\n if (t) {\n return lookup_path(path.slice(1), t);\n }\n}\nfunction flatten_forks(t: HashTree): HashTree[] {\n switch (t[0]) {\n case NodeId.Empty:\n return [];\n case NodeId.Fork:\n return flatten_forks(t[1] as HashTree).concat(flatten_forks(t[2] as HashTree));\n default:\n return [t];\n }\n}\nfunction find_label(l: ArrayBuffer, trees: HashTree[]): HashTree | undefined {\n if (trees.length === 0) {\n return undefined;\n }\n for (const t of trees) {\n if (t[0] === NodeId.Labeled) {\n const p = t[1] as ArrayBuffer;\n if (isBufferEqual(l, p)) {\n return t[2];\n }\n }\n }\n}\n","/**\n * An error that happens in the Agent. This is the root of all errors and should be used\n * everywhere in the Agent code (this package).\n *\n * @todo https://github.com/dfinity/agent-js/issues/420\n */\nexport class AgentError extends Error {\n constructor(public readonly message: string) {\n super(message);\n Object.setPrototypeOf(this, AgentError.prototype);\n }\n}\n","import { lebEncode } from '@dfinity/candid';\nimport { Principal } from '@dfinity/principal';\nimport borc from 'borc';\nimport { sha256 as jsSha256 } from 'js-sha256';\nimport { compare, concat } from './utils/buffer';\n\nexport type RequestId = ArrayBuffer & { __requestId__: void };\n\n/**\n * sha256 hash the provided Buffer\n * @param data - input to hash function\n */\nexport function hash(data: ArrayBuffer): ArrayBuffer {\n return jsSha256.create().update(new Uint8Array(data)).arrayBuffer();\n}\n\ninterface ToHashable {\n toHash(): unknown;\n}\n\n/**\n *\n * @param value unknown value\n * @returns ArrayBuffer\n */\nexport function hashValue(value: unknown): ArrayBuffer {\n if (value instanceof borc.Tagged) {\n return hashValue(value.value);\n } else if (typeof value === 'string') {\n return hashString(value);\n } else if (typeof value === 'number') {\n return hash(lebEncode(value));\n } else if (value instanceof ArrayBuffer || ArrayBuffer.isView(value)) {\n return hash(value as ArrayBuffer);\n } else if (Array.isArray(value)) {\n const vals = value.map(hashValue);\n return hash(concat(...vals));\n } else if (value && typeof value === 'object' && (value as any)._isPrincipal) {\n return hash((value as Principal).toUint8Array());\n } else if (\n typeof value === 'object' &&\n value !== null &&\n typeof (value as ToHashable).toHash === 'function'\n ) {\n return hashValue((value as ToHashable).toHash());\n // TODO This should be move to a specific async method as the webauthn flow required\n // the flow to be synchronous to ensure Safari touch id works.\n // } else if (value instanceof Promise) {\n // return value.then(x => hashValue(x));\n } else if (typeof value === 'bigint') {\n // Do this check much later than the other bigint check because this one is much less\n // type-safe.\n // So we want to try all the high-assurance type guards before this 'probable' one.\n return hash(lebEncode(value));\n }\n throw Object.assign(new Error(`Attempt to hash a value of unsupported type: ${value}`), {\n // include so logs/callers can understand the confusing value.\n // (when stringified in error message, prototype info is lost)\n value,\n });\n}\n\nconst hashString = (value: string): ArrayBuffer => {\n const encoded = new TextEncoder().encode(value);\n return hash(encoded);\n};\n\n/**\n * Get the RequestId of the provided ic-ref request.\n * RequestId is the result of the representation-independent-hash function.\n * https://sdk.dfinity.org/docs/interface-spec/index.html#hash-of-map\n * @param request - ic-ref request to hash into RequestId\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function requestIdOf(request: Record): RequestId {\n const hashed: Array<[ArrayBuffer, ArrayBuffer]> = Object.entries(request)\n .filter(([, value]) => value !== undefined)\n .map(([key, value]: [string, unknown]) => {\n const hashedKey = hashString(key);\n const hashedValue = hashValue(value);\n\n return [hashedKey, hashedValue] as [ArrayBuffer, ArrayBuffer];\n });\n\n const traversed: Array<[ArrayBuffer, ArrayBuffer]> = hashed;\n\n const sorted: Array<[ArrayBuffer, ArrayBuffer]> = traversed.sort(([k1], [k2]) => {\n return compare(k1, k2);\n });\n\n const concatenated: ArrayBuffer = concat(...sorted.map(x => concat(...x)));\n const requestId = hash(concatenated) as RequestId;\n return requestId;\n}\n","import * as base64Arraybuffer from 'base64-arraybuffer';\n\n// This WASM is generated from the miracl BLS Rust code (see\n// https://github.com/dfinity/miracl_core_bls12381/)\nimport { wasmBytesBase64 } from './wasm';\n\n/* tslint:disable */\n/* eslint-disable */\nlet wasm: InitOutput;\n\nconst wasmBytes = base64Arraybuffer.decode(wasmBytesBase64);\n\n/**\n * @returns {number}\n */\nexport function bls_init() {\n let ret = wasm.bls_init();\n return ret;\n}\n\nlet cachegetUint8Memory0: any = null;\nfunction getUint8Memory0() {\n if (cachegetUint8Memory0 === null || cachegetUint8Memory0.buffer !== wasm.memory.buffer) {\n cachegetUint8Memory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachegetUint8Memory0;\n}\n\nfunction passArray8ToWasm0(arg: any, malloc: any): [number, number] {\n const ptr = malloc(arg.length * 1);\n getUint8Memory0().set(arg, ptr / 1);\n return [ptr, arg.length];\n}\n\n/**\n * @param {Uint8Array} sig\n * @param {Uint8Array} m\n * @param {Uint8Array} w\n * @returns {number}\n */\nexport function bls_verify(sig: Uint8Array, m: Uint8Array, w: Uint8Array): number {\n const [ptr0, len0] = passArray8ToWasm0(sig, wasm.__wbindgen_malloc);\n const [ptr1, len1] = passArray8ToWasm0(m, wasm.__wbindgen_malloc);\n const [ptr2, len2] = passArray8ToWasm0(w, wasm.__wbindgen_malloc);\n\n const ret = wasm.bls_verify(ptr0, len0, ptr1, len1, ptr2, len2);\n return ret;\n}\n\nasync function load(module: any, imports: any) {\n if (typeof Response === 'function' && module instanceof Response) {\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n } else {\n return instance;\n }\n }\n}\n\nasync function init(): Promise {\n const imports = {};\n const { instance, module } = await load(wasmBytes, imports);\n\n wasm = instance.exports as any as InitOutput;\n (init as any).__wbindgen_wasm_module = module;\n\n return wasm;\n}\n\nexport type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;\n\nexport interface InitOutput {\n readonly memory: WebAssembly.Memory;\n readonly bls_init: () => number;\n readonly bls_verify: (a: number, b: number, c: number, d: number, e: number, f: number) => number;\n readonly __wbindgen_malloc: (a: number) => number;\n}\n\n/**\n * If `module_or_path` is {RequestInfo} or {URL}, makes a request and\n * for everything else, calls `WebAssembly.instantiate` directly.\n *\n * @param {InitInput | Promise} module_or_path\n *\n * @returns {Promise}\n */\nexport default init;\n","export const wasmBytesBase64 = `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akE4ENABGiACQbgDakEBNgIAIAJBwANqQTgQ0AEaIAJB+ANqQQE2AgAgAkGABGpBOBDQARogAkEBNgK4BCACQcAEakE4ENABGiACQfgEakEBNgIAIAJBgAVqQTgQ0AEaIAJBuAVqQQE2AgAgAkHABWpBOBDQARogAkH4BWpBATYCACACQYAGakE4ENABGiACQQE2ArgGIAJBwAZqQTgQ0AEaIAJB+AZqQQE2AgAgAkGAB2pBOBDQARogAkG4B2pBATYCACACQcAHakE4ENABGiACQfgHakEBNgIAIAIgARAYAkAgASgCgAZBBEYNACAAKAKABkEERg0AIAJBgARqIgMgAEGAAmoQlgEgAyABQYACahAYDAYLIAJBwAxqIgdBOBDQARogAkEBNgL4DCACQYANakE4ENABGiACQbgNakEBNgIAIAJBgAhqIgRBOBDQARogAkEBNgK4CCACQcAIakE4ENABGiACQfgIakEBNgIAIAJBgApqIgMgAEGAA2oiBRBeIAQgAxCZASADIAFBgANqIgYQXiAEIAMQESAHELYBIAEoAoAGQQRHDQMMBAsgACABEAMMBgsgAkHADGoiAyABQYAFahBeIAJBgAxqIgQgA0HAABDRARogAkGABmogBBCnAQsgAkGABmoQZCACQYAIaiIDIAIQlgEgAxArIAJBgAJqIgQgAxCXASAGIAQQlgEgAkGABGoiByADEJYBIAMgABCWASADIAUQlwEgAxCwASACQYAKaiIEIAEQlgEgBCABQYAEahCXASAEELABIAMgBBAYIAcgAxCXASADIAUQlgECQCABKAKABkECRwRAIAJBwAxqIgMgAUGABWoQXiACQYAIaiADEKYBDAELIAJBwAxqIgMgAUGABWoQXiACQYAMaiIBIANBwAAQ0QEaIAJBgAhqIAEQpwELIAJBgAhqIgEQZCACQYAKaiIDIAEQlgEgAxArIAUgAkGABGoQlgEgBSADEJcBIAJBgAZqIgQgAxCXASABEGQgBiABEJcBIAQQsAEgBBBkIAAgAhCWASAAIAQQlwEMAwsgAkGACmoiAyAFEF4gAkHADGoiBCADEJkBIAMgAUGAAmoQXiAEIAMQEQsgACgCgAZBBEcEQCACQYAKaiIDIABBgAJqEF4gAkHADGoiBCADEJkBIAMgBhBeIAQgAxARCyACQYAEaiIDIAJB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AEHcu8AAKAIAQX4gA0EDdndxNgIACyAAIAEQoAEgAEH0vsAAKAIARw0BQey+wAAgATYCAAsPCyABQYACTwRAIAAgARAWDwsgAUEDdiICQQN0QeS7wABqIQECf0Hcu8AAKAIAIgNBASACdCICcQRAIAEoAggMAQtB3LvAACACIANyNgIAIAELIQIgASAANgIIIAIgADYCDCAAIAE2AgwgACACNgIIC+UDAQN/IwBB0CJrIgMkACADQcAWaiIEQcitwAAQSSADQcgcaiIFQYCuwAAQSSADQQhqIAQgBRBLIANBiAFqQTgQ0AEaIANBwAFqQTgQ0AEaIANB+AFqED0CQCACEIYBBEAgABBVDAELIANB+ARqIgQQPSAEIAEQfSAEEEcgA0H4B2oiARBnIAEgAhB4IAEQRiADQcgcaiICIAEQkAEgA0G4CWogAhCQASACIANBuAhqEJABIANB+AlqIAIQkAEgA0G4CmoiARA9IANBuA1qEFUgASAEEH0gA0HAE2oiARA9IAEgBBB9IAEQogEgA0HAAWogA0GIAWoQUEECayECA0AgAkEBakEBTQRAIANBuA1qIgEQngEgACABQYgGENEBGgUgA0G4DWoQGiADQcAWaiADQbgKaiADQbgJaiADQfgJahALAkACQAJAIANBwAFqIAIQUyADQYgBaiACEFNrQQFqDgMBAgACCyADQcgcaiIBIANBuApqIANB+ARqIANBuAlqIANB+AlqEAogA0HAFmogARADDAELIANByBxqIgEgA0G4CmogA0HAE2ogA0G4CWogA0H4CWoQCiADQcAWaiABEAMLIAJBAWshAiADQbgNaiADQcAWahABDAELCwsgA0HQImokAAvBAwEVfwNAIANBwAFGBEACQCAAQShqIQsgAEEUaigCACIMIQggAEEQaigCACINIQIgAEEMaigCACIOIQEgACgCCCIPIQMgAEEYaigCACIQIQogAEEcaigCACIRIQQgAEEgaigCACISIQcgAEEkaigCACITIQYDQCAHIQkgBCEHIAohBCAFQYACRg0BIAEgAnEhFCABIAJzIRUgBSALaigCACAFQcCiwABqKAIAIAkgBEF/c3EgBCAHcXIgBmogBEEadyAEQRV3cyAEQQd3c2pqaiIGIAhqIQogBUEEaiEFIAIhCCABIQIgAyIBQR53IAFBE3dzIAFBCndzIBQgASAVcXNqIAZqIQMgCSEGDAALAAsFIAAgA2oiAkHoAGogAkEoaigCACACQcwAaigCACACQeAAaigCACIBQQ93IAFBDXdzIAFBCnZzamogAkEsaigCACIBQRl3IAFBDndzIAFBA3ZzajYCACADQQRqIQMMAQsLIAAgBiATajYCJCAAIAkgEmo2AiAgACAHIBFqNgIcIAAgBCAQajYCGCAAIAggDGo2AhQgACACIA1qNgIQIAAgASAOajYCDCAAIAMgD2o2AggL5AEBAn8jAEGAA2siAyQAIAMQPSAAIAEgAkEfdSIEIAJzIARBf3NqQQJtIgJBAWtBH3YQbyAAIAFBgANqIAJBAXNBAWtBH3YQbyAAIAFBgAZqIAJBAnNBAWtBH3YQbyAAIAFBgAlqIAJBA3NBAWtBH3YQbyAAIAFBgAxqIAJBBHNBAWtBH3YQbyAAIAFBgA9qIAJBBXNBAWtBH3YQbyAAIAFBgBJqIAJBBnNBAWtBH3YQbyAAIAFBgBVqIAJBB3NBAWtBH3YQbyADIAAQfSADEKIBIAAgAyAEQQFxEG8gA0GAA2okAAvlAwEIfyMAQZAGayICJAAgAEFAayEIAkAgAUH4AGooAgAgASgCOGqsIABB+ABqKAIAIgcgACgCOCIEaqx+Qv///w9XDQAgBEEBSgR/IAAQHiAAKAJ4BSAHC0EBTA0AIAgQHgsgAkHYpMAAEEkgAkE4aiIHQfAAENABGiACIQNBACECA0AgAkE4RgRAAkAgB0E4aiEEQQAhAgNAIAJBOEYNASACIARqIAIgA2opAwA3AwAgAkEIaiECDAALAAsFIAIgB2pCADcDACACQQhqIQIMAQsLIANBqAFqIgYgABBdIANB4AFqIgUgARBdIANBmAJqIgIgACABEAUgA0GIA2oiBCAIIAFBQGsiARAFIAYgCBBgIAYQQiAFIAEQYCAFEEIgA0H4A2oiCSAGIAUQBUEAIQEgA0HoBGoiBkHwABDQASEFA0AgAUHwAEcEQCABIAVqIAEgAmopAwA3AwAgAUEIaiEBDAELCyAGIAQQYkEAIQEDQCABQfAARwRAIAEgBGoiBSABIAdqKQMAIAUpAwB9NwMAIAFBCGohAQwBCwsgAiAEEGIgAhBIIAkgBhBjIAkQSCADQdgFaiIBIAIQayAAIAEQaiAAQQM2AjggASAJEGsgCCABEGogAEECNgJ4IANBkAZqJAALowIBCH8jAEGABmsiAiQAIAIgAEGAAWoiBxBeIAJBgAFqIgQgBxBeIAQQLSACQYACaiIFIAIQXiAFIABBgAJqIgMQESACQYADaiIBIAMQXiABEC0gAyAEEJkBIAMgBBCaASADEKkBIAMQuAEgAxC4ASADEKkBIAFBDBCrASABEHwgARCpASACQYAEaiIIIAEQXiAIIAMQESACQYAFaiIGIAQQXiAGIAEQmgEgBhCpASADIAUQESAFIAEQmQEgBSABEJoBIAEgBRCaASABEKkBIAQgARB7IAQQqQEgBiAEEBEgBiAIEJoBIAUgABCZASAFIAIQESAAIAQQmQEgABCpASAAIAUQESAAELgBIAAQqQEgByAGEJkBIAcQqQEgAkGABmokAAu8AgEGfyMAQYAIayIBJAAgASAAEIwBIAFBgAJqIgMgAEGABGoiBRCMASABQYAEaiIEIABBgAJqIgYQjAEgAUGABmoiAkE4ENABGiABQQE2ArgGIAFBwAZqQTgQ0AEaIAFB+AZqQQE2AgAgAUGAB2pBOBDQARogAUG4B2pBATYCACABQcAHakE4ENABGiABQfgHakEBNgIAIAAQISACIAAQlgEgAiAAEJcBIAAgAhCXASAAELABIAEQyQEgARCzASAAIAEQlwEgAxAhIAMQZCACIAMQlgEgAiADEJcBIAMgAhCXASADELABIAQQISACIAQQlgEgAiAEEJcBIAQgAhCXASAEELABIAYQsgEgBhCzASAFEMkBIAUQswEgBiADEJcBIAUgBBCXASAAQQU2AoAGIAAQnAEgAUGACGokAAv/AQEHfyMAQcACayIBJAAgASAAQUBrIgYQkAEgARBMIAFBQGsiAyAGEJABIAMgAEGAAWoiAhBKIAFBgAFqIgQgAhCQASAEEEwgAiABEK4BIAIgARB3IAIQQiACEIIBIAIQggEgAhBCIARBDBA0IAFBwAFqIgcgBBCQASAHIAIQSiABQYACaiIFIAEQkAEgBSAEEHcgBRBCIAIgAxBKIAMgBBCuASADIAQQdyAEIAMQdyABIAQQfiABEEIgBSABEEogBSAHEHcgAyAAEK4BIAMgBhBKIAAgARCuASAAEEIgACADEEogABCCASAAEEIgBiAFEK4BIAYQQiABQcACaiQAC84CAgd/An4CQAJAAkBBDSABQTpuIgJrIgRBDU0EQEEMIAJrIgNBDk8NASAAIAAgA0EDdGopAwBBOiABIAJBOmxrIgNrrSIKhyAAIARBA3RqKQMAIAOtIgmGhDcDaCAEQQ1rIQUgAEHgAGohBCACQQFqIQZBACACQQN0ayEHQQshAwNAAkAgA0ECaiAGTQRAIAFBrAZPDQEgACACQQN0aiAAKQMAIAmGQv//////////A4M3AwADQCACRQ0HIABCADcDACACQQFrIQIgAEEIaiEADAALAAsgAyAFakEOTw0EIAQgBCAHaiIIQQhrKQMAIAqHIAgpAwAgCYZC//////////8Dg4Q3AwAgA0EBayEDIARBCGshBAwBCwsgAkEOQYCywAAQOwALIARBDkHQscAAEDsACyADQQ5B4LHAABA7AAtBf0EOQfCxwAAQOwALC6cCAQR/IABCADcCECAAAn9BACABQYACSQ0AGkEfIAFB////B0sNABogAUEGIAFBCHZnIgNrdkEBcSADQQF0a0E+agsiBDYCHCAEQQJ0Qey9wABqIQMgACECAkACQAJAAkBB4LvAACgCACIAQQEgBHQiBXEEQCADKAIAIQMgBBCfASEAIAMQywEgAUcNASADIQAMAgtB4LvAACAAIAVyNgIAIAMgAjYCAAwDCyABIAB0IQQDQCADIARBHXZBBHFqQRBqIgUoAgAiAEUNAiAEQQF0IQQgACIDEMsBIAFHDQALCyAAKAIIIgEgAjYCDCAAIAI2AgggAiAANgIMIAIgATYCCCACQQA2AhgPCyAFIAI2AgALIAIgAzYCGCACIAI2AgggAiACNgIMC7YCAQV/IAAoAhghBAJAAkAgACAAKAIMRgRAIABBFEEQIABBFGoiASgCACIDG2ooAgAiAg0BQQAhAQwCCyAAKAIIIgIgACgCDCIBNgIMIAEgAjYCCAwBCyABIABBEGogAxshAwNAIAMhBSACIgFBFGoiAygCACICRQRAIAFBEGohAyABKAIQIQILIAINAAsgBUEANgIACwJAIARFDQACQCAAIAAoAhxBAnRB7L3AAGoiAigCAEcEQCAEQRBBFCAEKAIQIABGG2ogATYCACABDQEMAgsgAiABNgIAIAENAEHgu8AAQeC7wAAoAgBBfiAAKAIcd3E2AgAPCyABIAQ2AhggACgCECICBEAgASACNgIQIAIgATYCGAsgAEEUaigCACIARQ0AIAFBFGogADYCACAAIAE2AhgLC+UBAQZ/IwBBgARrIgIkACACIAAQXiACQYABaiIFIABBgAFqIgYQXiACQYACaiIDQTgQ0AEaIAJBATYCuAIgAkHAAmpBOBDQARogAkH4AmpBATYCACACQYADaiIEIAYQXiACIAEQESAFIAFBgAFqIgcQESADIAcQmQEgAyABEJoBIAQgABCaASADEKkBIAQQqQEgBCADEBEgAyACEJkBIAMQNiAEIAMQmgEgBBCpASADIAUQmQEgAxA2IAYgBBCZASAGIAMQmgEgBRB8IAAgBRCZASAAIAIQmgEgABCwASACQYAEaiQAC28BDH9BjL/AACgCACICRQRAQZy/wABB/x82AgBBAA8LQYS/wAAhBgNAIAIiASgCCCECIAEoAgQhAyABKAIAIQQgAUEMaigCABogASEGIAVBAWohBSACDQALQZy/wAAgBUH/HyAFQf8fSxs2AgBBAAuAAgEGfyMAQYAIayIBJAAgACgCgAZBAUcEQCABIAAQjAEgAUGAAmoiAiAAQYACaiIEEIwBIAFBgARqIgUgAEGABGoiAxCMASABQYAGaiIGIAAQjAEgARAhIAIgAxAYIAIQswEgAhCwASAFECEgBiAEEBggBhCzASADIAAQlwEgAyAEEJcBIAMQsAEgAxAhIAAgARCWASABIAIQlwEgARCwASABIAUQlwEgASAGEJcBIAEQsAEgARArIAIQZCAFEGQgACACEJcBIAQgBRCWASAEIAYQlwEgAyABEJcBIABBBEEFIAAoAoAGQX5xQQJGGzYCgAYgABCdAQsgAUGACGokAAuZAgEBfyMAQYANayIDJAAgAyABEGkgAxCdASADQYgGaiIBIAIQXSABEEIgA0HABmoiAiABEF0gAkEDECkaIAIQQiADQfgGaiADEGkCQCACEFdFBEAgA0HABmoQKkECayECA0AgAkEBakEBTQRAIANB+AZqIgEQnAEMAwUgA0H4BmoQEwJAAkACQCADQcAGaiACEFMgA0GIBmogAhBTa0EBag4DAQIAAgsgA0H4BmogAxAHDAELIAMQngEgA0H4BmogAxAHIAMQngELIAJBAWshAgwBCwALAAsgA0H4BmoiARC3ASABQYABahC2ASABQYACahCxASABQYAEahCxASABQQE2AoAGCyAAIAFBiAYQ0QEaIANBgA1qJAALhgICBH8BfiMAQTBrIgIkACABQQRqIQQgASgCBEUEQCABKAIAIQMgAkEQaiIFQQA2AgAgAkIBNwMIIAIgAkEIajYCFCACQShqIANBEGopAgA3AwAgAkEgaiADQQhqKQIANwMAIAIgAykCADcDGCACQRRqIAJBGGoQDBogBEEIaiAFKAIANgIAIAQgAikDCDcCAAsgAkEgaiIDIARBCGooAgA2AgAgAUEMakEANgIAIAQpAgAhBiABQgE3AgQgAiAGNwMYQQxBBBC5ASIBRQRAQQxBBBDPAQALIAEgAikDGDcCACABQQhqIAMoAgA2AgAgAEGEt8AANgIEIAAgATYCACACQTBqJAAL5AEBAn8jAEHAAWsiAyQAIAMQZyAAIAEgAkEfdSIEIAJzIARBf3NqQQJtIgJBAWtBH3YQbiAAIAFBwAFqIAJBAXNBAWtBH3YQbiAAIAFBgANqIAJBAnNBAWtBH3YQbiAAIAFBwARqIAJBA3NBAWtBH3YQbiAAIAFBgAZqIAJBBHNBAWtBH3YQbiAAIAFBwAdqIAJBBXNBAWtBH3YQbiAAIAFBgAlqIAJBBnNBAWtBH3YQbiAAIAFBwApqIAJBB3NBAWtBH3YQbiADIAAQeCADEKQBIAAgAyAEQQFxEG4gA0HAAWokAAvDAwIGfwN+IwBB8ABrIgEkACABQcCywAAQSSABQThqIAEQXSAAEEICQAJAAkAgAQJ/IAAoAjgiAkEQTARAIAJBAWsQNQwBCyABKQMwIghCAXwiByAIVA0BIAApAzAiCEKAgICAgICAgIB/USAHQn9RcQ0CIAFBOGoiAiAIIAd/pxApIQcgASABKQNoIAdCOoZ8NwNoIAAgAhBhIAAQQkECCyIEECgDQCAERQ0DQQAhAyABIAEpAwgiCEI5hkKAgICAgICAgAKDIAEpAwBCAYeEIgc3AwAgACkDACAHfSEHIABBCGohBSAAIAFBOGoiAkEBA38gAiADaiAHQv//////////A4M3AwAgB0I6hyEHIANBKEYEfyABIAEpAzBCAYciCDcDMCACIAApAzAgCH0gB3wiBzcDMCAHQj+IpwUgASADaiIGQQhqIAhCAYcgBkEQaikDACIIQjmGQoCAgICAgICAAoOEIgk3AwAgAyAFaikDACAHfCAJfSEHIANBCGohAwwBCwtrEDAgBEEBayEEDAALAAtB4LPAAEEZQcSzwAAQWQALQYC0wABBH0HEs8AAEFkACyAAQQE2AjggAUHwAGokAAvuAQECfyMAQbABayIDJAAgA0EwENABIQMCQAJAA0AgAkEwRgRAIANBMGogAxBwIAFBMGohAUEAIQIDQCACQTBGDQMgAkEwRg0EIAIgA2ogASACai0AADoAACACQQFqIQIMAAsACyACQeAARwRAIAIgA2ogASACai0AADoAACACQQFqIQIMAQsLQeAAQeAAQYCmwAAQOwALIANB8ABqIgEgAxBwIABBOBDQASIAQQE2AjggAEFAa0E4ENABIABB+ABqQQE2AgAgACABEK4BIANBMGoQrgEgA0GwAWokAA8LIAJBMGpB4ABBkKbAABA7AAuPAgEDfyMAQSBrIgUkAEEBIQZB2LvAAEHYu8AAKAIAIgdBAWo2AgACQEGgv8AALQAABEBBpL/AACgCAEEBaiEGDAELQaC/wABBAToAAAtBpL/AACAGNgIAAkACQCAHQQBIIAZBAktyDQAgBSAEOgAYIAUgAzYCFCAFIAI2AhBBzLvAACgCACICQQBIDQBBzLvAACACQQFqIgI2AgBBzLvAAEHUu8AAKAIAIgMEf0HQu8AAKAIAIAUgACABKAIQEQAAIAUgBSkDADcDCCAFQQhqIAMoAhQRAABBzLvAACgCAAUgAgtBAWs2AgAgBkEBSw0AIAQNAQsACyMAQRBrIgIkACACIAE2AgwgAiAANgIIAAucAQEEfyMAQYADayICJAAgAiAAEF4gAkGAAWoiASAAQYABaiIEEF4gAkGAAmoiAyAAEF4gAyAEEBEgAiAEEJoBIAEQfCABIAAQmgEgAhCpASABEKkBIAAgAhCZASAAIAEQESABIAMQmQEgARB8IAEgAxCaASABEKkBIAEQNiAAIAEQmgEgAxC4ASAEIAMQmQEgABCwASACQYADaiQAC7kBAQJ/IwBBIGsiAyQAAkAgASABIAJqIgFLDQAgAEEEaigCACICQQF0IgQgASABIARJGyIBQQggAUEISxshAQJAIAIEQCADQRhqQQE2AgAgAyACNgIUIAMgACgCADYCEAwBCyADQQA2AhALIAMgASADQRBqECYgAygCAARAIANBCGooAgAiAEUNASADKAIEIAAQzwEACyADKAIEIQIgAEEEaiABNgIAIAAgAjYCACADQSBqJAAPCxBlAAusAQECfyMAQYADayIDJAAgA0EIaiABEJABAkAgAgRAIANBCGogAhCuAQwBCyADQQhqEDoLIANByABqIgJB8LTAABBJIANBgAFqIAIQjgEgA0HAAWoiAiADQQhqIgQQkAEgAhBMIAIgARBKIAAgARCQASAAIAQQSiADQYACaiACEJABIAAQViEBIANBwAJqIgIgABCQASACEEMgAhBCIAAgAiABEHIgA0GAA2okAAueAQEFfyMAQYABayICJAAgAkE4ENABIgJBATYCOCACQUBrIgNBOBDQARogAkEBNgJ4IAIgABCuASACIAFBgAFqIgUQSiADIAEQrgEgAyAAQYABaiIGEEoCQCACIAMQWEUNACACIABBQGsQrgEgAiAFEEogAkFAayIAIAFBQGsQrgEgACAGEEogAiAAEFhFDQBBASEECyACQYABaiQAIAQLpwEBA38jAEEwayICJAAgAUEEaiEDIAEoAgRFBEAgASgCACEBIAJBEGoiBEEANgIAIAJCATcDCCACIAJBCGo2AhQgAkEoaiABQRBqKQIANwMAIAJBIGogAUEIaikCADcDACACIAEpAgA3AxggAkEUaiACQRhqEAwaIANBCGogBCgCADYCACADIAIpAwg3AgALIABBhLfAADYCBCAAIAM2AgAgAkEwaiQAC5UBAQJ/AkACQAJAAkACfwJAAkACf0EBIgMgAUEASA0AGiACKAIAIgRFDQEgAigCBCICDQQgAQ0CQQEMAwshA0EAIQEMBgsgAQ0AQQEMAQsgAUEBELkBCyICRQ0BDAILIAQgARCsASICDQELIAAgATYCBEEBIQEMAQsgACACNgIEQQAhAwsgACADNgIAIABBCGogATYCAAvvMwISfwV+IwBBMGsiDiQAIA5BEGogACABEFsgDiAOKAIUIgA2AhwgDiAOKAIQIgg2AhggDkEIaiACIAMQWyAOIA4oAgwiATYCJCAOIA4oAggiAzYCICAOIAQgBRBbIA4gDigCBCIFNgIsIA4gDigCACINNgIoIAAhBCMAQZAVayICJAAjAEGwBmsiCiQAIApBEGpBOBDQARogCkHQAGpBOBDQASEVIApBiAFqQQE2AgAgCkEBNgJIIApBkAFqIgBB2KTAABBJIAAQKiEPIApByAFqIhNBgAIQ0AEaIApB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ABBJAkACQAJAAkADQAJAIAxBMEYEQCAAIAAtAABBH3E6AAAgAEHoAGogABC+ASAEDQFBAEEAQZiBwAAQOwALIAQgDEYNAiAAIAxqIAggDGotAAA6AAAgDEEBaiEMDAELC0EAIQwgCCwAACIJQQBIDQIgCEEwaiEDIARBMCAEQTBLG0EwayEIA0AgDEEwRgRAIABBoAFqIgQgABC+ASMAQYABayIDJAAgARBnIAEgAEHoAGoQwAEgAUFAayIIIAQQwAEgAUGAAWoQygEgARBCIAMgARBPIANBQGsiBCAIEJABIAQQTCAEIAMQWEUEQCABEJIBCyADQYABaiQADAULIAggDEYNAiAAIAxqIAMgDGotAAA6AAAgDEEBaiEMDAALAAsgBCAEQYiBwAAQOwALIAxBMGogBEGogcAAEDsACyMAQcABayIDJAAgAEGgAWoiBBBnIANBOBDQASIDQQE2AjggBCAAQegAahDAASAEEEIgBEGAAWoQygEgA0FAayIIIAQQTwJAAkACQCAIIAMQWkEBRgRAIANBgAFqIgggA0FAayADECMgCBBWDQEMAgsgBBCSAQwCCyADQYABaiIIEEMgCBBCCyAEQUBrIANBgAFqEK4BCyADQcABaiQAIAlBIHEiA0EAIABB4AFqEE0iBEEBRxtBASADIARBAUdyGwRAIABBoAFqEKQBCyABIABBoAFqQcABENEBGgsgAEHgAmokAAJ/QQAhAyMAQcAFayIAJAACQCABEIYBDQAgAEEIaiIIQZCtwAAQSSAAQYAEaiIEQbiuwAAQSSAAQUBrIgkgBBCOASAAQYABaiIEEGcgBCABEHggBCAJEEogAEHAAmoiBCABIAgQvQEgASAEECQNACAAQYAEaiIEIABBwAJqIgEgAEEIahC9ASABIARBwAEQ0QEaIAEQpAEgAEGAAWogARAkRQ0AQQEhAwsgAEHABWokAEF/IANFDQAaIAJBwAFqEKQBIAJBgANqIQhBACEAIwBB4ARrIgEkACABQeAAENABIQECQCAFBEADQCAAQeAARgRAIAEgAS0AAEEfcToAACABQeAAaiABEB9BACEAAkAgDSwAACILQQBOBEAgDUHgAGohAyAFQeAAIAVB4ABLG0HgAGshBANAIABB4ABGBEAgAUHgAWoiACABEB8gCCABQeAAaiAAED8MAwsgACAERwRA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AWoQmQEgACAEEBEgAEGAAWoiASAFQYABahCZASABIAgQESAAIAEQeg0BC0EADAELQQELIQEgAEGAAmokACANQcAHaiQAQX8gAUUNABojAEHgA2siACQAIABBgAFqIgFBwKjAABBJIABBuAFqIgNB+KjAABBJIAAgASADEEsgAEHwAmoiAUGwqcAAEEkgAEGoA2oiA0HoqcAAEEkgAEHwAWoiBCABIAMQSyACQYAGaiIBIAAgBBA/IABB4ANqJAAgAkGACWohByACQYADaiEIIwBBkDRrIgAkACAAQYAoaiIDQcitwAAQSSAAQYguaiIEQYCuwAAQSSAAIAMgBBBLIABBgAFqQTgQ0AEaIABBuAFqQTgQ0AEaIABB8AFqED0CQCACQcABaiIEEIYBRQRAIAIQhgEEQCAHIAEgBBAODAILIABB8ARqIgMQPSADIAEQfSADEEcgAEHwB2oiBRBnIAUgBBB4IAUQRiAAQbAJaiIEED0gBCAIEH0gBBBHIABBsAxqIggQZyAIIAIQeCAIEEYgAEGILmoiASAFEJABIABB8A1qIAEQkAEgASAAQbAIahCQASAAQbAOaiABEJABIAEgCBCQASAAQfAOaiABEJABIAEgAEHwDGoQkAEgAEGwD2ogARCQASAAQfAPaiIBED0gAEHwEmoiBRA9IABB8BVqEFUgASADEH0gBSAEEH0gAEH4G2oiARA9IAEgAxB9IAEQogEgAEH4HmoiARA9IAEgBBB9IAEQogEgAEG4AWogAEGAAWoQUEECayEBA0AgAUEBakEBTQRAIABB8BVqIgEQngEgByABQYgGENEBGgwDBSAAQfAVaiIEEBogAEH4IWoiAyAAQfAPaiAAQfANaiAAQbAOahALIABBgChqIgUgAEHwEmogAEHwDmogAEGwD2oQCyADIAUQAyAEIAMQAQJAAkACQCAAQbgBaiABEFMgAEGAAWogARBTa0EBag4DAQIAAgsgAEGILmoiAyAAQfAPaiAAQfAEaiAAQfANaiAAQbAOahAKIABB+CFqIgQgA0GIBhDRARogAyAAQfASaiAAQbAJaiAAQfAOaiAAQbAPahAKIAQgAxADIABB8BVqIAQQAQwBCyAAQYguaiIDIABB8A9qIABB+BtqIABB8A1qIABBsA5qEAogAEH4IWoiBCADQYgGENEBGiADIABB8BJqIABB+B5qIABB8A5qIABBsA9qEAogBCADEAMgAEHwFWogBBABCyABQQFrIQEMAQsACwALIAcgCCACEA4LIABBkDRqJAAjAEHgH2siCCQAIAhB0BNqIgFByK3AABBJIAhB2BlqIg1BgK7AABBJIAggASANEEsgCEGAAWoiC0GQrcAAEEkgAkGID2oiACAHEGkgCEG4AWoiBSAAEGkjAEGACGsiAyQAIAMgBRCMASADQYACaiIJIAVBgAJqIg8QjAEgA0GABGoiCiAFEIwBIANBgAZqIgRBOBDQARogA0EBNgK4BiADQcAGakE4ENABGiADQfgGakEBNgIAIANBgAdqQTgQ0AEaIANBuAdqQQE2AgAgA0HAB2pBOBDQARogA0H4B2pBATYCACAFEJ0BIAMQISAJIAVBgARqIgwQGCAJEGQgAyAJEHkgAxCwASAJIAwQlgEgCRAhIAkQZCAKIA8QGCAJIAoQeSAJELABIAogDxCWASAKECEgBCAFEJYBIAQgDBAYIAogBBB5IAoQsAEgBCAPEJYBIAQgChAYIAQQZCAFIAMQGCAEIAUQlwEgDCAJEBggDBBkIAQgDBCXASAEELABIwBBgAJrIgYkACAGIAQQXiAGQYABaiIQIARBgAFqIhIQXiAGEC0gEBAtIBAQfCAQEKkBIAYgEBB7IAYQPiAEIAYQESAGEDYgBhCpASASIAYQESAGQYACaiQAIAUgAxCWASAFIAQQGCAPIAkQlgEgDyAEEBggDCAKEJYBIAwgBBAYIAVBBTYCgAYgA0GACGokACAAEJ4BIAAgBRAHIAUgABBtIAAgCBAyIAAgCBAyIAAgBRAHIAhBwAdqIgQgABBpIAQQEyAEIAAQByANIAAgCxAbIAhByA1qIgMgDRBpIAMQngEgASAAEGkgARCeASAAIAMQbSAAIAEQByANIAAgCxAbIAMgDRBtIAMQngEgASAAEG0gARCeASAAIAMQbSAAIAEQByANIAAgCxAbIAMgDRBtIAMQngEgASAAEG0gASAIEDIgACADEG0gACABEAcgDSAAIAsQGyADIA0QbSANIAMgCxAbIAMgDRBtIAEgABBtIAEgCBAyIAEgCBAyIAMgARAHIAEgABBtIAEQngEgACADEG0gACABEAcgACAEEAcgABCcASAIQeAfaiQAIAcgAEGIBhDRARpBACEAIwBBgAJrIgEkACABEGwCQCAHIAEQegR/IAdBgAFqIAFBgAFqEHoFQQALRQ0AIAdBgAJqEIcBRQ0AIAdBgARqEIcBIQALIAFBgAJqJABBACAADQAaQX8LIAJBkBVqJAAgDkEoahC0ASAOQSBqELQBIA5BGGoQtAEgDkEwaiQAC58BAgJ/BX4gAEEwaiICKQMAIAFBP3GtIgSGIQUgACkDKCIGQTogAWtBP3GtIgiHIQdBBiEBA38gAiAFIAeENwMAIAFBAU0EfyAAIAApAwAgBIZC//////////8DgzcDACAAKQMwQiSHpwUgAUEBayEBIAJBEGsiA0EIaiECIAYgBIZC//////////8DgyEHIAMpAwAiBiAIhyEFDAELCxoLiAECA34DfyMAQRBrIgUkAAN+IAZBOEYEfiAFQRBqJAAgAwUgBSAAIAZqIgcpAwAiAiACQj+HIAGsIgIgAkI/hxAvIAcgBSkDACIEIAN8IgJC//////////8DgzcDACACIARUrSAFQQhqKQMAIANCP4d8fEIGhiACQjqIhCEDIAZBCGohBgwBCwsLigECA38BfiMAQUBqIgIkACACQQhqIgEgABBdIAEQQiACQThqIQFBBiEDQdwCIQACQAJAA0AgA0EATgRAIAEpAwAiBEIAUg0CIAFBCGshASAAQTprIQAgA0EBayEDDAELC0EAIQAMAQsDQCAEUA0BIABBAWohACAEQgJ/IQQMAAsACyACQUBrJAAgAAuHAQEDfyMAQYACayIBJAAgABCwASABIAAQXiABQYABaiICQTgQ0AEaIAFBATYCuAEgAUHAAWpBOBDQARogAUH4AWpBATYCACABIABBgAFqIgMQmgEgARA2IAIgARCZASACIAMQmgEgAyABEJkBIAMgABCaASAAIAIQmQEgABCwASABQYACaiQAC30CBH4BfyABQT9xrSECQTogAWtBP3GtIQRBACEBIAApAwAiBSEDA38gAUEwRgR/IAAgACkDMCAChzcDMCAFQn8gAoZCf4WDpwUgACABaiIGIAMgAocgBkEIaikDACIDIASGQv//////////A4OENwMAIAFBCGohAQwBCwsaC2kBBH8jAEHAAWsiASQAIAEgABCQASABQUBrIgIgABCQASABQYABaiIDIABBQGsiBBCQASABIAQQdyACIAAQdyACEEIgBCACEEogAxBDIAAgAxB3IAEQQiAAEEIgACABEEogAUHAAWokAAuCAQIBfwF+IABB8AAQ0AEhAANAIAJBOEYEQAJAIAAgASkDMCIDQjqHNwM4IAAgA0L//////////wODNwMwIABBQGshAEEAIQIDQCACQTBGDQEgACACakIANwMAIAJBCGohAgwACwALBSAAIAJqIAEgAmopAwA3AwAgAkEIaiECDAELCwtuAQZ+IAAgA0L/////D4MiBSABQv////8PgyIGfiIHIAUgAUIgiCIIfiIJIAYgA0IgiCIGfnwiBUIghnwiCjcDACAAIAcgClatIAYgCH4gBSAJVK1CIIYgBUIgiIR8fCABIAR+IAIgA358fDcDCAtqAgF/BX4gASkDCCAAKQMAhSIGQgGGQgGHIQdBACACa6whCAN+IANBOEYEfiAFBSAAIANqIgIgAikDACIEIAaFIAEgA2opAwAgBIUgCIOFIgQgB4U3AwAgBCAFhSEFIANBCGohAwwBCwsaC18CAX8EfkIBIQNBMCECA38gAkF4RgR/IARCAYYgA3ynQQFrBSABIAJqKQMAIgUgACACaikDACIGfUI6hyADgyAEhCEEIAJBCGshAiAFIAaFQgF9QjqHIAODIQMMAQsLC2kBBH8jAEGAAmsiAiQAIAIgARBeIAJBgAFqIgMgARBeIAIQLSADIAIQESAAIAMQmAEgAEGAAmoiBCADEJgBIABBgARqIgUgAxCYASAEIAEQpgEgBSACEKYBIABBBTYCgAYgAkGAAmokAAtiAQJ/IwBBQGoiAiQAIAAQQiACIAAQkAECQCABBEAgACABEK4BDAELIAAQOgtBACEBA0AgA0UEQCAAEExBASABQQFqIAFBAUYiAxshAQwBCwsgACACEEogABAeIAJBQGskAAtnAQJ/IwBBQGoiAyQAAkAgASABQR91IgJqIAJzIgIgACgCOGxBgICAEE4EQCADIAIQOSAAIAMQSgwBCyAAIAIQKRogACAAKAI4IAJsNgI4CyABQQBIBEAgABBDIAAQQgsgA0FAayQAC2cAIABBAXYgAHIiAEECdiAAciIAQQR2IAByIgBBCHYgAHIiAEEQdiAAciIAIABBAXZB1arVqgVxayIAQQJ2QbPmzJkDcSAAQbPmzJkDcWoiAEEEdiAAakGPnrz4AHFBgYKECGxBGHYLYQEDfyMAQYABayIBJAAgASAAEJABIAFBQGsiAkE4ENABGiABQQE2AnggASAAQUBrIgMQdyABEEMgAiABEK4BIAIgAxB3IAMgARCuASADIAAQdyAAIAIQrgEgAUGAAWokAAtVAgJ/AX4jAEHwAGsiASQAIAFBwLLAABBJIAApAwAhAyABQThqIgIgABBdIABBARAsIAIgARBgIAIQQiACQQEQLCAAIAIgA0ICgacQMCABQfAAaiQAC5gBAQZ/IwBBwAFrIgMkACAAIAEQXiAAEC0gA0GIAWoiBkHop8AAEEkjAEFAaiIEJAAgA0EIaiICQTgQ0AEiBUEBNgI4IAVBQGtBOBDQASAFQfgAakEBNgIAIAQgBhCOASAFIAQQrgEQwQEgBEFAayQAIAIQqQEgAhB8IAIQqQEgACABEBEgACACEJoBIAAQtQEgA0HAAWokAAtZAQJ/IwBBQGoiAyQAIABBOBDQASIAQQE2AjgCQCABQQBOBEAgACABEJMBDAELIANBCGoiAkHAssAAEEkgAiABEJMBIAIQQiAAIAIQagsgABBUIANBQGskAAu9CAEKfyMAQYABayIHJAAgB0EIaiIDQcCywAAQSSADQQEQlAECQAJAA0AgAUEwRgRAIANBMGogAykDMEIBhzcDACADQThqIQEDQCACRQ0EIAFCADcDACACQQFrIQIgAUEIaiEBDAALAAsgAUE4Rg0BIAFBOEcEQCABIANqIAEgA2oiBEEIaikDAEI5hkL//////////wODIAQpAwBCAYeENwMAIAVBAWohBSABQQhqIQEMAQsLQQdBB0GEm8AAEDsACyAFQQdB9JrAABA7AAsgA0EBEJQBIANBARAsIAdBQGshBUEAIQIjAEGgCmsiASQAIAFBOBDQASIBQUBrQTgQ0AEhBiABQYABakE4ENABGiABQcABakE4ENABGiABQYACakE4ENABGiABQcACakE4ENABGiABQYADakE4ENABGiABQcADakE4ENABGiABQYAEakE4ENABGiABQcAEakE4ENABGiABQYAFakE4ENABGiABQcAFakE4ENABGiABQYAGakE4ENABGiABQcAGakE4ENABGiABQYAHakE4ENABGiABQcAHakE4ENABGiABQfgHakEBNgIAIAFBuAdqQQE2AgAgAUH4BmpBATYCACABQbgGakEBNgIAIAFB+AVqQQE2AgAgAUG4BWpBATYCACABQfgEakEBNgIAIAFBuARqQQE2AgAgAUH4A2pBATYCACABQbgDakEBNgIAIAFB+AJqQQE2AgAgAUG4AmpBATYCACABQfgBakEBNgIAIAFBuAFqQQE2AgAgAUH4AGpBATYCACABQQE2AjggAUGBCGpB5wAQ0AEaIAFB6AhqIgQgABCQASAEEEIgAUGoCWoiBCADEF0gBBBCIAQQKkEDaiIIQQJ2IgNBAWohCQJAA0AgAiAJRgRAIAEQygEgBiABQegIahCuASABQeAJakE4ENABGiABQQE2ApgKQYB5IQIMAgsgAUGoCWoiBCAEQQQQjwEiChCUASAEEEIgAkHnAEcEQCABQYEIaiACaiAKOgAAIAFBqAlqQQQQLCACQQFqIQIMAQsLQecAQecAQaC0wAAQOwALA0AgAgRAIAFB4AlqIgQgASACaiIGQcAHahCuASAGQYAIaiIGIAQQrgEgBiABQegIahBKIAJBQGshAgwBCwsCQAJAAkACQCAIQZwDSQRAIAFBgQhqIANqLAAAIgJBEE8NASAFIAEgAkEGdGoQkAEgA0EBayICQeYASyEEA0AgAkF/Rg0DIAUQTCAFEEwgBRBMIAUQTCAEDQQgAUGBCGogAmotAAAiA0EQSQRAIAUgASADQQZ0ahBKIAJBAWshAgwBCwsgA0EYdEEYdUEQQeC0wAAQOwALIANB5wBBsLTAABA7AAsgAkEQQcC0wAAQOwALIAUQHiABQaAKaiQADAELIAJB5wBB0LTAABA7AAsgACAFEK4BIAdBgAFqJAALbAEBfyMAQTBrIgMkACADIAE2AgQgAyAANgIAIANBHGpBAjYCACADQSxqQQE2AgAgA0ICNwIMIANB2LjAADYCCCADQQE2AiQgAyADQSBqNgIYIAMgAzYCKCADIANBBGo2AiAgA0EIaiACEGYAC2UBAn8gACAAKAIAIgJBCGoiAzYCACAAIAJBA3ZBPHFqQShqIgIgAUH/AXEgAigCAEEIdHI2AgACQAJAIANFBEAgAEEANgIAIAAgACgCBEEBajYCBAwBCyADQf8DcQ0BCyAAEA8LC1wAIABBOBDQASIAQQE2AjggAEFAa0E4ENABGiAAQfgAakEBNgIAIABBgAFqEFEgAEGAAmpBOBDQARogAEG4AmpBATYCACAAQcACakE4ENABGiAAQfgCakEBNgIAC1sBA38jAEGAAWsiASQAIAAQqQEgASAAEJABIAFBQGsiAiAAQUBrIgMQkAEgARBMIAIQTCABIAIQdyABQQAQMyAAIAEQSiABEEMgARBCIAMgARBKIAFBgAFqJAALYQEBfyMAQYACayIDJAAgABA9IAAgARCZASAAQYABaiIBIAIQmQEgAEGAAmoQtwEgABCpASADIAAQOCADQYABaiICIAEQXiACEC0gAiADEHpFBEAgABCbAQsgA0GAAmokAAtUAQF/IwBBIGsiAiQAIAIgACgCADYCBCACQRhqIAFBEGopAgA3AwAgAkEQaiABQQhqKQIANwMAIAIgASkCADcDCCACQQRqIAJBCGoQDCACQSBqJAALZwAjAEEwayIBJABBpLvAAC0AAARAIAFBHGpBATYCACABQgI3AgwgAUGQtsAANgIIIAFBATYCJCABIAA2AiwgASABQSBqNgIYIAEgAUEsajYCICABQQhqQbi2wAAQZgALIAFBMGokAAtiAgF+An8gACkDACEBA34gACACaiIDIAFC//////////8DgzcDACABQjqHIQEgAkEoRgR+IAAgACkDMCABfCIBNwMwIAFCJIcFIAJBCGohAiADQQhqKQMAIAF8IQEMAQsLGgt8AQV/IwBBQGoiAyQAIANBCGoiAkHAssAAEEkgAiAAKAI4QQFrEDUiBBAoA0AgAUE4RwRAIAAgAWoiBSABIAJqKQMAIAUpAwB9NwMAIAFBCGohAQwBCwsgAEEBIARBAWp0IgI2AjggAkH///8PSgRAIAAQHgsgA0FAayQAC3sBAn8gAEEoaiECA0AgAUGAAkYEQCAAQufMp9DW0Ouzu383AgggAEIANwIAIABBIGpCq7OP/JGjs/DbADcCACAAQRhqQv+kuYjFkdqCm383AgAgAEEQakLy5rvjo6f9p6V/NwIABSABIAJqQQA2AgAgAUEEaiEBDAELCwtUACAAQTgQ0AEiAEEBNgI4IABBQGtBOBDQARogAEH4AGpBATYCACAAQYABakE4ENABGiAAQbgBakEBNgIAIABBwAFqQTgQ0AEaIABB+AFqQQE2AgALWAECfyMAQUBqIgEkAAJAIAAQhgENACABQQEQOSAAQYABaiICIAEQWA0AIAJBABAzIAAgAhBKIAAQHiAAQUBrIgAgAhBKIAAQHiACIAEQrgELIAFBQGskAAtZAQJ/IwBBgAFrIgEkAAJAIAAQigENACABEFEgAEGAAmoiAiABEHoNACACED4gACACEBEgABC1ASAAQYABaiIAIAIQESAAELUBIAIgARCZAQsgAUGAAWokAAtbAgF+An8gACkDACEBA0AgACACaiIDIAFC//////////8DgzcDACABQjqHIQEgAkHgAEYEQCAAIAApA2ggAXw3A2gFIAJBCGohAiADQQhqKQMAIAF8IQEMAQsLC08BAX8gAEE4ENABGgJAA0AgAkEHRwRAIAJBB0YNAiAAIAEpAwA3AwAgAEEIaiEAIAFBCGohASACQQFqIQIMAQsLDwtBB0EHQeSawAAQOwALVAECfyMAQbABayICJAAgATQCOCAANAI4fkL///8PVQRAIAAQHgsgAkEIaiIDIAAgARAFIAJB+ABqIgEgAxBrIAAgARBqIABBAjYCOCACQbABaiQAC1EBAn8jAEFAaiIDJAAgAEE4ENABIgBBATYCOCAAQUBrQTgQ0AEgAEH4AGpBATYCACADIAEQjgEgACADEK4BIAMgAhCOASADEK4BIANBQGskAAvwDAIRfwh+IwBBsAFrIg8kACAANAI4IhIgEn5C////D1YEQCAAEB4LIwBB0AFrIgEkACAPQQhqIgZBCGpB0AAQ0AEaIAFBwAFqIAApAwAiFyAXQj+HIhYgFyAWEC8gBiABKQPAASISQv//////////A4M3AwAgAUHIAWopAwAiFUIGhiASQjqIhCETIBVCOoghGCAAQQhqIgwhDSAAIQlBASEKQQEhBwJAA0AgCkEERgRAIABBGGohCiAAQRBqIQkgAEEoaiEMIAApAzAhF0EHIQUgAUHIAGohCwNAIAVBC0kEQCABQUBrIAVBA3QiCCAAakEwaykDACISIBJCP4cgFyAXQj+HIhYQLyAFQQFqIg1BAXYhByALKQMAIRUgASkDQCESIAkhAiAMIQQgBUEFayIOIQMDQCADIAdJBEAgASACKQMAIhQgFEI/hyAEKQMAIhQgFEI/hxAvIAEpAwAiFCASfCISIBRUrSABQQhqKQMAIBV8fCEVIAJBCGohAiAEQQhrIQQgA0EBaiEDDAELCyAGIAhqIBJCAYYiFCATfCITQv//////////A4M3AwAgAUEwaiAAIA5BA3RqKQMAIhkgGUI/hyAXIBYQLyATIBRU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aikDADcDACACQQhqIQIMAQsLC4QJAg1/Cn4jAEFAaiILJAAgC0EIaiIJQcCywAAQSSMAQZACayICJAAgAEEwENABIQogAkHoAGpB8AAQ0AEaIAJB4AFqQTAQ0AEaIAoQcSACIAEiDCkDACIQQv3/8//P///5AX5C//////////8DgyISNwPYASACQdgAaiASQgAgCSkDACIXIBdCP4ciGBAvIBAgAikDWCIPfCITIA9UrSACQeAAaikDACAQQj+HfHwiEEI6hyABKQMIIg9CP4d8IA8gEEIGhiATQjqIhCITfCIQIBNUrXwhD0EBIQBCACETAkACQANAAkAgAEEHRgRAQQYhB0EAIQhBByEADAELIABBAXYiAUEBaiEGIAggAWshAyABQQN0IgFBCGohBCAHIAFrIQUgAkHIAGogCSAAQQN0Ig1qKQMAIhUgFUI/hyIWIBJCABAvIAJB0ABqKQMAIBAgECATfCIRVq0gDyAUfHx8IBEgAikDSHwiDyARVK18IRAgAEEBaiEBA0AgACAGTQRAIAJB2AFqIA1qIA9C/f/z/8////kBfkL//////////wODIhE3AwAgAkE4aiARQgAgFyAYEC8gAkEoaiARQgAgFSAWEC8gAkHoAGogAEEEdGoiACACQTBqKQMAIhE3AwggACACKQMoIhU3AwAgDyACKQM4IhZ8Ig8gFlStIAJBQGspAwAgEHx8IhBCOocgDCABQQN0aikDACIWQj+HfCAWIBBCBoYgD0I6iIQiD3wiECAPVK18IQ8gEyAVfCITIBVUrSARIBR8fCEUIAdBCGohByAIQQFqIQggASEADAMLIANBB08NAyACQRhqIAQgCWopAwAgBSAJaikDAH0iESARQj+HIAJB2AFqIg4gBWopAwAgBCAOaikDAH0iESARQj+HEC8gAikDGCIRIA98Ig8gEVStIAJBIGopAwAgEHx8IRAgBkEBaiEGIARBCGohBCAFQQhrIQUgA0EBayEDDAALAAsLA0ACQAJAIABBDUcEQCAHIABBAXYiBmshAyAIIAZBA3QiAWshBCABQQhqIQUgDyAUfCAQIBN8Ig8gEFStfCEQIABBAWohAQNAIAZBBUsNAyADQQdPDQIgAkEIaiAFIAlqKQMAIAQgCWpBMGopAwB9IhIgEkI/hyACIARqQYgCaikDACACQdgBaiAFaikDAH0iEiASQj+HEC8gAikDCCISIA98Ig8gElStIAJBEGopAwAgEHx8IRAgBkEBaiEGIARBCGshBCADQQFrIQMgBUEIaiEFDAALAAsgCiAQQv//////////A4M3AzAgAkGQAmokAAwECyADQQdBpJzAABA7AAsgAEEDdCAKakE4ayAPQv//////////A4M3AwAgEEI6hyAMIAFBA3RqKQMAIhJCP4d8IBIgEEIGhiAPQjqIhCIPfCIQIA9UrXwhDyAUIABBBHQgAmpBCGoiAEEIaikDAH0gEyAAKQMAIhJUrX0hFCAIQQhqIQggB0EBaiEHIBMgEn0hEyABIQAMAAsACyADQQdBlJzAABA7AAsgC0FAayQACy4BAX8jAEGAAWsiASQAIAAQRSABEFEgACABEJkBIABBgAFqELYBIAFBgAFqJAALMwAgACABEJYBIABBgAJqIAFBgAJqEJYBIABBgARqIAFBgARqEJYBIAAgASgCgAY2AoAGCygAIAAgASACEHIgAEFAayABQUBrIAIQciAAQYABaiABQYABaiACEHILLQAgACABIAIQjQEgAEGAAWogAUGAAWogAhCNASAAQYACaiABQYACaiACEI0BCycBAn8jAEFAaiICJAAgAkEIaiIDIAEQvgEgACADEI4BIAJBQGskAAsiAQF/A0AgAUE4RwRAIAAgAWpCADcDACABQQhqIQEMAQsLCyUAIAAgASACEDAgAEEAIAJrIAAoAjgiACABKAI4c3EgAHM2AjgLJwAgACAAKAIEQQFxIAFyQQJyNgIEIAAgAWoiACAAKAIEQQFyNgIECyMAA0AgAgRAIAAgAS0AABA8IAJBAWshAiABQQFqIQEMAQsLCywAIAAQiwEgACABEJYBIABBgAJqIAIQlgEgAEGABGogAxCWASAAQQU2AoAGCyMBAX8jAEFAaiIBJAAgASAAEJABIAEQHiABEFcgAUFAayQACykAIAAgARBgIAAgACgCOCABKAI4aiIBNgI4IAFB////D0oEQCAAEB4LCyUAIAAgARCuASAAQUBrIAFBQGsQrgEgAEGAAWogAUGAAWoQrgELKAEBfyMAQYACayICJAAgAiABEIwBIAIQKyAAIAIQlwEgAkGAAmokAAscAQF/IAAgARBYBH8gAEFAayABQUBrEFgFQQALCycBAX8jAEGAAWsiAiQAIAIg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DCELDQALCyAMpyICQeMASwRAIABBAmsiACAGQQlqaiAMpyICIAJB//8DcUHkAG4iAkHkAGxrQf//A3FBAXRB6LjAAGovAAA7AAALAkAgAkEKTwRAIABBAmsiACAGQQlqaiACQQF0Qei4wABqLwAAOwAADAELIABBAWsiACAGQQlqaiACQTBqOgAACwJ/IAZBCWogAGohCEErQYCAxAAgASgCACIDQQFxIgIbIQQgAkEnIABrIglqIQJBlLjAAEEAIANBBHEbIQUCQAJAIAEoAghFBEBBASEAIAEgBCAFEFINAQwCCwJAAkACQAJAIAIgAUEMaigCACIDSQRAIAEtAABBCHENBEEAIQAgAyACayICIQNBASABLQAgIgcgB0EDRhtBA3FBAWsOAgECAwtBASEAIAEgBCAFEFINBAwFC0EAIQMgAiEADAELIAJBAXYhACACQQFqQQF2IQMLIABBAWohACABQRxqKAIAIQcgASgCBCECIAEoAhghCgJAA0AgAEEBayIARQ0BIAogAiAHKAIQEQQARQ0AC0EBDAQLQQEhACACQYCAxABGDQEgASAEIAUQUg0BIAEoAhggCCAJIAEoAhwoAgwRBQANASABKAIcIQQgASgCGCEBQQAhAAJ/A0AgAyAAIANGDQEaIABBAWohACABIAIgBCgCEBEEAEUNAAsgAEEBawsgA0khAAwBCyABKAIEIQcgAUEwNgIEIAEtACAhCkEBIQAgAUEBOgAgIAEgBCAFEFINAEEAIQAgAyACayICIQMCQAJAAkBBASABLQAgIgQgBEEDRhtBA3FBAWsOAgABAgtBACEDIAIhAAwBCyACQQF2IQAgAkEBakEBdiEDCyAAQQFqIQAgAUEcaigCACECIAEoAgQhBCABKAIYIQUCQANAIABBAWsiAEUNASAFIAQgAigCEBEEAEUNAAtBAQwDC0EBIQAgBEGAgMQARg0AIAEoAhggCCAJIAEoAhwoAgwRBQANACABKAIcIQAgASgCGCEFQQAhAgJAA0AgAiADRg0BIAJBAWohAiAFIAQgACgCEBEEAEUNAAtBASEAIAJBAWsgA0kNAQsgASAKOgAgIAEgBzYCBEEADAILIAAMAQsgASgCGCAIIAkgAUEcaigCACgCDBEFAAsgBkEwaiQACwsAIAAQNiAAELABCysCAX8BfkIBIQIDQCAAIAFq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AAANAEHgs8AAC8EHYXR0ZW1wdCB0byBkaXZpZGUgYnkgemVybwAAAAAAAABhdHRlbXB0IHRvIGRpdmlkZSB3aXRoIG92ZXJmbG93ALAZEAASAAAADAIAAA0AAACwGRAAEgAAABgCAAAmAAAAsBkQABIAAAAYAgAAIwAAALAZEAASAAAAHgIAABcAAACwGRAAEgAAAB4CAAAUAAAAqqr//////gHu//9UrP//AupBYg9rDyoBw5z9ShTOEwJLd2TXrEtDAu3pxpKm+V8Cox4RoAEAAAADAAAABAAAAAQAAAAEAAAABQAAAAYAAABjYWxsZWQgYE9wdGlvbjo6dW53cmFwKClgIG9uIGEgYE5vbmVgIHZhbHVlbWVtb3J5IGFsbG9jYXRpb24gb2YgIGJ5dGVzIGZhaWxlZAoAAOsaEAAVAAAAABsQAA4AAABsaWJyYXJ5L3N0ZC9zcmMvYWxsb2MucnMgGxAAGAAAAEkBAAAJAAAAbGlicmFyeS9zdGQvc3JjL3Bhbmlja2luZy5yc0gbEAAcAAAARgIAAB8AAABIGxAAHAAAAEcCAAAeAAAABwAAAAwAAAAEAAAACAAAAAMAAAAIAAAABAAAAAkAAAAKAAAAEAAAAAQAAAALAAAADAAAAAMAAAAIAAAABAAAAA0AAAAOAAAAbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy5yc2NhcGFjaXR5IG92ZXJmbG93AAAA6BsQABEAAADMGxAAHAAAAAUCAAAFAAAAEAAAAAAAAAABAAAAEQAAAGluZGV4IG91dCBvZiBib3VuZHM6IHRoZSBsZW4gaXMgIGJ1dCB0aGUgaW5kZXggaXMgAAAkHBAAIAAAAEQcEAASAAAAMDAwMTAyMDMwNDA1MDYwNzA4MDkxMDExMTIxMzE0MTUxNjE3MTgxOTIwMjEyMjIzMjQyNTI2MjcyODI5MzAzMTMyMzMzNDM1MzYzNzM4Mzk0MDQxNDI0MzQ0NDU0NjQ3NDg0OTUwNTE1MjUzNTQ1NTU2NTc1ODU5NjA2MTYyNjM2NDY1NjY2NzY4Njk3MDcxNzI3Mzc0NzU3Njc3Nzg3OTgwODE4MjgzODQ4NTg2ODc4ODg5OTA5MTkyOTM5NDk1OTY5Nzk4OTkgb3V0IG9mIHJhbmdlIGZvciBzbGljZSBvZiBsZW5ndGggbGlicmFyeS9jb3JlL3NyYy9zbGljZS9pbmRleC5yc3JhbmdlIGVuZCBpbmRleCAAAABxHRAAEAAAADAdEAAiAAAAUh0QAB8AAABJAAAABQB7CXByb2R1Y2VycwIIbGFuZ3VhZ2UBBFJ1c3QADHByb2Nlc3NlZC1ieQMFcnVzdGMdMS42MS4wIChmZTViMTNkNjggMjAyMi0wNS0xOCkGd2FscnVzBjAuMTkuMAx3YXNtLWJpbmRnZW4SMC4yLjgxICgwNjJhYTVmNzAp`;\n","import init, { bls_init, bls_verify } from '../vendor/bls/bls';\n\nexport let verify: (pk: Uint8Array, sig: Uint8Array, msg: Uint8Array) => boolean;\n\n/**\n *\n * @param pk primary key: Uint8Array\n * @param sig signature: Uint8Array\n * @param msg message: Uint8Array\n * @returns Promise resolving a boolean\n */\nexport async function blsVerify(\n pk: Uint8Array,\n sig: Uint8Array,\n msg: Uint8Array,\n): Promise {\n if (!verify) {\n await init();\n if (bls_init() !== 0) {\n throw new Error('Cannot initialize BLS');\n }\n verify = (pk1, sig1, msg1) => {\n // Reorder things from what the WASM expects (sig, m, w).\n return bls_verify(sig1, msg1, pk1) === 0;\n };\n }\n return verify(pk, sig, msg);\n}\n","/**\n * Concatenate multiple array buffers.\n * @param buffers The buffers to concatenate.\n */\nexport function concat(...buffers: ArrayBuffer[]): ArrayBuffer {\n const result = new Uint8Array(buffers.reduce((acc, curr) => acc + curr.byteLength, 0));\n let index = 0;\n for (const b of buffers) {\n result.set(new Uint8Array(b), index);\n index += b.byteLength;\n }\n return result.buffer;\n}\n\n/**\n * Transforms a buffer to an hexadecimal string. This will use the buffer as an Uint8Array.\n * @param buffer The buffer to return the hexadecimal string of.\n */\nexport function toHex(buffer: ArrayBuffer): string {\n return [...new Uint8Array(buffer)].map(x => x.toString(16).padStart(2, '0')).join('');\n}\n\nconst hexRe = new RegExp(/^([0-9A-F]{2})*$/i);\n\n/**\n * Transforms a hexadecimal string into an array buffer.\n * @param hex The hexadecimal string to use.\n */\nexport function fromHex(hex: string): ArrayBuffer {\n if (!hexRe.test(hex)) {\n throw new Error('Invalid hexadecimal string.');\n }\n const buffer = [...hex]\n .reduce((acc, curr, i) => {\n // tslint:disable-next-line:no-bitwise\n acc[(i / 2) | 0] = (acc[(i / 2) | 0] || '') + curr;\n return acc;\n }, [] as string[])\n .map(x => Number.parseInt(x, 16));\n\n return new Uint8Array(buffer).buffer;\n}\n\nexport function compare(b1: ArrayBuffer, b2: ArrayBuffer): number {\n if (b1.byteLength !== b2.byteLength) {\n return b1.byteLength - b2.byteLength;\n }\n\n const u1 = new Uint8Array(b1);\n const u2 = new Uint8Array(b2);\n for (let i = 0; i < u1.length; i++) {\n if (u1[i] !== u2[i]) {\n return u1[i] - u2[i];\n }\n }\n return 0;\n}\n","// Export empty object as shim for node `fs` and `path`\nexport default {};\n","/**\n * Concatenate multiple array buffers.\n * @param buffers The buffers to concatenate.\n */\nexport function concat(...buffers: ArrayBuffer[]): ArrayBuffer {\n const result = new Uint8Array(buffers.reduce((acc, curr) => acc + curr.byteLength, 0));\n let index = 0;\n for (const b of buffers) {\n result.set(new Uint8Array(b), index);\n index += b.byteLength;\n }\n return result;\n}\n\n/**\n * Returns an hexadecimal representation of an array buffer.\n * @param bytes The array buffer.\n */\nexport function toHexString(bytes: ArrayBuffer): string {\n return new Uint8Array(bytes).reduce((str, byte) => str + byte.toString(16).padStart(2, '0'), '');\n}\n\n/**\n * Return an array buffer from its hexadecimal representation.\n * @param hexString The hexadecimal string.\n */\nexport function fromHexString(hexString: string): ArrayBuffer {\n return new Uint8Array((hexString.match(/.{1,2}/g) ?? []).map(byte => parseInt(byte, 16)));\n}\n\n/**\n * A class that abstracts a pipe-like ArrayBuffer.\n */\nexport class PipeArrayBuffer {\n /**\n * The reading view. It's a sliding window as we read and write, pointing to the buffer.\n * @private\n */\n private _view: Uint8Array;\n\n /**\n * The actual buffer containing the bytes.\n * @private\n */\n private _buffer: ArrayBuffer;\n\n /**\n * Creates a new instance of a pipe\n * @param buffer an optional buffer to start with\n * @param length an optional amount of bytes to use for the length.\n */\n constructor(buffer?: ArrayBuffer, length = buffer?.byteLength || 0) {\n this._buffer = buffer || new ArrayBuffer(0);\n this._view = new Uint8Array(this._buffer, 0, length);\n }\n\n get buffer(): ArrayBuffer {\n // Return a copy of the buffer.\n return this._view.slice();\n }\n\n get byteLength(): number {\n return this._view.byteLength;\n }\n\n /**\n * Read `num` number of bytes from the front of the pipe.\n * @param num The number of bytes to read.\n */\n public read(num: number): ArrayBuffer {\n const result = this._view.subarray(0, num);\n this._view = this._view.subarray(num);\n return result.slice().buffer;\n }\n\n public readUint8(): number | undefined {\n const result = this._view[0];\n this._view = this._view.subarray(1);\n return result;\n }\n\n /**\n * Write a buffer to the end of the pipe.\n * @param buf The bytes to write.\n */\n public write(buf: ArrayBuffer): void {\n const b = new Uint8Array(buf);\n const offset = this._view.byteLength;\n if (this._view.byteOffset + this._view.byteLength + b.byteLength >= this._buffer.byteLength) {\n // Alloc grow the view to include the new bytes.\n this.alloc(b.byteLength);\n } else {\n // Update the view to include the new bytes.\n this._view = new Uint8Array(\n this._buffer,\n this._view.byteOffset,\n this._view.byteLength + b.byteLength,\n );\n }\n\n this._view.set(b, offset);\n }\n\n /**\n * Whether or not there is more data to read from the buffer\n */\n public get end(): boolean {\n return this._view.byteLength === 0;\n }\n\n /**\n * Allocate a fixed amount of memory in the buffer. This does not affect the view.\n * @param amount A number of bytes to add to the buffer.\n */\n public alloc(amount: number) {\n // Add a little bit of exponential growth.\n // tslint:disable-next-line:no-bitwise\n const b = new ArrayBuffer(((this._buffer.byteLength + amount) * 1.2) | 0);\n const v = new Uint8Array(b, 0, this._view.byteLength + amount);\n v.set(this._view);\n this._buffer = b;\n this._view = v;\n }\n}\n","/**\n * Hashes a string to a number. Algorithm can be found here:\n * https://caml.inria.fr/pub/papers/garrigue-polymorphic_variants-ml98.pdf\n * @param s\n */\nfunction idlHash(s: string): number {\n const utf8encoder = new TextEncoder();\n const array = utf8encoder.encode(s);\n\n let h = 0;\n for (const c of array) {\n h = (h * 223 + c) % 2 ** 32;\n }\n return h;\n}\n\n/**\n *\n * @param label string\n * @returns number representing hashed label\n */\nexport function idlLabelToId(label: string): number {\n if (/^_\\d+_$/.test(label) || /^_0x[0-9a-fA-F]+_$/.test(label)) {\n const num = +label.slice(1, -1);\n if (Number.isSafeInteger(num) && num >= 0 && num < 2 ** 32) {\n return num;\n }\n }\n return idlHash(label);\n}\n","/* eslint-disable no-constant-condition */\n// tslint:disable:no-bitwise\n// Note: this file uses buffer-pipe, which on Node only, uses the Node Buffer\n// implementation, which isn't compatible with the NPM buffer package\n// which we use everywhere else. This means that we have to transform\n// one into the other, hence why every function that returns a Buffer\n// actually return `new Buffer(pipe.buffer)`.\n// TODO: The best solution would be to have our own buffer type around\n// Uint8Array which is standard.\nimport { PipeArrayBuffer as Pipe } from './buffer';\n\nfunction eob(): never {\n throw new Error('unexpected end of buffer');\n}\n\n/**\n *\n * @param pipe Pipe from buffer-pipe\n * @param num number\n * @returns Buffer\n */\nexport function safeRead(pipe: Pipe, num: number): ArrayBuffer {\n if (pipe.byteLength < num) {\n eob();\n }\n return pipe.read(num);\n}\n\n/**\n * @param pipe\n */\nexport function safeReadUint8(pipe: Pipe): number {\n const byte = pipe.readUint8();\n if (byte === undefined) {\n eob();\n }\n return byte;\n}\n\n/**\n * Encode a positive number (or bigint) into a Buffer. The number will be floored to the\n * nearest integer.\n * @param value The number to encode.\n */\nexport function lebEncode(value: bigint | number): ArrayBuffer {\n if (typeof value === 'number') {\n value = BigInt(value);\n }\n\n if (value < BigInt(0)) {\n throw new Error('Cannot leb encode negative values.');\n }\n\n const byteLength = (value === BigInt(0) ? 0 : Math.ceil(Math.log2(Number(value)))) + 1;\n const pipe = new Pipe(new ArrayBuffer(byteLength), 0);\n while (true) {\n const i = Number(value & BigInt(0x7f));\n value /= BigInt(0x80);\n if (value === BigInt(0)) {\n pipe.write(new Uint8Array([i]));\n break;\n } else {\n pipe.write(new Uint8Array([i | 0x80]));\n }\n }\n\n return pipe.buffer;\n}\n\n/**\n * Decode a leb encoded buffer into a bigint. The number will always be positive (does not\n * support signed leb encoding).\n * @param pipe A Buffer containing the leb encoded bits.\n */\nexport function lebDecode(pipe: Pipe): bigint {\n let weight = BigInt(1);\n let value = BigInt(0);\n let byte;\n\n do {\n byte = safeReadUint8(pipe);\n value += BigInt(byte & 0x7f).valueOf() * weight;\n weight *= BigInt(128);\n } while (byte >= 0x80);\n\n return value;\n}\n\n/**\n * Encode a number (or bigint) into a Buffer, with support for negative numbers. The number\n * will be floored to the nearest integer.\n * @param value The number to encode.\n */\nexport function slebEncode(value: bigint | number): ArrayBuffer {\n if (typeof value === 'number') {\n value = BigInt(value);\n }\n\n const isNeg = value < BigInt(0);\n if (isNeg) {\n value = -value - BigInt(1);\n }\n const byteLength = (value === BigInt(0) ? 0 : Math.ceil(Math.log2(Number(value)))) + 1;\n const pipe = new Pipe(new ArrayBuffer(byteLength), 0);\n while (true) {\n const i = getLowerBytes(value);\n value /= BigInt(0x80);\n\n // prettier-ignore\n if ( ( isNeg && value === BigInt(0) && (i & 0x40) !== 0)\n || (!isNeg && value === BigInt(0) && (i & 0x40) === 0)) {\n pipe.write(new Uint8Array([i]));\n break;\n } else {\n pipe.write(new Uint8Array([i | 0x80]));\n }\n }\n\n function getLowerBytes(num: bigint): number {\n const bytes = num % BigInt(0x80);\n if (isNeg) {\n // We swap the bits here again, and remove 1 to do two's complement.\n return Number(BigInt(0x80) - bytes - BigInt(1));\n } else {\n return Number(bytes);\n }\n }\n return pipe.buffer;\n}\n\n/**\n * Decode a leb encoded buffer into a bigint. The number is decoded with support for negative\n * signed-leb encoding.\n * @param pipe A Buffer containing the signed leb encoded bits.\n */\nexport function slebDecode(pipe: Pipe): bigint {\n // Get the size of the buffer, then cut a buffer of that size.\n const pipeView = new Uint8Array(pipe.buffer);\n let len = 0;\n for (; len < pipeView.byteLength; len++) {\n if (pipeView[len] < 0x80) {\n // If it's a positive number, we reuse lebDecode.\n if ((pipeView[len] & 0x40) === 0) {\n return lebDecode(pipe);\n }\n break;\n }\n }\n\n const bytes = new Uint8Array(safeRead(pipe, len + 1));\n let value = BigInt(0);\n for (let i = bytes.byteLength - 1; i >= 0; i--) {\n value = value * BigInt(0x80) + BigInt(0x80 - (bytes[i] & 0x7f) - 1);\n }\n return -value - BigInt(1);\n}\n\n/**\n *\n * @param value bigint or number\n * @param byteLength number\n * @returns Buffer\n */\nexport function writeUIntLE(value: bigint | number, byteLength: number): ArrayBuffer {\n if (BigInt(value) < BigInt(0)) {\n throw new Error('Cannot write negative values.');\n }\n return writeIntLE(value, byteLength);\n}\n\n/**\n *\n * @param value\n * @param byteLength\n */\nexport function writeIntLE(value: bigint | number, byteLength: number): ArrayBuffer {\n value = BigInt(value);\n\n const pipe = new Pipe(new ArrayBuffer(Math.min(1, byteLength)), 0);\n let i = 0;\n let mul = BigInt(256);\n let sub = BigInt(0);\n let byte = Number(value % mul);\n pipe.write(new Uint8Array([byte]));\n while (++i < byteLength) {\n if (value < 0 && sub === BigInt(0) && byte !== 0) {\n sub = BigInt(1);\n }\n byte = Number((value / mul - sub) % BigInt(256));\n pipe.write(new Uint8Array([byte]));\n mul *= BigInt(256);\n }\n\n return pipe.buffer;\n}\n\n/**\n *\n * @param pipe Pipe from buffer-pipe\n * @param byteLength number\n * @returns bigint\n */\nexport function readUIntLE(pipe: Pipe, byteLength: number): bigint {\n let val = BigInt(safeReadUint8(pipe));\n let mul = BigInt(1);\n let i = 0;\n while (++i < byteLength) {\n mul *= BigInt(256);\n const byte = BigInt(safeReadUint8(pipe));\n val = val + mul * byte;\n }\n return val;\n}\n\n/**\n *\n * @param pipe Pipe from buffer-pipe\n * @param byteLength number\n * @returns bigint\n */\nexport function readIntLE(pipe: Pipe, byteLength: number): bigint {\n let val = readUIntLE(pipe, byteLength);\n const mul = BigInt(2) ** (BigInt(8) * BigInt(byteLength - 1) + BigInt(7));\n if (val >= mul) {\n val -= mul * BigInt(2);\n }\n return val;\n}\n","/**\n * Equivalent to `Math.log2(n)` with support for `BigInt` values\n *\n * @param n bigint or integer\n * @returns integer\n */\nexport function ilog2(n: bigint | number): number {\n const nBig = BigInt(n);\n if (n <= 0) {\n throw new RangeError('Input must be positive');\n }\n return nBig.toString(2).length - 1;\n}\n\n/**\n * Equivalent to `2 ** n` with support for `BigInt` values\n * (necessary for browser preprocessors which replace the `**` operator with `Math.pow`)\n *\n * @param n bigint or integer\n * @returns bigint\n */\nexport function iexp2(n: bigint | number): bigint {\n const nBig = BigInt(n);\n if (n < 0) {\n throw new RangeError('Input must be non-negative');\n }\n return BigInt(1) << nBig;\n}\n","// tslint:disable:max-classes-per-file\nimport { Principal as PrincipalId } from '@dfinity/principal';\nimport { JsonValue } from './types';\nimport { concat, PipeArrayBuffer as Pipe } from './utils/buffer';\nimport { idlLabelToId } from './utils/hash';\nimport {\n lebDecode,\n lebEncode,\n readIntLE,\n readUIntLE,\n safeRead,\n safeReadUint8,\n slebDecode,\n slebEncode,\n writeIntLE,\n writeUIntLE,\n} from './utils/leb128';\nimport { iexp2 } from './utils/bigint-math';\n\n// tslint:disable:max-line-length\n/**\n * This module provides a combinator library to create serializers/deserializers\n * between JavaScript values and IDL used by canisters on the Internet Computer,\n * as documented at https://github.com/dfinity/candid/blob/119703ba342d2fef6ab4972d2541b9fe36ae8e36/spec/Candid.md\n */\n// tslint:enable:max-line-length\n\nconst enum IDLTypeIds {\n Null = -1,\n Bool = -2,\n Nat = -3,\n Int = -4,\n Float32 = -13,\n Float64 = -14,\n Text = -15,\n Reserved = -16,\n Empty = -17,\n Opt = -18,\n Vector = -19,\n Record = -20,\n Variant = -21,\n Func = -22,\n Service = -23,\n Principal = -24,\n}\n\nconst magicNumber = 'DIDL';\nconst toReadableString_max = 400; // will not display arguments after 400chars. Makes sure 2mb blobs don't get inside the error\n\nfunction zipWith(xs: TX[], ys: TY[], f: (a: TX, b: TY) => TR): TR[] {\n return xs.map((x, i) => f(x, ys[i]));\n}\n\n/**\n * An IDL Type Table, which precedes the data in the stream.\n */\nclass TypeTable {\n // List of types. Needs to be an array as the index needs to be stable.\n private _typs: ArrayBuffer[] = [];\n private _idx = new Map();\n\n public has(obj: ConstructType) {\n return this._idx.has(obj.name);\n }\n\n public add(type: ConstructType, buf: ArrayBuffer) {\n const idx = this._typs.length;\n this._idx.set(type.name, idx);\n this._typs.push(buf);\n }\n\n public merge(obj: ConstructType, knot: string) {\n const idx = this._idx.get(obj.name);\n const knotIdx = this._idx.get(knot);\n if (idx === undefined) {\n throw new Error('Missing type index for ' + obj);\n }\n if (knotIdx === undefined) {\n throw new Error('Missing type index for ' + knot);\n }\n this._typs[idx] = this._typs[knotIdx];\n\n // Delete the type.\n this._typs.splice(knotIdx, 1);\n this._idx.delete(knot);\n }\n\n public encode() {\n const len = lebEncode(this._typs.length);\n const buf = concat(...this._typs);\n return concat(len, buf);\n }\n\n public indexOf(typeName: string) {\n if (!this._idx.has(typeName)) {\n throw new Error('Missing type index for ' + typeName);\n }\n return slebEncode(this._idx.get(typeName) || 0);\n }\n}\n\nexport abstract class Visitor {\n public visitType(t: Type, data: D): R {\n throw new Error('Not implemented');\n }\n public visitPrimitive(t: PrimitiveType, data: D): R {\n return this.visitType(t, data);\n }\n public visitEmpty(t: EmptyClass, data: D): R {\n return this.visitPrimitive(t, data);\n }\n public visitBool(t: BoolClass, data: D): R {\n return this.visitPrimitive(t, data);\n }\n public visitNull(t: NullClass, data: D): R {\n return this.visitPrimitive(t, data);\n }\n public visitReserved(t: ReservedClass, data: D): R {\n return this.visitPrimitive(t, data);\n }\n public visitText(t: TextClass, data: D): R {\n return this.visitPrimitive(t, data);\n }\n public visitNumber(t: PrimitiveType, data: D): R {\n return this.visitPrimitive(t, data);\n }\n public visitInt(t: IntClass, data: D): R {\n return this.visitNumber(t, data);\n }\n public visitNat(t: NatClass, data: D): R {\n return this.visitNumber(t, data);\n }\n public visitFloat(t: FloatClass, data: D): R {\n return this.visitPrimitive(t, data);\n }\n public visitFixedInt(t: FixedIntClass, data: D): R {\n return this.visitNumber(t, data);\n }\n public visitFixedNat(t: FixedNatClass, data: D): R {\n return this.visitNumber(t, data);\n }\n public visitPrincipal(t: PrincipalClass, data: D): R {\n return this.visitPrimitive(t, data);\n }\n\n public visitConstruct(t: ConstructType, data: D): R {\n return this.visitType(t, data);\n }\n public visitVec(t: VecClass, ty: Type, data: D): R {\n return this.visitConstruct(t, data);\n }\n public visitOpt(t: OptClass, ty: Type, data: D): R {\n return this.visitConstruct(t, data);\n }\n public visitRecord(t: RecordClass, fields: Array<[string, Type]>, data: D): R {\n return this.visitConstruct(t, data);\n }\n public visitTuple(t: TupleClass, components: Type[], data: D): R {\n const fields: Array<[string, Type]> = components.map((ty, i) => [`_${i}_`, ty]);\n return this.visitRecord(t, fields, data);\n }\n public visitVariant(t: VariantClass, fields: Array<[string, Type]>, data: D): R {\n return this.visitConstruct(t, data);\n }\n public visitRec(t: RecClass, ty: ConstructType, data: D): R {\n return this.visitConstruct(ty, data);\n }\n public visitFunc(t: FuncClass, data: D): R {\n return this.visitConstruct(t, data);\n }\n public visitService(t: ServiceClass, data: D): R {\n return this.visitConstruct(t, data);\n }\n}\n\n/**\n * Represents an IDL type.\n */\nexport abstract class Type {\n public abstract readonly name: string;\n public abstract accept(v: Visitor, d: D): R;\n\n /* Display type name */\n public display(): string {\n return this.name;\n }\n\n public valueToString(x: T): string {\n return toReadableString(x);\n }\n\n /* Implement `T` in the IDL spec, only needed for non-primitive types */\n public buildTypeTable(typeTable: TypeTable): void {\n if (!typeTable.has(this)) {\n this._buildTypeTableImpl(typeTable);\n }\n }\n\n /**\n * Assert that JavaScript's `x` is the proper type represented by this\n * Type.\n */\n public abstract covariant(x: any): x is T;\n\n /**\n * Encode the value. This needs to be public because it is used by\n * encodeValue() from different types.\n * @internal\n */\n public abstract encodeValue(x: T): ArrayBuffer;\n\n /**\n * Implement `I` in the IDL spec.\n * Encode this type for the type table.\n */\n public abstract encodeType(typeTable: TypeTable): ArrayBuffer;\n\n public abstract checkType(t: Type): Type;\n public abstract decodeValue(x: Pipe, t: Type): T;\n\n protected abstract _buildTypeTableImpl(typeTable: TypeTable): void;\n}\n\nexport abstract class PrimitiveType extends Type {\n public checkType(t: Type): Type {\n if (this.name !== t.name) {\n throw new Error(`type mismatch: type on the wire ${t.name}, expect type ${this.name}`);\n }\n return t;\n }\n public _buildTypeTableImpl(typeTable: TypeTable): void {\n // No type table encoding for Primitive types.\n return;\n }\n}\n\nexport abstract class ConstructType extends Type {\n public checkType(t: Type): ConstructType {\n if (t instanceof RecClass) {\n const ty = t.getType();\n if (typeof ty === 'undefined') {\n throw new Error('type mismatch with uninitialized type');\n }\n return ty;\n }\n throw new Error(`type mismatch: type on the wire ${t.name}, expect type ${this.name}`);\n }\n public encodeType(typeTable: TypeTable) {\n return typeTable.indexOf(this.name);\n }\n}\n\n/**\n * Represents an IDL Empty, a type which has no inhabitants.\n * Since no values exist for this type, it cannot be serialised or deserialised.\n * Result types like `Result` should always succeed.\n */\nexport class EmptyClass extends PrimitiveType {\n public accept(v: Visitor, d: D): R {\n return v.visitEmpty(this, d);\n }\n\n public covariant(x: any): x is never {\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue(): never {\n throw new Error('Empty cannot appear as a function argument');\n }\n\n public valueToString(): never {\n throw new Error('Empty cannot appear as a value');\n }\n\n public encodeType() {\n return slebEncode(IDLTypeIds.Empty);\n }\n\n public decodeValue(): never {\n throw new Error('Empty cannot appear as an output');\n }\n\n get name() {\n return 'empty';\n }\n}\n\n/**\n * Represents an IDL Unknown, a placeholder type for deserialization only.\n * When decoding a value as Unknown, all fields will be retained but the names are only available in\n * hashed form.\n * A deserialized unknown will offer it's actual type by calling the `type()` function.\n * Unknown cannot be serialized and attempting to do so will throw an error.\n */\nexport class UnknownClass extends Type {\n public checkType(t: Type): Type {\n throw new Error('Method not implemented for unknown.');\n }\n\n public accept(v: Visitor, d: D): R {\n throw v.visitType(this, d);\n }\n\n public covariant(x: any): x is any {\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue(): never {\n throw new Error('Unknown cannot appear as a function argument');\n }\n\n public valueToString(): never {\n throw new Error('Unknown cannot appear as a value');\n }\n\n public encodeType(): never {\n throw new Error('Unknown cannot be serialized');\n }\n\n public decodeValue(b: Pipe, t: Type): any {\n let decodedValue = t.decodeValue(b, t);\n\n if (Object(decodedValue) !== decodedValue) {\n // decodedValue is primitive. Box it, otherwise we cannot add the type() function.\n // The type() function is important for primitives because otherwise we cannot tell apart the\n // different number types.\n decodedValue = Object(decodedValue);\n }\n\n let typeFunc;\n if (t instanceof RecClass) {\n typeFunc = () => t.getType();\n } else {\n typeFunc = () => t;\n }\n // Do not use 'decodedValue.type = typeFunc' because this would lead to an enumerable property\n // 'type' which means it would be serialized if the value would be candid encoded again.\n // This in turn leads to problems if the decoded value is a variant because these values are\n // only allowed to have a single property.\n Object.defineProperty(decodedValue, 'type', {\n value: typeFunc,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n return decodedValue;\n }\n\n protected _buildTypeTableImpl(): void {\n throw new Error('Unknown cannot be serialized');\n }\n\n get name() {\n return 'Unknown';\n }\n}\n\n/**\n * Represents an IDL Bool\n */\nexport class BoolClass extends PrimitiveType {\n public accept(v: Visitor, d: D): R {\n return v.visitBool(this, d);\n }\n\n public covariant(x: any): x is boolean {\n if (typeof x === 'boolean') return true;\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue(x: boolean): ArrayBuffer {\n return new Uint8Array([x ? 1 : 0]);\n }\n\n public encodeType() {\n return slebEncode(IDLTypeIds.Bool);\n }\n\n public decodeValue(b: Pipe, t: Type) {\n this.checkType(t);\n switch (safeReadUint8(b)) {\n case 0:\n return false;\n case 1:\n return true;\n default:\n throw new Error('Boolean value out of range');\n }\n }\n\n get name() {\n return 'bool';\n }\n}\n\n/**\n * Represents an IDL Null\n */\nexport class NullClass extends PrimitiveType {\n public accept(v: Visitor, d: D): R {\n return v.visitNull(this, d);\n }\n\n public covariant(x: any): x is null {\n if (x === null) return true;\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue() {\n return new ArrayBuffer(0);\n }\n\n public encodeType() {\n return slebEncode(IDLTypeIds.Null);\n }\n\n public decodeValue(b: Pipe, t: Type) {\n this.checkType(t);\n return null;\n }\n\n get name() {\n return 'null';\n }\n}\n\n/**\n * Represents an IDL Reserved\n */\nexport class ReservedClass extends PrimitiveType {\n public accept(v: Visitor, d: D): R {\n return v.visitReserved(this, d);\n }\n\n public covariant(x: any): x is any {\n return true;\n }\n\n public encodeValue() {\n return new ArrayBuffer(0);\n }\n\n public encodeType() {\n return slebEncode(IDLTypeIds.Reserved);\n }\n\n public decodeValue(b: Pipe, t: Type) {\n if (t.name !== this.name) {\n t.decodeValue(b, t);\n }\n return null;\n }\n\n get name() {\n return 'reserved';\n }\n}\n\n/**\n * Represents an IDL Text\n */\nexport class TextClass extends PrimitiveType {\n public accept(v: Visitor, d: D): R {\n return v.visitText(this, d);\n }\n\n public covariant(x: any): x is string {\n if (typeof x === 'string') return true;\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue(x: string) {\n const buf = new TextEncoder().encode(x);\n const len = lebEncode(buf.byteLength);\n return concat(len, buf);\n }\n\n public encodeType() {\n return slebEncode(IDLTypeIds.Text);\n }\n\n public decodeValue(b: Pipe, t: Type) {\n this.checkType(t);\n const len = lebDecode(b);\n const buf = safeRead(b, Number(len));\n const decoder = new TextDecoder('utf8', { fatal: true });\n return decoder.decode(buf);\n }\n\n get name() {\n return 'text';\n }\n\n public valueToString(x: string) {\n return '\"' + x + '\"';\n }\n}\n\n/**\n * Represents an IDL Int\n */\nexport class IntClass extends PrimitiveType {\n public accept(v: Visitor, d: D): R {\n return v.visitInt(this, d);\n }\n\n public covariant(x: any): x is bigint {\n // We allow encoding of JavaScript plain numbers.\n // But we will always decode to bigint.\n if (typeof x === 'bigint' || Number.isInteger(x)) return true;\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue(x: bigint | number) {\n return slebEncode(x);\n }\n\n public encodeType() {\n return slebEncode(IDLTypeIds.Int);\n }\n\n public decodeValue(b: Pipe, t: Type) {\n this.checkType(t);\n return slebDecode(b);\n }\n\n get name() {\n return 'int';\n }\n\n public valueToString(x: bigint) {\n return x.toString();\n }\n}\n\n/**\n * Represents an IDL Nat\n */\nexport class NatClass extends PrimitiveType {\n public accept(v: Visitor, d: D): R {\n return v.visitNat(this, d);\n }\n\n public covariant(x: any): x is bigint {\n // We allow encoding of JavaScript plain numbers.\n // But we will always decode to bigint.\n if ((typeof x === 'bigint' && x >= BigInt(0)) || (Number.isInteger(x) && x >= 0)) return true;\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue(x: bigint | number) {\n return lebEncode(x);\n }\n\n public encodeType() {\n return slebEncode(IDLTypeIds.Nat);\n }\n\n public decodeValue(b: Pipe, t: Type) {\n this.checkType(t);\n return lebDecode(b);\n }\n\n get name() {\n return 'nat';\n }\n\n public valueToString(x: bigint) {\n return x.toString();\n }\n}\n\n/**\n * Represents an IDL Float\n */\nexport class FloatClass extends PrimitiveType {\n constructor(private _bits: number) {\n super();\n if (_bits !== 32 && _bits !== 64) {\n throw new Error('not a valid float type');\n }\n }\n public accept(v: Visitor, d: D): R {\n return v.visitFloat(this, d);\n }\n\n public covariant(x: any): x is number {\n if (typeof x === 'number' || x instanceof Number) return true;\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue(x: number) {\n const buf = new ArrayBuffer(this._bits / 8);\n const view = new DataView(buf);\n if (this._bits === 32) {\n view.setFloat32(0, x, true);\n } else {\n view.setFloat64(0, x, true);\n }\n return buf;\n }\n\n public encodeType() {\n const opcode = this._bits === 32 ? IDLTypeIds.Float32 : IDLTypeIds.Float64;\n return slebEncode(opcode);\n }\n\n public decodeValue(b: Pipe, t: Type) {\n this.checkType(t);\n const bytes = safeRead(b, this._bits / 8);\n const view = new DataView(bytes);\n if (this._bits === 32) {\n return view.getFloat32(0, true);\n } else {\n return view.getFloat64(0, true);\n }\n }\n\n get name() {\n return 'float' + this._bits;\n }\n\n public valueToString(x: number) {\n return x.toString();\n }\n}\n\n/**\n * Represents an IDL fixed-width Int(n)\n */\nexport class FixedIntClass extends PrimitiveType {\n constructor(public readonly _bits: number) {\n super();\n }\n\n public accept(v: Visitor, d: D): R {\n return v.visitFixedInt(this, d);\n }\n\n public covariant(x: any): x is bigint {\n const min = iexp2(this._bits - 1) * BigInt(-1);\n const max = iexp2(this._bits - 1) - BigInt(1);\n let ok = false;\n if (typeof x === 'bigint') {\n ok = x >= min && x <= max;\n } else if (Number.isInteger(x)) {\n const v = BigInt(x);\n ok = v >= min && v <= max;\n } else {\n ok = false;\n }\n\n if (ok) return true;\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue(x: bigint | number) {\n return writeIntLE(x, this._bits / 8);\n }\n\n public encodeType() {\n const offset = Math.log2(this._bits) - 3;\n return slebEncode(-9 - offset);\n }\n\n public decodeValue(b: Pipe, t: Type) {\n this.checkType(t);\n const num = readIntLE(b, this._bits / 8);\n if (this._bits <= 32) {\n return Number(num);\n } else {\n return num;\n }\n }\n\n get name() {\n return `int${this._bits}`;\n }\n\n public valueToString(x: bigint | number) {\n return x.toString();\n }\n}\n\n/**\n * Represents an IDL fixed-width Nat(n)\n */\nexport class FixedNatClass extends PrimitiveType {\n constructor(public readonly _bits: number) {\n super();\n }\n\n public accept(v: Visitor, d: D): R {\n return v.visitFixedNat(this, d);\n }\n\n public covariant(x: any): x is bigint {\n const max = iexp2(this._bits);\n let ok = false;\n if (typeof x === 'bigint' && x >= BigInt(0)) {\n ok = x < max;\n } else if (Number.isInteger(x) && x >= 0) {\n const v = BigInt(x);\n ok = v < max;\n } else {\n ok = false;\n }\n if (ok) return true;\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue(x: bigint | number) {\n return writeUIntLE(x, this._bits / 8);\n }\n\n public encodeType() {\n const offset = Math.log2(this._bits) - 3;\n return slebEncode(-5 - offset);\n }\n\n public decodeValue(b: Pipe, t: Type) {\n this.checkType(t);\n const num = readUIntLE(b, this._bits / 8);\n if (this._bits <= 32) {\n return Number(num);\n } else {\n return num;\n }\n }\n\n get name() {\n return `nat${this._bits}`;\n }\n\n public valueToString(x: bigint | number) {\n return x.toString();\n }\n}\n\n/**\n * Represents an IDL Array\n *\n * Arrays of fixed-sized nat/int type (e.g. nat8), are encoded from and decoded to TypedArrays (e.g. Uint8Array).\n * Arrays of float or other non-primitive types are encoded/decoded as untyped array in Javascript.\n *\n * @param {Type} t\n */\nexport class VecClass extends ConstructType {\n // If true, this vector is really a blob and we can just use memcpy.\n //\n // NOTE:\n // With support of encoding/dencoding of TypedArrays, this optimization is\n // only used when plain array of bytes are passed as encoding input in order\n // to be backward compatible.\n private _blobOptimization = false;\n\n constructor(protected _type: Type) {\n super();\n if (_type instanceof FixedNatClass && _type._bits === 8) {\n this._blobOptimization = true;\n }\n }\n\n public accept(v: Visitor, d: D): R {\n return v.visitVec(this, this._type, d);\n }\n\n public covariant(x: any): x is T[] {\n // Special case for ArrayBuffer\n const bits =\n this._type instanceof FixedNatClass\n ? this._type._bits\n : this._type instanceof FixedIntClass\n ? this._type._bits\n : 0;\n\n if (\n (ArrayBuffer.isView(x) && bits == (x as any).BYTES_PER_ELEMENT * 8) ||\n (Array.isArray(x) &&\n x.every((v, idx) => {\n try {\n return this._type.covariant(v);\n } catch (e: any) {\n throw new Error(`Invalid ${this.display()} argument: \\n\\nindex ${idx} -> ${e.message}`);\n }\n }))\n )\n return true;\n\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue(x: T[]) {\n const len = lebEncode(x.length);\n if (this._blobOptimization) {\n return concat(len, new Uint8Array(x as unknown as number[]));\n }\n if (ArrayBuffer.isView(x)) {\n return concat(len, new Uint8Array(x.buffer));\n }\n const buf = new Pipe(new ArrayBuffer(len.byteLength + x.length), 0);\n buf.write(len);\n for (const d of x) {\n const encoded = this._type.encodeValue(d);\n buf.write(new Uint8Array(encoded));\n }\n return buf.buffer;\n }\n\n public _buildTypeTableImpl(typeTable: TypeTable) {\n this._type.buildTypeTable(typeTable);\n\n const opCode = slebEncode(IDLTypeIds.Vector);\n const buffer = this._type.encodeType(typeTable);\n typeTable.add(this, concat(opCode, buffer));\n }\n\n public decodeValue(b: Pipe, t: Type): T[] {\n const vec = this.checkType(t);\n if (!(vec instanceof VecClass)) {\n throw new Error('Not a vector type');\n }\n const len = Number(lebDecode(b));\n\n if (this._type instanceof FixedNatClass) {\n if (this._type._bits == 8) {\n return new Uint8Array(b.read(len)) as unknown as T[];\n }\n if (this._type._bits == 16) {\n return new Uint16Array(b.read(len * 2)) as unknown as T[];\n }\n if (this._type._bits == 32) {\n return new Uint32Array(b.read(len * 4)) as unknown as T[];\n }\n if (this._type._bits == 64) {\n return new BigUint64Array(b.read(len * 8)) as unknown as T[];\n }\n }\n\n if (this._type instanceof FixedIntClass) {\n if (this._type._bits == 8) {\n return new Int8Array(b.read(len)) as unknown as T[];\n }\n if (this._type._bits == 16) {\n return new Int16Array(b.read(len * 2)) as unknown as T[];\n }\n if (this._type._bits == 32) {\n return new Int32Array(b.read(len * 4)) as unknown as T[];\n }\n if (this._type._bits == 64) {\n return new BigInt64Array(b.read(len * 8)) as unknown as T[];\n }\n }\n\n const rets: T[] = [];\n for (let i = 0; i < len; i++) {\n rets.push(this._type.decodeValue(b, vec._type));\n }\n return rets;\n }\n\n get name() {\n return `vec ${this._type.name}`;\n }\n\n public display() {\n return `vec ${this._type.display()}`;\n }\n\n public valueToString(x: T[]) {\n const elements = x.map(e => this._type.valueToString(e));\n return 'vec {' + elements.join('; ') + '}';\n }\n}\n\n/**\n * Represents an IDL Option\n * @param {Type} t\n */\nexport class OptClass extends ConstructType<[T] | []> {\n constructor(protected _type: Type) {\n super();\n }\n\n public accept(v: Visitor, d: D): R {\n return v.visitOpt(this, this._type, d);\n }\n\n public covariant(x: any): x is [T] | [] {\n try {\n if (Array.isArray(x) && (x.length === 0 || (x.length === 1 && this._type.covariant(x[0]))))\n return true;\n } catch (e: any) {\n throw new Error(\n `Invalid ${this.display()} argument: ${toReadableString(x)} \\n\\n-> ${e.message}`,\n );\n }\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue(x: [T] | []) {\n if (x.length === 0) {\n return new Uint8Array([0]);\n } else {\n return concat(new Uint8Array([1]), this._type.encodeValue(x[0]));\n }\n }\n\n public _buildTypeTableImpl(typeTable: TypeTable) {\n this._type.buildTypeTable(typeTable);\n\n const opCode = slebEncode(IDLTypeIds.Opt);\n const buffer = this._type.encodeType(typeTable);\n typeTable.add(this, concat(opCode, buffer));\n }\n\n public decodeValue(b: Pipe, t: Type): [T] | [] {\n const opt = this.checkType(t);\n if (!(opt instanceof OptClass)) {\n throw new Error('Not an option type');\n }\n switch (safeReadUint8(b)) {\n case 0:\n return [];\n case 1:\n return [this._type.decodeValue(b, opt._type)];\n default:\n throw new Error('Not an option value');\n }\n }\n\n get name() {\n return `opt ${this._type.name}`;\n }\n\n public display() {\n return `opt ${this._type.display()}`;\n }\n\n public valueToString(x: [T] | []) {\n if (x.length === 0) {\n return 'null';\n } else {\n return `opt ${this._type.valueToString(x[0])}`;\n }\n }\n}\n\n/**\n * Represents an IDL Record\n * @param {Object} [fields] - mapping of function name to Type\n */\nexport class RecordClass extends ConstructType> {\n protected readonly _fields: Array<[string, Type]>;\n\n constructor(fields: Record = {}) {\n super();\n this._fields = Object.entries(fields).sort((a, b) => idlLabelToId(a[0]) - idlLabelToId(b[0]));\n }\n\n public accept(v: Visitor, d: D): R {\n return v.visitRecord(this, this._fields, d);\n }\n\n public tryAsTuple(): Type[] | null {\n const res: Type[] = [];\n for (let i = 0; i < this._fields.length; i++) {\n const [key, type] = this._fields[i];\n if (key !== `_${i}_`) {\n return null;\n }\n res.push(type);\n }\n return res;\n }\n\n public covariant(x: any): x is Record {\n if (\n typeof x === 'object' &&\n this._fields.every(([k, t]) => {\n // eslint-disable-next-line\n if (!x.hasOwnProperty(k)) {\n throw new Error(`Record is missing key \"${k}\".`);\n }\n try {\n return t.covariant(x[k]);\n } catch (e: any) {\n throw new Error(`Invalid ${this.display()} argument: \\n\\nfield ${k} -> ${e.message}`);\n }\n })\n )\n return true;\n\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue(x: Record) {\n const values = this._fields.map(([key]) => x[key]);\n const bufs = zipWith(this._fields, values, ([, c], d) => c.encodeValue(d));\n return concat(...bufs);\n }\n\n public _buildTypeTableImpl(T: TypeTable) {\n this._fields.forEach(([_, value]) => value.buildTypeTable(T));\n const opCode = slebEncode(IDLTypeIds.Record);\n const len = lebEncode(this._fields.length);\n const fields = this._fields.map(([key, value]) =>\n concat(lebEncode(idlLabelToId(key)), value.encodeType(T)),\n );\n\n T.add(this, concat(opCode, len, concat(...fields)));\n }\n\n public decodeValue(b: Pipe, t: Type) {\n const record = this.checkType(t);\n if (!(record instanceof RecordClass)) {\n throw new Error('Not a record type');\n }\n const x: Record = {};\n\n let expectedRecordIdx = 0;\n let actualRecordIdx = 0;\n while (actualRecordIdx < record._fields.length) {\n const [hash, type] = record._fields[actualRecordIdx];\n\n if (expectedRecordIdx >= this._fields.length) {\n // skip unexpected left over fields present on the wire\n type.decodeValue(b, type);\n actualRecordIdx++;\n continue;\n }\n\n const [expectKey, expectType] = this._fields[expectedRecordIdx];\n const expectedId = idlLabelToId(this._fields[expectedRecordIdx][0]);\n const actualId = idlLabelToId(hash);\n if (expectedId === actualId) {\n // the current field on the wire matches the expected field\n x[expectKey] = expectType.decodeValue(b, type);\n expectedRecordIdx++;\n actualRecordIdx++;\n } else if (actualId > expectedId) {\n // The expected field does not exist on the wire\n if (expectType instanceof OptClass || expectType instanceof ReservedClass) {\n x[expectKey] = [];\n expectedRecordIdx++;\n } else {\n throw new Error('Cannot find required field ' + expectKey);\n }\n } else {\n // The field on the wire does not exist in the output type, so we can skip it\n type.decodeValue(b, type);\n actualRecordIdx++;\n }\n }\n\n // initialize left over expected optional fields\n for (const [expectKey, expectType] of this._fields.slice(expectedRecordIdx)) {\n if (expectType instanceof OptClass || expectType instanceof ReservedClass) {\n // TODO this assumes null value in opt is represented as []\n x[expectKey] = [];\n } else {\n throw new Error('Cannot find required field ' + expectKey);\n }\n }\n return x;\n }\n\n get name() {\n const fields = this._fields.map(([key, value]) => key + ':' + value.name);\n return `record {${fields.join('; ')}}`;\n }\n\n public display() {\n const fields = this._fields.map(([key, value]) => key + ':' + value.display());\n return `record {${fields.join('; ')}}`;\n }\n\n public valueToString(x: Record) {\n const values = this._fields.map(([key]) => x[key]);\n const fields = zipWith(this._fields, values, ([k, c], d) => k + '=' + c.valueToString(d));\n return `record {${fields.join('; ')}}`;\n }\n}\n\n/**\n * Represents Tuple, a syntactic sugar for Record.\n * @param {Type} components\n */\nexport class TupleClass extends RecordClass {\n protected readonly _components: Type[];\n\n constructor(_components: Type[]) {\n const x: Record = {};\n _components.forEach((e, i) => (x['_' + i + '_'] = e));\n super(x);\n this._components = _components;\n }\n\n public accept(v: Visitor, d: D): R {\n return v.visitTuple(this, this._components, d);\n }\n\n public covariant(x: any): x is T {\n // `>=` because tuples can be covariant when encoded.\n\n if (\n Array.isArray(x) &&\n x.length >= this._fields.length &&\n this._components.every((t, i) => {\n try {\n return t.covariant(x[i]);\n } catch (e: any) {\n throw new Error(`Invalid ${this.display()} argument: \\n\\nindex ${i} -> ${e.message}`);\n }\n })\n )\n return true;\n\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue(x: any[]) {\n const bufs = zipWith(this._components, x, (c, d) => c.encodeValue(d));\n return concat(...bufs);\n }\n\n public decodeValue(b: Pipe, t: Type): T {\n const tuple = this.checkType(t);\n if (!(tuple instanceof TupleClass)) {\n throw new Error('not a tuple type');\n }\n if (tuple._components.length < this._components.length) {\n throw new Error('tuple mismatch');\n }\n const res = [];\n for (const [i, wireType] of tuple._components.entries()) {\n if (i >= this._components.length) {\n // skip value\n wireType.decodeValue(b, wireType);\n } else {\n res.push(this._components[i].decodeValue(b, wireType));\n }\n }\n return res as T;\n }\n\n public display() {\n const fields = this._components.map(value => value.display());\n return `record {${fields.join('; ')}}`;\n }\n\n public valueToString(values: any[]) {\n const fields = zipWith(this._components, values, (c, d) => c.valueToString(d));\n return `record {${fields.join('; ')}}`;\n }\n}\n\n/**\n * Represents an IDL Variant\n * @param {Object} [fields] - mapping of function name to Type\n */\nexport class VariantClass extends ConstructType> {\n private readonly _fields: Array<[string, Type]>;\n\n constructor(fields: Record = {}) {\n super();\n this._fields = Object.entries(fields).sort((a, b) => idlLabelToId(a[0]) - idlLabelToId(b[0]));\n }\n\n public accept(v: Visitor, d: D): R {\n return v.visitVariant(this, this._fields, d);\n }\n\n public covariant(x: any): x is Record {\n if (\n typeof x === 'object' &&\n Object.entries(x).length === 1 &&\n this._fields.every(([k, v]) => {\n try {\n // eslint-disable-next-line\n return !x.hasOwnProperty(k) || v.covariant(x[k]);\n } catch (e: any) {\n throw new Error(`Invalid ${this.display()} argument: \\n\\nvariant ${k} -> ${e.message}`);\n }\n })\n )\n return true;\n\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue(x: Record) {\n for (let i = 0; i < this._fields.length; i++) {\n const [name, type] = this._fields[i];\n // eslint-disable-next-line\n if (x.hasOwnProperty(name)) {\n const idx = lebEncode(i);\n const buf = type.encodeValue(x[name]);\n\n return concat(idx, buf);\n }\n }\n throw Error('Variant has no data: ' + x);\n }\n\n public _buildTypeTableImpl(typeTable: TypeTable) {\n this._fields.forEach(([, type]) => {\n type.buildTypeTable(typeTable);\n });\n const opCode = slebEncode(IDLTypeIds.Variant);\n const len = lebEncode(this._fields.length);\n const fields = this._fields.map(([key, value]) =>\n concat(lebEncode(idlLabelToId(key)), value.encodeType(typeTable)),\n );\n typeTable.add(this, concat(opCode, len, ...fields));\n }\n\n public decodeValue(b: Pipe, t: Type) {\n const variant = this.checkType(t);\n if (!(variant instanceof VariantClass)) {\n throw new Error('Not a variant type');\n }\n const idx = Number(lebDecode(b));\n if (idx >= variant._fields.length) {\n throw Error('Invalid variant index: ' + idx);\n }\n const [wireHash, wireType] = variant._fields[idx];\n for (const [key, expectType] of this._fields) {\n if (idlLabelToId(wireHash) === idlLabelToId(key)) {\n const value = expectType.decodeValue(b, wireType);\n return { [key]: value };\n }\n }\n throw new Error('Cannot find field hash ' + wireHash);\n }\n\n get name() {\n const fields = this._fields.map(([key, type]) => key + ':' + type.name);\n return `variant {${fields.join('; ')}}`;\n }\n\n public display() {\n const fields = this._fields.map(\n ([key, type]) => key + (type.name === 'null' ? '' : `:${type.display()}`),\n );\n return `variant {${fields.join('; ')}}`;\n }\n\n public valueToString(x: Record) {\n for (const [name, type] of this._fields) {\n // eslint-disable-next-line\n if (x.hasOwnProperty(name)) {\n const value = type.valueToString(x[name]);\n if (value === 'null') {\n return `variant {${name}}`;\n } else {\n return `variant {${name}=${value}}`;\n }\n }\n }\n throw new Error('Variant has no data: ' + x);\n }\n}\n\n/**\n * Represents a reference to an IDL type, used for defining recursive data\n * types.\n */\nexport class RecClass extends ConstructType {\n private static _counter = 0;\n private _id = RecClass._counter++;\n private _type: ConstructType | undefined = undefined;\n\n public accept(v: Visitor, d: D): R {\n if (!this._type) {\n throw Error('Recursive type uninitialized.');\n }\n return v.visitRec(this, this._type, d);\n }\n\n public fill(t: ConstructType) {\n this._type = t;\n }\n\n public getType() {\n return this._type;\n }\n\n public covariant(x: any): x is T {\n if (this._type ? this._type.covariant(x) : false) return true;\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue(x: T) {\n if (!this._type) {\n throw Error('Recursive type uninitialized.');\n }\n return this._type.encodeValue(x);\n }\n\n public _buildTypeTableImpl(typeTable: TypeTable) {\n if (!this._type) {\n throw Error('Recursive type uninitialized.');\n }\n typeTable.add(this, new Uint8Array([]));\n this._type.buildTypeTable(typeTable);\n typeTable.merge(this, this._type.name);\n }\n\n public decodeValue(b: Pipe, t: Type) {\n if (!this._type) {\n throw Error('Recursive type uninitialized.');\n }\n return this._type.decodeValue(b, t);\n }\n\n get name() {\n return `rec_${this._id}`;\n }\n\n public display() {\n if (!this._type) {\n throw Error('Recursive type uninitialized.');\n }\n return `μ${this.name}.${this._type.name}`;\n }\n\n public valueToString(x: T) {\n if (!this._type) {\n throw Error('Recursive type uninitialized.');\n }\n return this._type.valueToString(x);\n }\n}\n\nfunction decodePrincipalId(b: Pipe): PrincipalId {\n const x = safeReadUint8(b);\n if (x !== 1) {\n throw new Error('Cannot decode principal');\n }\n\n const len = Number(lebDecode(b));\n return PrincipalId.fromUint8Array(new Uint8Array(safeRead(b, len)));\n}\n\n/**\n * Represents an IDL principal reference\n */\nexport class PrincipalClass extends PrimitiveType {\n public accept(v: Visitor, d: D): R {\n return v.visitPrincipal(this, d);\n }\n\n public covariant(x: any): x is PrincipalId {\n if (x && x._isPrincipal) return true;\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue(x: PrincipalId): ArrayBuffer {\n const buf = x.toUint8Array();\n const len = lebEncode(buf.byteLength);\n return concat(new Uint8Array([1]), len, buf);\n }\n\n public encodeType() {\n return slebEncode(IDLTypeIds.Principal);\n }\n\n public decodeValue(b: Pipe, t: Type): PrincipalId {\n this.checkType(t);\n return decodePrincipalId(b);\n }\n\n get name() {\n return 'principal';\n }\n public valueToString(x: PrincipalId) {\n return `${this.name} \"${x.toText()}\"`;\n }\n}\n\n/**\n * Represents an IDL function reference.\n * @param argTypes Argument types.\n * @param retTypes Return types.\n * @param annotations Function annotations.\n */\nexport class FuncClass extends ConstructType<[PrincipalId, string]> {\n public static argsToString(types: Type[], v: any[]) {\n if (types.length !== v.length) {\n throw new Error('arity mismatch');\n }\n return '(' + types.map((t, i) => t.valueToString(v[i])).join(', ') + ')';\n }\n\n constructor(public argTypes: Type[], public retTypes: Type[], public annotations: string[] = []) {\n super();\n }\n\n public accept(v: Visitor, d: D): R {\n return v.visitFunc(this, d);\n }\n public covariant(x: any): x is [PrincipalId, string] {\n if (Array.isArray(x) && x.length === 2 && x[0] && x[0]._isPrincipal && typeof x[1] === 'string')\n return true;\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue([principal, methodName]: [PrincipalId, string]) {\n const buf = principal.toUint8Array();\n const len = lebEncode(buf.byteLength);\n const canister = concat(new Uint8Array([1]), len, buf);\n\n const method = new TextEncoder().encode(methodName);\n const methodLen = lebEncode(method.byteLength);\n return concat(new Uint8Array([1]), canister, methodLen, method);\n }\n\n public _buildTypeTableImpl(T: TypeTable) {\n this.argTypes.forEach(arg => arg.buildTypeTable(T));\n this.retTypes.forEach(arg => arg.buildTypeTable(T));\n\n const opCode = slebEncode(IDLTypeIds.Func);\n const argLen = lebEncode(this.argTypes.length);\n const args = concat(...this.argTypes.map(arg => arg.encodeType(T)));\n const retLen = lebEncode(this.retTypes.length);\n const rets = concat(...this.retTypes.map(arg => arg.encodeType(T)));\n const annLen = lebEncode(this.annotations.length);\n const anns = concat(...this.annotations.map(a => this.encodeAnnotation(a)));\n\n T.add(this, concat(opCode, argLen, args, retLen, rets, annLen, anns));\n }\n\n public decodeValue(b: Pipe): [PrincipalId, string] {\n const x = safeReadUint8(b);\n if (x !== 1) {\n throw new Error('Cannot decode function reference');\n }\n const canister = decodePrincipalId(b);\n\n const mLen = Number(lebDecode(b));\n const buf = safeRead(b, mLen);\n const decoder = new TextDecoder('utf8', { fatal: true });\n const method = decoder.decode(buf);\n\n return [canister, method];\n }\n\n get name() {\n const args = this.argTypes.map(arg => arg.name).join(', ');\n const rets = this.retTypes.map(arg => arg.name).join(', ');\n const annon = ' ' + this.annotations.join(' ');\n return `(${args}) -> (${rets})${annon}`;\n }\n\n public valueToString([principal, str]: [PrincipalId, string]) {\n return `func \"${principal.toText()}\".${str}`;\n }\n\n public display(): string {\n const args = this.argTypes.map(arg => arg.display()).join(', ');\n const rets = this.retTypes.map(arg => arg.display()).join(', ');\n const annon = ' ' + this.annotations.join(' ');\n return `(${args}) → (${rets})${annon}`;\n }\n\n private encodeAnnotation(ann: string): ArrayBuffer {\n if (ann === 'query') {\n return new Uint8Array([1]);\n } else if (ann === 'oneway') {\n return new Uint8Array([2]);\n } else {\n throw new Error('Illegal function annotation');\n }\n }\n}\n\nexport class ServiceClass extends ConstructType {\n public readonly _fields: Array<[string, FuncClass]>;\n constructor(fields: Record) {\n super();\n this._fields = Object.entries(fields).sort((a, b) => idlLabelToId(a[0]) - idlLabelToId(b[0]));\n }\n public accept(v: Visitor, d: D): R {\n return v.visitService(this, d);\n }\n public covariant(x: any): x is PrincipalId {\n if (x && x._isPrincipal) return true;\n throw new Error(`Invalid ${this.display()} argument: ${toReadableString(x)}`);\n }\n\n public encodeValue(x: PrincipalId) {\n const buf = x.toUint8Array();\n const len = lebEncode(buf.length);\n return concat(new Uint8Array([1]), len, buf);\n }\n\n public _buildTypeTableImpl(T: TypeTable) {\n this._fields.forEach(([_, func]) => func.buildTypeTable(T));\n const opCode = slebEncode(IDLTypeIds.Service);\n const len = lebEncode(this._fields.length);\n const meths = this._fields.map(([label, func]) => {\n const labelBuf = new TextEncoder().encode(label);\n const labelLen = lebEncode(labelBuf.length);\n return concat(labelLen, labelBuf, func.encodeType(T));\n });\n\n T.add(this, concat(opCode, len, ...meths));\n }\n\n public decodeValue(b: Pipe): PrincipalId {\n return decodePrincipalId(b);\n }\n get name() {\n const fields = this._fields.map(([key, value]) => key + ':' + value.name);\n return `service {${fields.join('; ')}}`;\n }\n\n public valueToString(x: PrincipalId) {\n return `service \"${x.toText()}\"`;\n }\n}\n\n/**\n *\n * @param x\n * @returns {string}\n */\nfunction toReadableString(x: unknown): string {\n const str = JSON.stringify(x, (_key, value) =>\n typeof value === 'bigint' ? `BigInt(${value})` : value,\n );\n\n return str && str.length > toReadableString_max\n ? str.substring(0, toReadableString_max - 3) + '...'\n : str;\n}\n\n/**\n * Encode a array of values\n * @param argTypes\n * @param args\n * @returns {Buffer} serialised value\n */\nexport function encode(argTypes: Array>, args: any[]): ArrayBuffer {\n if (args.length < argTypes.length) {\n throw Error('Wrong number of message arguments');\n }\n\n const typeTable = new TypeTable();\n argTypes.forEach(t => t.buildTypeTable(typeTable));\n\n const magic = new TextEncoder().encode(magicNumber);\n const table = typeTable.encode();\n const len = lebEncode(args.length);\n const typs = concat(...argTypes.map(t => t.encodeType(typeTable)));\n const vals = concat(\n ...zipWith(argTypes, args, (t, x) => {\n try {\n t.covariant(x);\n } catch (e: any) {\n const err = new Error(e.message + '\\n\\n');\n throw err;\n }\n\n return t.encodeValue(x);\n }),\n );\n\n return concat(magic, table, len, typs, vals);\n}\n\n/**\n * Decode a binary value\n * @param retTypes - Types expected in the buffer.\n * @param bytes - hex-encoded string, or buffer.\n * @returns Value deserialised to JS type\n */\nexport function decode(retTypes: Type[], bytes: ArrayBuffer): JsonValue[] {\n const b = new Pipe(bytes);\n\n if (bytes.byteLength < magicNumber.length) {\n throw new Error('Message length smaller than magic number');\n }\n const magicBuffer = safeRead(b, magicNumber.length);\n const magic = new TextDecoder().decode(magicBuffer);\n if (magic !== magicNumber) {\n throw new Error('Wrong magic number: ' + JSON.stringify(magic));\n }\n\n function readTypeTable(pipe: Pipe): [Array<[IDLTypeIds, any]>, number[]] {\n const typeTable: Array<[IDLTypeIds, any]> = [];\n const len = Number(lebDecode(pipe));\n\n for (let i = 0; i < len; i++) {\n const ty = Number(slebDecode(pipe));\n switch (ty) {\n case IDLTypeIds.Opt:\n case IDLTypeIds.Vector: {\n const t = Number(slebDecode(pipe));\n typeTable.push([ty, t]);\n break;\n }\n case IDLTypeIds.Record:\n case IDLTypeIds.Variant: {\n const fields = [];\n let objectLength = Number(lebDecode(pipe));\n let prevHash;\n while (objectLength--) {\n const hash = Number(lebDecode(pipe));\n if (hash >= Math.pow(2, 32)) {\n throw new Error('field id out of 32-bit range');\n }\n if (typeof prevHash === 'number' && prevHash >= hash) {\n throw new Error('field id collision or not sorted');\n }\n prevHash = hash;\n const t = Number(slebDecode(pipe));\n fields.push([hash, t]);\n }\n typeTable.push([ty, fields]);\n break;\n }\n case IDLTypeIds.Func: {\n const args = [];\n let argLength = Number(lebDecode(pipe));\n while (argLength--) {\n args.push(Number(slebDecode(pipe)));\n }\n const returnValues = [];\n let returnValuesLength = Number(lebDecode(pipe));\n while (returnValuesLength--) {\n returnValues.push(Number(slebDecode(pipe)));\n }\n const annotations = [];\n let annotationLength = Number(lebDecode(pipe));\n while (annotationLength--) {\n const annotation = Number(lebDecode(pipe));\n switch (annotation) {\n case 1: {\n annotations.push('query');\n break;\n }\n case 2: {\n annotations.push('oneway');\n break;\n }\n default:\n throw new Error('unknown annotation');\n }\n }\n typeTable.push([ty, [args, returnValues, annotations]]);\n break;\n }\n case IDLTypeIds.Service: {\n let servLength = Number(lebDecode(pipe));\n const methods = [];\n while (servLength--) {\n const nameLength = Number(lebDecode(pipe));\n const funcName = new TextDecoder().decode(safeRead(pipe, nameLength));\n const funcType = slebDecode(pipe);\n methods.push([funcName, funcType]);\n }\n typeTable.push([ty, methods]);\n break;\n }\n default:\n throw new Error('Illegal op_code: ' + ty);\n }\n }\n\n const rawList: number[] = [];\n const length = Number(lebDecode(pipe));\n for (let i = 0; i < length; i++) {\n rawList.push(Number(slebDecode(pipe)));\n }\n return [typeTable, rawList];\n }\n const [rawTable, rawTypes] = readTypeTable(b);\n if (rawTypes.length < retTypes.length) {\n throw new Error('Wrong number of return values');\n }\n\n const table: RecClass[] = rawTable.map(_ => Rec());\n function getType(t: number): Type {\n if (t < -24) {\n throw new Error('future value not supported');\n }\n if (t < 0) {\n switch (t) {\n case -1:\n return Null;\n case -2:\n return Bool;\n case -3:\n return Nat;\n case -4:\n return Int;\n case -5:\n return Nat8;\n case -6:\n return Nat16;\n case -7:\n return Nat32;\n case -8:\n return Nat64;\n case -9:\n return Int8;\n case -10:\n return Int16;\n case -11:\n return Int32;\n case -12:\n return Int64;\n case -13:\n return Float32;\n case -14:\n return Float64;\n case -15:\n return Text;\n case -16:\n return Reserved;\n case -17:\n return Empty;\n case -24:\n return Principal;\n default:\n throw new Error('Illegal op_code: ' + t);\n }\n }\n if (t >= rawTable.length) {\n throw new Error('type index out of range');\n }\n return table[t];\n }\n function buildType(entry: [IDLTypeIds, any]): Type {\n switch (entry[0]) {\n case IDLTypeIds.Vector: {\n const ty = getType(entry[1]);\n return Vec(ty);\n }\n case IDLTypeIds.Opt: {\n const ty = getType(entry[1]);\n return Opt(ty);\n }\n case IDLTypeIds.Record: {\n const fields: Record = {};\n for (const [hash, ty] of entry[1]) {\n const name = `_${hash}_`;\n fields[name] = getType(ty);\n }\n const record = Record(fields);\n const tuple = record.tryAsTuple();\n if (Array.isArray(tuple)) {\n return Tuple(...tuple);\n } else {\n return record;\n }\n }\n case IDLTypeIds.Variant: {\n const fields: Record = {};\n for (const [hash, ty] of entry[1]) {\n const name = `_${hash}_`;\n fields[name] = getType(ty);\n }\n return Variant(fields);\n }\n case IDLTypeIds.Func: {\n const [args, returnValues, annotations] = entry[1];\n return Func(\n args.map((t: number) => getType(t)),\n returnValues.map((t: number) => getType(t)),\n annotations,\n );\n }\n case IDLTypeIds.Service: {\n const rec: Record = {};\n const methods = entry[1] as [[string, number]];\n for (const [name, typeRef] of methods) {\n let type: Type | undefined = getType(typeRef);\n\n if (type instanceof RecClass) {\n // unpack reference type\n type = type.getType();\n }\n if (!(type instanceof FuncClass)) {\n throw new Error('Illegal service definition: services can only contain functions');\n }\n rec[name] = type;\n }\n return Service(rec);\n }\n default:\n throw new Error('Illegal op_code: ' + entry[0]);\n }\n }\n\n rawTable.forEach((entry, i) => {\n const t = buildType(entry);\n table[i].fill(t);\n });\n\n const types = rawTypes.map(t => getType(t));\n const output = retTypes.map((t, i) => {\n return t.decodeValue(b, types[i]);\n });\n\n // skip unused values\n for (let ind = retTypes.length; ind < types.length; ind++) {\n types[ind].decodeValue(b, types[ind]);\n }\n\n if (b.byteLength > 0) {\n throw new Error('decode: Left-over bytes');\n }\n\n return output;\n}\n\n/**\n * An Interface Factory, normally provided by a Candid code generation.\n */\nexport type InterfaceFactory = (idl: {\n IDL: {\n Empty: EmptyClass;\n Reserved: ReservedClass;\n Unknown: UnknownClass;\n Bool: BoolClass;\n Null: NullClass;\n Text: TextClass;\n Int: IntClass;\n Nat: NatClass;\n\n Float32: FloatClass;\n Float64: FloatClass;\n\n Int8: FixedIntClass;\n Int16: FixedIntClass;\n Int32: FixedIntClass;\n Int64: FixedIntClass;\n\n Nat8: FixedNatClass;\n Nat16: FixedNatClass;\n Nat32: FixedNatClass;\n Nat64: FixedNatClass;\n\n Principal: PrincipalClass;\n\n Tuple: typeof Tuple;\n Vec: typeof Vec;\n Opt: typeof Opt;\n Record: typeof Record;\n Variant: typeof Variant;\n Rec: typeof Rec;\n Func: typeof Func;\n\n Service(t: Record): ServiceClass;\n };\n}) => ServiceClass;\n\n// Export Types instances.\nexport const Empty = new EmptyClass();\nexport const Reserved = new ReservedClass();\n/**\n * Client-only type for deserializing unknown data. Not supported by Candid, and its use is discouraged.\n */\nexport const Unknown = new UnknownClass();\nexport const Bool = new BoolClass();\nexport const Null = new NullClass();\nexport const Text = new TextClass();\nexport const Int = new IntClass();\nexport const Nat = new NatClass();\n\nexport const Float32 = new FloatClass(32);\nexport const Float64 = new FloatClass(64);\n\nexport const Int8 = new FixedIntClass(8);\nexport const Int16 = new FixedIntClass(16);\nexport const Int32 = new FixedIntClass(32);\nexport const Int64 = new FixedIntClass(64);\n\nexport const Nat8 = new FixedNatClass(8);\nexport const Nat16 = new FixedNatClass(16);\nexport const Nat32 = new FixedNatClass(32);\nexport const Nat64 = new FixedNatClass(64);\n\nexport const Principal = new PrincipalClass();\n\n/**\n *\n * @param types array of any types\n * @returns TupleClass from those types\n */\nexport function Tuple(...types: T): TupleClass {\n return new TupleClass(types);\n}\n/**\n *\n * @param t IDL Type\n * @returns VecClass from that type\n */\nexport function Vec(t: Type): VecClass {\n return new VecClass(t);\n}\n/**\n *\n * @param t IDL Type\n * @returns OptClass of Type\n */\nexport function Opt(t: Type): OptClass {\n return new OptClass(t);\n}\n/**\n *\n * @param t Record of string and IDL Type\n * @returns RecordClass of string and Type\n */\nexport function Record(t: Record): RecordClass {\n return new RecordClass(t);\n}\n\n/**\n *\n * @param fields Record of string and IDL Type\n * @returns VariantClass\n */\nexport function Variant(fields: Record): VariantClass {\n return new VariantClass(fields);\n}\n/**\n *\n * @returns new RecClass\n */\nexport function Rec(): RecClass {\n return new RecClass();\n}\n\n/**\n *\n * @param args array of IDL Types\n * @param ret array of IDL Types\n * @param annotations array of strings, [] by default\n * @returns new FuncClass\n */\nexport function Func(args: Type[], ret: Type[], annotations: string[] = []): FuncClass {\n return new FuncClass(args, ret, annotations);\n}\n\n/**\n *\n * @param t Record of string and FuncClass\n * @returns ServiceClass\n */\nexport function Service(t: Record): ServiceClass {\n return new ServiceClass(t);\n}\n","// tslint:disable:no-bitwise\nconst alphabet = 'abcdefghijklmnopqrstuvwxyz234567';\n\n// Build a lookup table for decoding.\nconst lookupTable: Record = Object.create(null);\nfor (let i = 0; i < alphabet.length; i++) {\n lookupTable[alphabet[i]] = i;\n}\n\n// Add aliases for rfc4648.\nlookupTable['0'] = lookupTable.o;\nlookupTable['1'] = lookupTable.i;\n\n/**\n * @param input The input array to encode.\n * @returns A Base32 string encoding the input.\n */\nexport function encode(input: Uint8Array): string {\n // How many bits will we skip from the first byte.\n let skip = 0;\n // 5 high bits, carry from one byte to the next.\n let bits = 0;\n\n // The output string in base32.\n let output = '';\n\n function encodeByte(byte: number) {\n if (skip < 0) {\n // we have a carry from the previous byte\n bits |= byte >> -skip;\n } else {\n // no carry\n bits = (byte << skip) & 248;\n }\n\n if (skip > 3) {\n // Not enough data to produce a character, get us another one\n skip -= 8;\n return 1;\n }\n\n if (skip < 4) {\n // produce a character\n output += alphabet[bits >> 3];\n skip += 5;\n }\n\n return 0;\n }\n\n for (let i = 0; i < input.length; ) {\n i += encodeByte(input[i]);\n }\n\n return output + (skip < 0 ? alphabet[bits >> 3] : '');\n}\n\n/**\n * @param input The base32 encoded string to decode.\n */\nexport function decode(input: string): Uint8Array {\n // how many bits we have from the previous character.\n let skip = 0;\n // current byte we're producing.\n let byte = 0;\n\n const output = new Uint8Array(((input.length * 4) / 3) | 0);\n let o = 0;\n\n function decodeChar(char: string) {\n // Consume a character from the stream, store\n // the output in this.output. As before, better\n // to use update().\n let val = lookupTable[char.toLowerCase()];\n if (val === undefined) {\n throw new Error(`Invalid character: ${JSON.stringify(char)}`);\n }\n\n // move to the high bits\n val <<= 3;\n byte |= val >>> skip;\n skip += 5;\n\n if (skip >= 8) {\n // We have enough bytes to produce an output\n output[o++] = byte;\n skip -= 8;\n\n if (skip > 0) {\n byte = (val << (5 - skip)) & 255;\n } else {\n byte = 0;\n }\n }\n }\n\n for (const c of input) {\n decodeChar(c);\n }\n\n return output.slice(0, o);\n}\n","// tslint:disable:no-bitwise\n\n// This file is translated to JavaScript from\n// https://lxp32.github.io/docs/a-simple-example-crc32-calculation/\nconst lookUpTable: Uint32Array = new Uint32Array([\n 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,\n 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91,\n 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,\n 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5,\n 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,\n 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,\n 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f,\n 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d,\n 0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,\n 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,\n 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457,\n 0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,\n 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb,\n 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9,\n 0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,\n 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad,\n 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683,\n 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,\n 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7,\n 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,\n 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,\n 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79,\n 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f,\n 0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,\n 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,\n 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21,\n 0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,\n 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45,\n 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db,\n 0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,\n 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,\n 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d,\n]);\n\n/**\n * Calculate the CRC32 of an ArrayBufferLike.\n * @param buf The BufferLike to calculate the CRC32 of.\n */\nexport function getCrc32(buf: ArrayBufferLike): number {\n const b = new Uint8Array(buf);\n let crc = -1;\n\n // tslint:disable-next-line:prefer-for-of\n for (let i = 0; i < b.length; i++) {\n const byte = b[i];\n const t = (byte ^ crc) & 0xff;\n crc = lookUpTable[t] ^ (crc >>> 8);\n }\n\n return (crc ^ -1) >>> 0;\n}\n","import { decode, encode } from './utils/base32';\nimport { getCrc32 } from './utils/getCrc';\nimport { sha224 } from './utils/sha224';\n\nconst SELF_AUTHENTICATING_SUFFIX = 2;\nconst ANONYMOUS_SUFFIX = 4;\n\nconst MANAGEMENT_CANISTER_PRINCIPAL_HEX_STR = 'aaaaa-aa';\n\nconst fromHexString = (hexString: string) =>\n new Uint8Array((hexString.match(/.{1,2}/g) ?? []).map(byte => parseInt(byte, 16)));\n\nconst toHexString = (bytes: Uint8Array) =>\n bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, '0'), '');\n\nexport class Principal {\n public static anonymous(): Principal {\n return new this(new Uint8Array([ANONYMOUS_SUFFIX]));\n }\n\n /**\n * Utility method, returning the principal representing the management canister, decoded from the hex string `'aaaaa-aa'`\n * @returns {Principal} principal of the management canister\n */\n public static managementCanister(): Principal {\n return this.fromHex(MANAGEMENT_CANISTER_PRINCIPAL_HEX_STR);\n }\n\n public static selfAuthenticating(publicKey: Uint8Array): Principal {\n const sha = sha224(publicKey);\n return new this(new Uint8Array([...sha, SELF_AUTHENTICATING_SUFFIX]));\n }\n\n public static from(other: unknown): Principal {\n if (typeof other === 'string') {\n return Principal.fromText(other);\n } else if (\n typeof other === 'object' &&\n other !== null &&\n (other as Principal)._isPrincipal === true\n ) {\n return new Principal((other as Principal)._arr);\n }\n\n throw new Error(`Impossible to convert ${JSON.stringify(other)} to Principal.`);\n }\n\n public static fromHex(hex: string): Principal {\n return new this(fromHexString(hex));\n }\n\n public static fromText(text: string): Principal {\n const canisterIdNoDash = text.toLowerCase().replace(/-/g, '');\n\n let arr = decode(canisterIdNoDash);\n arr = arr.slice(4, arr.length);\n\n const principal = new this(arr);\n if (principal.toText() !== text) {\n throw new Error(\n `Principal \"${principal.toText()}\" does not have a valid checksum (original value \"${text}\" may not be a valid Principal ID).`,\n );\n }\n\n return principal;\n }\n\n public static fromUint8Array(arr: Uint8Array): Principal {\n return new this(arr);\n }\n\n public readonly _isPrincipal = true;\n\n protected constructor(private _arr: Uint8Array) {}\n\n public isAnonymous(): boolean {\n return this._arr.byteLength === 1 && this._arr[0] === ANONYMOUS_SUFFIX;\n }\n\n public toUint8Array(): Uint8Array {\n return this._arr;\n }\n\n public toHex(): string {\n return toHexString(this._arr).toUpperCase();\n }\n\n public toText(): string {\n const checksumArrayBuf = new ArrayBuffer(4);\n const view = new DataView(checksumArrayBuf);\n view.setUint32(0, getCrc32(this._arr));\n const checksum = new Uint8Array(checksumArrayBuf);\n\n const bytes = Uint8Array.from(this._arr);\n const array = new Uint8Array([...checksum, ...bytes]);\n\n const result = encode(array);\n const matches = result.match(/.{1,5}/g);\n if (!matches) {\n // This should only happen if there's no character, which is unreachable.\n throw new Error();\n }\n return matches.join('-');\n }\n\n public toString(): string {\n return this.toText();\n }\n\n /**\n * Utility method taking a Principal to compare against. Used for determining canister ranges in certificate verification\n * @param {Principal} other - a {@link Principal} to compare\n * @returns {'lt' | 'eq' | 'gt'} `'lt' | 'eq' | 'gt'` a string, representing less than, equal to, or greater than\n */\n public compareTo(other: Principal): 'lt' | 'eq' | 'gt' {\n for (let i = 0; i < Math.min(this._arr.length, other._arr.length); i++) {\n if (this._arr[i] < other._arr[i]) return 'lt';\n else if (this._arr[i] > other._arr[i]) return 'gt';\n }\n // Here, at least one principal is a prefix of the other principal (they could be the same)\n if (this._arr.length < other._arr.length) return 'lt';\n if (this._arr.length > other._arr.length) return 'gt';\n return 'eq';\n }\n\n /**\n * Utility method checking whether a provided Principal is less than or equal to the current one using the {@link Principal.compareTo} method\n * @param other a {@link Principal} to compare\n * @returns {boolean} boolean\n */\n public ltEq(other: Principal): boolean {\n const cmp = this.compareTo(other);\n return cmp == 'lt' || cmp == 'eq';\n }\n\n /**\n * Utility method checking whether a provided Principal is greater than or equal to the current one using the {@link Principal.compareTo} method\n * @param other a {@link Principal} to compare\n * @returns {boolean} boolean\n */\n public gtEq(other: Principal): boolean {\n const cmp = this.compareTo(other);\n return cmp == 'gt' || cmp == 'eq';\n }\n}\n","import { sha224 as jsSha224 } from 'js-sha256';\n\n/**\n * Returns the SHA224 hash of the buffer.\n * @param data Arraybuffer to encode\n */\nexport function sha224(data: ArrayBuffer): Uint8Array {\n const shaObj = jsSha224.create();\n shaObj.update(data);\n return new Uint8Array(shaObj.array());\n}\n","/*\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n */\n(function(){\n \"use strict\";\n\n var chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\n // Use a lookup table to find the index.\n var lookup = new Uint8Array(256);\n for (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n }\n\n exports.encode = function(arraybuffer) {\n var bytes = new Uint8Array(arraybuffer),\n i, len = bytes.length, base64 = \"\";\n\n for (i = 0; i < len; i+=3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if ((len % 3) === 2) {\n base64 = base64.substring(0, base64.length - 1) + \"=\";\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + \"==\";\n }\n\n return base64;\n };\n\n exports.decode = function(base64) {\n var bufferLength = base64.length * 0.75,\n len = base64.length, i, p = 0,\n encoded1, encoded2, encoded3, encoded4;\n\n if (base64[base64.length - 1] === \"=\") {\n bufferLength--;\n if (base64[base64.length - 2] === \"=\") {\n bufferLength--;\n }\n }\n\n var arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i+=4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i+1)];\n encoded3 = lookup[base64.charCodeAt(i+2)];\n encoded4 = lookup[base64.charCodeAt(i+3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n };\n})();\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n",";(function (globalObject) {\r\n 'use strict';\r\n\r\n/*\r\n * bignumber.js v9.1.2\r\n * A JavaScript library for arbitrary-precision arithmetic.\r\n * https://github.com/MikeMcl/bignumber.js\r\n * Copyright (c) 2022 Michael Mclaughlin \r\n * MIT Licensed.\r\n *\r\n * BigNumber.prototype methods | BigNumber methods\r\n * |\r\n * absoluteValue abs | clone\r\n * comparedTo | config set\r\n * decimalPlaces dp | DECIMAL_PLACES\r\n * dividedBy div | ROUNDING_MODE\r\n * dividedToIntegerBy idiv | EXPONENTIAL_AT\r\n * exponentiatedBy pow | RANGE\r\n * integerValue | CRYPTO\r\n * isEqualTo eq | MODULO_MODE\r\n * isFinite | POW_PRECISION\r\n * isGreaterThan gt | FORMAT\r\n * isGreaterThanOrEqualTo gte | ALPHABET\r\n * isInteger | isBigNumber\r\n * isLessThan lt | maximum max\r\n * isLessThanOrEqualTo lte | minimum min\r\n * isNaN | random\r\n * isNegative | sum\r\n * isPositive |\r\n * isZero |\r\n * minus |\r\n * modulo mod |\r\n * multipliedBy times |\r\n * negated |\r\n * plus |\r\n * precision sd |\r\n * shiftedBy |\r\n * squareRoot sqrt |\r\n * toExponential |\r\n * toFixed |\r\n * toFormat |\r\n * toFraction |\r\n * toJSON |\r\n * toNumber |\r\n * toPrecision |\r\n * toString |\r\n * valueOf |\r\n *\r\n */\r\n\r\n\r\n var BigNumber,\r\n isNumeric = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i,\r\n mathceil = Math.ceil,\r\n mathfloor = Math.floor,\r\n\r\n bignumberError = '[BigNumber Error] ',\r\n tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ',\r\n\r\n BASE = 1e14,\r\n LOG_BASE = 14,\r\n MAX_SAFE_INTEGER = 0x1fffffffffffff, // 2^53 - 1\r\n // MAX_INT32 = 0x7fffffff, // 2^31 - 1\r\n POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13],\r\n SQRT_BASE = 1e7,\r\n\r\n // EDITABLE\r\n // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and\r\n // the arguments to toExponential, toFixed, toFormat, and toPrecision.\r\n MAX = 1E9; // 0 to MAX_INT32\r\n\r\n\r\n /*\r\n * Create and return a BigNumber constructor.\r\n */\r\n function clone(configObject) {\r\n var div, convertBase, parseNumeric,\r\n P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null },\r\n ONE = new BigNumber(1),\r\n\r\n\r\n //----------------------------- EDITABLE CONFIG DEFAULTS -------------------------------\r\n\r\n\r\n // The default values below must be integers within the inclusive ranges stated.\r\n // The values can also be changed at run-time using BigNumber.set.\r\n\r\n // The maximum number of decimal places for operations involving division.\r\n DECIMAL_PLACES = 20, // 0 to MAX\r\n\r\n // The rounding mode used when rounding to the above decimal places, and when using\r\n // toExponential, toFixed, toFormat and toPrecision, and round (default value).\r\n // UP 0 Away from zero.\r\n // DOWN 1 Towards zero.\r\n // CEIL 2 Towards +Infinity.\r\n // FLOOR 3 Towards -Infinity.\r\n // HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n ROUNDING_MODE = 4, // 0 to 8\r\n\r\n // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS]\r\n\r\n // The exponent value at and beneath which toString returns exponential notation.\r\n // Number type: -7\r\n TO_EXP_NEG = -7, // 0 to -MAX\r\n\r\n // The exponent value at and above which toString returns exponential notation.\r\n // Number type: 21\r\n TO_EXP_POS = 21, // 0 to MAX\r\n\r\n // RANGE : [MIN_EXP, MAX_EXP]\r\n\r\n // The minimum exponent value, beneath which underflow to zero occurs.\r\n // Number type: -324 (5e-324)\r\n MIN_EXP = -1e7, // -1 to -MAX\r\n\r\n // The maximum exponent value, above which overflow to Infinity occurs.\r\n // Number type: 308 (1.7976931348623157e+308)\r\n // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow.\r\n MAX_EXP = 1e7, // 1 to MAX\r\n\r\n // Whether to use cryptographically-secure random number generation, if available.\r\n CRYPTO = false, // true or false\r\n\r\n // The modulo mode used when calculating the modulus: a mod n.\r\n // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n // The remainder (r) is calculated as: r = a - n * q.\r\n //\r\n // UP 0 The remainder is positive if the dividend is negative, else is negative.\r\n // DOWN 1 The remainder has the same sign as the dividend.\r\n // This modulo mode is commonly known as 'truncated division' and is\r\n // equivalent to (a % n) in JavaScript.\r\n // FLOOR 3 The remainder has the same sign as the divisor (Python %).\r\n // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function.\r\n // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)).\r\n // The remainder is always positive.\r\n //\r\n // The truncated division, floored division, Euclidian division and IEEE 754 remainder\r\n // modes are commonly used for the modulus operation.\r\n // Although the other rounding modes can also be used, they may not give useful results.\r\n MODULO_MODE = 1, // 0 to 9\r\n\r\n // The maximum number of significant digits of the result of the exponentiatedBy operation.\r\n // If POW_PRECISION is 0, there will be unlimited significant digits.\r\n POW_PRECISION = 0, // 0 to MAX\r\n\r\n // The format specification used by the BigNumber.prototype.toFormat method.\r\n FORMAT = {\r\n prefix: '',\r\n groupSize: 3,\r\n secondaryGroupSize: 0,\r\n groupSeparator: ',',\r\n decimalSeparator: '.',\r\n fractionGroupSize: 0,\r\n fractionGroupSeparator: '\\xA0', // non-breaking space\r\n suffix: ''\r\n },\r\n\r\n // The alphabet used for base conversion. It must be at least 2 characters long, with no '+',\r\n // '-', '.', whitespace, or repeated character.\r\n // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'\r\n ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz',\r\n alphabetHasNormalDecimalDigits = true;\r\n\r\n\r\n //------------------------------------------------------------------------------------------\r\n\r\n\r\n // CONSTRUCTOR\r\n\r\n\r\n /*\r\n * The BigNumber constructor and exported function.\r\n * Create and return a new instance of a BigNumber object.\r\n *\r\n * v {number|string|BigNumber} A numeric value.\r\n * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive.\r\n */\r\n function BigNumber(v, b) {\r\n var alphabet, c, caseChanged, e, i, isNum, len, str,\r\n x = this;\r\n\r\n // Enable constructor call without `new`.\r\n if (!(x instanceof BigNumber)) return new BigNumber(v, b);\r\n\r\n if (b == null) {\r\n\r\n if (v && v._isBigNumber === true) {\r\n x.s = v.s;\r\n\r\n if (!v.c || v.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else if (v.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = v.e;\r\n x.c = v.c.slice();\r\n }\r\n\r\n return;\r\n }\r\n\r\n if ((isNum = typeof v == 'number') && v * 0 == 0) {\r\n\r\n // Use `1 / n` to handle minus zero also.\r\n x.s = 1 / v < 0 ? (v = -v, -1) : 1;\r\n\r\n // Fast path for integers, where n < 2147483648 (2**31).\r\n if (v === ~~v) {\r\n for (e = 0, i = v; i >= 10; i /= 10, e++);\r\n\r\n if (e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else {\r\n x.e = e;\r\n x.c = [v];\r\n }\r\n\r\n return;\r\n }\r\n\r\n str = String(v);\r\n } else {\r\n\r\n if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);\r\n\r\n x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n\r\n // Allow exponential notation to be used with base 10 argument, while\r\n // also rounding to DECIMAL_PLACES as with other bases.\r\n if (b == 10 && alphabetHasNormalDecimalDigits) {\r\n x = new BigNumber(v);\r\n return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);\r\n }\r\n\r\n str = String(v);\r\n\r\n if (isNum = typeof v == 'number') {\r\n\r\n // Avoid potential interpretation of Infinity and NaN as base 44+ values.\r\n if (v * 0 != 0) return parseNumeric(x, str, isNum, b);\r\n\r\n x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (BigNumber.DEBUG && str.replace(/^0\\.0*|\\./, '').length > 15) {\r\n throw Error\r\n (tooManyDigits + v);\r\n }\r\n } else {\r\n x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n alphabet = ALPHABET.slice(0, b);\r\n e = i = 0;\r\n\r\n // Check that str is a valid base b number.\r\n // Don't use RegExp, so alphabet can contain special characters.\r\n for (len = str.length; i < len; i++) {\r\n if (alphabet.indexOf(c = str.charAt(i)) < 0) {\r\n if (c == '.') {\r\n\r\n // If '.' is not the first character and it has not be found before.\r\n if (i > e) {\r\n e = len;\r\n continue;\r\n }\r\n } else if (!caseChanged) {\r\n\r\n // Allow e.g. hexadecimal 'FF' as well as 'ff'.\r\n if (str == str.toUpperCase() && (str = str.toLowerCase()) ||\r\n str == str.toLowerCase() && (str = str.toUpperCase())) {\r\n caseChanged = true;\r\n i = -1;\r\n e = 0;\r\n continue;\r\n }\r\n }\r\n\r\n return parseNumeric(x, String(v), isNum, b);\r\n }\r\n }\r\n\r\n // Prevent later check for length on converted number.\r\n isNum = false;\r\n str = convertBase(str, b, 10, x.s);\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n else e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(--len) === 48;);\r\n\r\n if (str = str.slice(i, ++len)) {\r\n len -= i;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (isNum && BigNumber.DEBUG &&\r\n len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {\r\n throw Error\r\n (tooManyDigits + (x.s * v));\r\n }\r\n\r\n // Overflow?\r\n if ((e = e - i - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n x.c = x.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = e;\r\n x.c = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first element of the coefficient array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE; // i < 1\r\n\r\n if (i < len) {\r\n if (i) x.c.push(+str.slice(0, i));\r\n\r\n for (len -= LOG_BASE; i < len;) {\r\n x.c.push(+str.slice(i, i += LOG_BASE));\r\n }\r\n\r\n i = LOG_BASE - (str = str.slice(i)).length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--; str += '0');\r\n x.c.push(+str);\r\n }\r\n } else {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n\r\n // CONSTRUCTOR PROPERTIES\r\n\r\n\r\n BigNumber.clone = clone;\r\n\r\n BigNumber.ROUND_UP = 0;\r\n BigNumber.ROUND_DOWN = 1;\r\n BigNumber.ROUND_CEIL = 2;\r\n BigNumber.ROUND_FLOOR = 3;\r\n BigNumber.ROUND_HALF_UP = 4;\r\n BigNumber.ROUND_HALF_DOWN = 5;\r\n BigNumber.ROUND_HALF_EVEN = 6;\r\n BigNumber.ROUND_HALF_CEIL = 7;\r\n BigNumber.ROUND_HALF_FLOOR = 8;\r\n BigNumber.EUCLID = 9;\r\n\r\n\r\n /*\r\n * Configure infrequently-changing library-wide settings.\r\n *\r\n * Accept an object with the following optional properties (if the value of a property is\r\n * a number, it must be an integer within the inclusive range stated):\r\n *\r\n * DECIMAL_PLACES {number} 0 to MAX\r\n * ROUNDING_MODE {number} 0 to 8\r\n * EXPONENTIAL_AT {number|number[]} -MAX to MAX or [-MAX to 0, 0 to MAX]\r\n * RANGE {number|number[]} -MAX to MAX (not zero) or [-MAX to -1, 1 to MAX]\r\n * CRYPTO {boolean} true or false\r\n * MODULO_MODE {number} 0 to 9\r\n * POW_PRECISION {number} 0 to MAX\r\n * ALPHABET {string} A string of two or more unique characters which does\r\n * not contain '.'.\r\n * FORMAT {object} An object with some of the following properties:\r\n * prefix {string}\r\n * groupSize {number}\r\n * secondaryGroupSize {number}\r\n * groupSeparator {string}\r\n * decimalSeparator {string}\r\n * fractionGroupSize {number}\r\n * fractionGroupSeparator {string}\r\n * suffix {string}\r\n *\r\n * (The values assigned to the above FORMAT object properties are not checked for validity.)\r\n *\r\n * E.g.\r\n * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 })\r\n *\r\n * Ignore properties/parameters set to null or undefined, except for ALPHABET.\r\n *\r\n * Return an object with the properties current values.\r\n */\r\n BigNumber.config = BigNumber.set = function (obj) {\r\n var p, v;\r\n\r\n if (obj != null) {\r\n\r\n if (typeof obj == 'object') {\r\n\r\n // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n DECIMAL_PLACES = v;\r\n }\r\n\r\n // ROUNDING_MODE {number} Integer, 0 to 8 inclusive.\r\n // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 8, p);\r\n ROUNDING_MODE = v;\r\n }\r\n\r\n // EXPONENTIAL_AT {number|number[]}\r\n // Integer, -MAX to MAX inclusive or\r\n // [integer -MAX to 0 inclusive, 0 to MAX inclusive].\r\n // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, 0, p);\r\n intCheck(v[1], 0, MAX, p);\r\n TO_EXP_NEG = v[0];\r\n TO_EXP_POS = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);\r\n }\r\n }\r\n\r\n // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or\r\n // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive].\r\n // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}'\r\n if (obj.hasOwnProperty(p = 'RANGE')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, -1, p);\r\n intCheck(v[1], 1, MAX, p);\r\n MIN_EXP = v[0];\r\n MAX_EXP = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n if (v) {\r\n MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' cannot be zero: ' + v);\r\n }\r\n }\r\n }\r\n\r\n // CRYPTO {boolean} true or false.\r\n // '[BigNumber Error] CRYPTO not true or false: {v}'\r\n // '[BigNumber Error] crypto unavailable'\r\n if (obj.hasOwnProperty(p = 'CRYPTO')) {\r\n v = obj[p];\r\n if (v === !!v) {\r\n if (v) {\r\n if (typeof crypto != 'undefined' && crypto &&\r\n (crypto.getRandomValues || crypto.randomBytes)) {\r\n CRYPTO = v;\r\n } else {\r\n CRYPTO = !v;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n } else {\r\n CRYPTO = v;\r\n }\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' not true or false: ' + v);\r\n }\r\n }\r\n\r\n // MODULO_MODE {number} Integer, 0 to 9 inclusive.\r\n // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'MODULO_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 9, p);\r\n MODULO_MODE = v;\r\n }\r\n\r\n // POW_PRECISION {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'POW_PRECISION')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n POW_PRECISION = v;\r\n }\r\n\r\n // FORMAT {object}\r\n // '[BigNumber Error] FORMAT not an object: {v}'\r\n if (obj.hasOwnProperty(p = 'FORMAT')) {\r\n v = obj[p];\r\n if (typeof v == 'object') FORMAT = v;\r\n else throw Error\r\n (bignumberError + p + ' not an object: ' + v);\r\n }\r\n\r\n // ALPHABET {string}\r\n // '[BigNumber Error] ALPHABET invalid: {v}'\r\n if (obj.hasOwnProperty(p = 'ALPHABET')) {\r\n v = obj[p];\r\n\r\n // Disallow if less than two characters,\r\n // or if it contains '+', '-', '.', whitespace, or a repeated character.\r\n if (typeof v == 'string' && !/^.?$|[+\\-.\\s]|(.).*\\1/.test(v)) {\r\n alphabetHasNormalDecimalDigits = v.slice(0, 10) == '0123456789';\r\n ALPHABET = v;\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' invalid: ' + v);\r\n }\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Object expected: {v}'\r\n throw Error\r\n (bignumberError + 'Object expected: ' + obj);\r\n }\r\n }\r\n\r\n return {\r\n DECIMAL_PLACES: DECIMAL_PLACES,\r\n ROUNDING_MODE: ROUNDING_MODE,\r\n EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],\r\n RANGE: [MIN_EXP, MAX_EXP],\r\n CRYPTO: CRYPTO,\r\n MODULO_MODE: MODULO_MODE,\r\n POW_PRECISION: POW_PRECISION,\r\n FORMAT: FORMAT,\r\n ALPHABET: ALPHABET\r\n };\r\n };\r\n\r\n\r\n /*\r\n * Return true if v is a BigNumber instance, otherwise return false.\r\n *\r\n * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed.\r\n *\r\n * v {any}\r\n *\r\n * '[BigNumber Error] Invalid BigNumber: {v}'\r\n */\r\n BigNumber.isBigNumber = function (v) {\r\n if (!v || v._isBigNumber !== true) return false;\r\n if (!BigNumber.DEBUG) return true;\r\n\r\n var i, n,\r\n c = v.c,\r\n e = v.e,\r\n s = v.s;\r\n\r\n out: if ({}.toString.call(c) == '[object Array]') {\r\n\r\n if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {\r\n\r\n // If the first element is zero, the BigNumber value must be zero.\r\n if (c[0] === 0) {\r\n if (e === 0 && c.length === 1) return true;\r\n break out;\r\n }\r\n\r\n // Calculate number of digits that c[0] should have, based on the exponent.\r\n i = (e + 1) % LOG_BASE;\r\n if (i < 1) i += LOG_BASE;\r\n\r\n // Calculate number of digits of c[0].\r\n //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) {\r\n if (String(c[0]).length == i) {\r\n\r\n for (i = 0; i < c.length; i++) {\r\n n = c[i];\r\n if (n < 0 || n >= BASE || n !== mathfloor(n)) break out;\r\n }\r\n\r\n // Last element cannot be zero, unless it is the only element.\r\n if (n !== 0) return true;\r\n }\r\n }\r\n\r\n // Infinity/NaN\r\n } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {\r\n return true;\r\n }\r\n\r\n throw Error\r\n (bignumberError + 'Invalid BigNumber: ' + v);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the maximum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.maximum = BigNumber.max = function () {\r\n return maxOrMin(arguments, -1);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the minimum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.minimum = BigNumber.min = function () {\r\n return maxOrMin(arguments, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber with a random value equal to or greater than 0 and less than 1,\r\n * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing\r\n * zeros are produced).\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}'\r\n * '[BigNumber Error] crypto unavailable'\r\n */\r\n BigNumber.random = (function () {\r\n var pow2_53 = 0x20000000000000;\r\n\r\n // Return a 53 bit integer n, where 0 <= n < 9007199254740992.\r\n // Check if Math.random() produces more than 32 bits of randomness.\r\n // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits.\r\n // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1.\r\n var random53bitInt = (Math.random() * pow2_53) & 0x1fffff\r\n ? function () { return mathfloor(Math.random() * pow2_53); }\r\n : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) +\r\n (Math.random() * 0x800000 | 0); };\r\n\r\n return function (dp) {\r\n var a, b, e, k, v,\r\n i = 0,\r\n c = [],\r\n rand = new BigNumber(ONE);\r\n\r\n if (dp == null) dp = DECIMAL_PLACES;\r\n else intCheck(dp, 0, MAX);\r\n\r\n k = mathceil(dp / LOG_BASE);\r\n\r\n if (CRYPTO) {\r\n\r\n // Browsers supporting crypto.getRandomValues.\r\n if (crypto.getRandomValues) {\r\n\r\n a = crypto.getRandomValues(new Uint32Array(k *= 2));\r\n\r\n for (; i < k;) {\r\n\r\n // 53 bits:\r\n // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2)\r\n // 11111 11111111 11111111 11111111 11100000 00000000 00000000\r\n // ((Math.pow(2, 32) - 1) >>> 11).toString(2)\r\n // 11111 11111111 11111111\r\n // 0x20000 is 2^21.\r\n v = a[i] * 0x20000 + (a[i + 1] >>> 11);\r\n\r\n // Rejection sampling:\r\n // 0 <= v < 9007199254740992\r\n // Probability that v >= 9e15, is\r\n // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251\r\n if (v >= 9e15) {\r\n b = crypto.getRandomValues(new Uint32Array(2));\r\n a[i] = b[0];\r\n a[i + 1] = b[1];\r\n } else {\r\n\r\n // 0 <= v <= 8999999999999999\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 2;\r\n }\r\n }\r\n i = k / 2;\r\n\r\n // Node.js supporting crypto.randomBytes.\r\n } else if (crypto.randomBytes) {\r\n\r\n // buffer\r\n a = crypto.randomBytes(k *= 7);\r\n\r\n for (; i < k;) {\r\n\r\n // 0x1000000000000 is 2^48, 0x10000000000 is 2^40\r\n // 0x100000000 is 2^32, 0x1000000 is 2^24\r\n // 11111 11111111 11111111 11111111 11111111 11111111 11111111\r\n // 0 <= v < 9007199254740992\r\n v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) +\r\n (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) +\r\n (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];\r\n\r\n if (v >= 9e15) {\r\n crypto.randomBytes(7).copy(a, i);\r\n } else {\r\n\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 7;\r\n }\r\n }\r\n i = k / 7;\r\n } else {\r\n CRYPTO = false;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n }\r\n\r\n // Use Math.random.\r\n if (!CRYPTO) {\r\n\r\n for (; i < k;) {\r\n v = random53bitInt();\r\n if (v < 9e15) c[i++] = v % 1e14;\r\n }\r\n }\r\n\r\n k = c[--i];\r\n dp %= LOG_BASE;\r\n\r\n // Convert trailing digits to zeros according to dp.\r\n if (k && dp) {\r\n v = POWS_TEN[LOG_BASE - dp];\r\n c[i] = mathfloor(k / v) * v;\r\n }\r\n\r\n // Remove trailing elements which are zero.\r\n for (; c[i] === 0; c.pop(), i--);\r\n\r\n // Zero?\r\n if (i < 0) {\r\n c = [e = 0];\r\n } else {\r\n\r\n // Remove leading elements which are zero and adjust exponent accordingly.\r\n for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE);\r\n\r\n // Count the digits of the first element of c to determine leading zeros, and...\r\n for (i = 1, v = c[0]; v >= 10; v /= 10, i++);\r\n\r\n // adjust the exponent accordingly.\r\n if (i < LOG_BASE) e -= LOG_BASE - i;\r\n }\r\n\r\n rand.e = e;\r\n rand.c = c;\r\n return rand;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the sum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.sum = function () {\r\n var i = 1,\r\n args = arguments,\r\n sum = new BigNumber(args[0]);\r\n for (; i < args.length;) sum = sum.plus(args[i++]);\r\n return sum;\r\n };\r\n\r\n\r\n // PRIVATE FUNCTIONS\r\n\r\n\r\n // Called by BigNumber and BigNumber.prototype.toString.\r\n convertBase = (function () {\r\n var decimal = '0123456789';\r\n\r\n /*\r\n * Convert string of baseIn to an array of numbers of baseOut.\r\n * Eg. toBaseOut('255', 10, 16) returns [15, 15].\r\n * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5].\r\n */\r\n function toBaseOut(str, baseIn, baseOut, alphabet) {\r\n var j,\r\n arr = [0],\r\n arrL,\r\n i = 0,\r\n len = str.length;\r\n\r\n for (; i < len;) {\r\n for (arrL = arr.length; arrL--; arr[arrL] *= baseIn);\r\n\r\n arr[0] += alphabet.indexOf(str.charAt(i++));\r\n\r\n for (j = 0; j < arr.length; j++) {\r\n\r\n if (arr[j] > baseOut - 1) {\r\n if (arr[j + 1] == null) arr[j + 1] = 0;\r\n arr[j + 1] += arr[j] / baseOut | 0;\r\n arr[j] %= baseOut;\r\n }\r\n }\r\n }\r\n\r\n return arr.reverse();\r\n }\r\n\r\n // Convert a numeric string of baseIn to a numeric string of baseOut.\r\n // If the caller is toString, we are converting from base 10 to baseOut.\r\n // If the caller is BigNumber, we are converting from baseIn to base 10.\r\n return function (str, baseIn, baseOut, sign, callerIsToString) {\r\n var alphabet, d, e, k, r, x, xc, y,\r\n i = str.indexOf('.'),\r\n dp = DECIMAL_PLACES,\r\n rm = ROUNDING_MODE;\r\n\r\n // Non-integer.\r\n if (i >= 0) {\r\n k = POW_PRECISION;\r\n\r\n // Unlimited precision.\r\n POW_PRECISION = 0;\r\n str = str.replace('.', '');\r\n y = new BigNumber(baseIn);\r\n x = y.pow(str.length - i);\r\n POW_PRECISION = k;\r\n\r\n // Convert str as if an integer, then restore the fraction part by dividing the\r\n // result by its base raised to a power.\r\n\r\n y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'),\r\n 10, baseOut, decimal);\r\n y.e = y.c.length;\r\n }\r\n\r\n // Convert the number as integer.\r\n\r\n xc = toBaseOut(str, baseIn, baseOut, callerIsToString\r\n ? (alphabet = ALPHABET, decimal)\r\n : (alphabet = decimal, ALPHABET));\r\n\r\n // xc now represents str as an integer and converted to baseOut. e is the exponent.\r\n e = k = xc.length;\r\n\r\n // Remove trailing zeros.\r\n for (; xc[--k] == 0; xc.pop());\r\n\r\n // Zero?\r\n if (!xc[0]) return alphabet.charAt(0);\r\n\r\n // Does str represent an integer? If so, no need for the division.\r\n if (i < 0) {\r\n --e;\r\n } else {\r\n x.c = xc;\r\n x.e = e;\r\n\r\n // The sign is needed for correct rounding.\r\n x.s = sign;\r\n x = div(x, y, dp, rm, baseOut);\r\n xc = x.c;\r\n r = x.r;\r\n e = x.e;\r\n }\r\n\r\n // xc now represents str converted to baseOut.\r\n\r\n // THe index of the rounding digit.\r\n d = e + dp + 1;\r\n\r\n // The rounding digit: the digit to the right of the digit that may be rounded up.\r\n i = xc[d];\r\n\r\n // Look at the rounding digits and mode to determine whether to round up.\r\n\r\n k = baseOut / 2;\r\n r = r || d < 0 || xc[d + 1] != null;\r\n\r\n r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n // If the index of the rounding digit is not greater than zero, or xc represents\r\n // zero, then the result of the base conversion is zero or, if rounding up, a value\r\n // such as 0.00001.\r\n if (d < 1 || !xc[0]) {\r\n\r\n // 1^-dp or 0\r\n str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);\r\n } else {\r\n\r\n // Truncate xc to the required number of decimal places.\r\n xc.length = d;\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up and so on.\r\n for (--baseOut; ++xc[--d] > baseOut;) {\r\n xc[d] = 0;\r\n\r\n if (!d) {\r\n ++e;\r\n xc = [1].concat(xc);\r\n }\r\n }\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (k = xc.length; !xc[--k];);\r\n\r\n // E.g. [4, 11, 15] becomes 4bf.\r\n for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++]));\r\n\r\n // Add leading zeros, decimal point and trailing zeros as required.\r\n str = toFixedPoint(str, e, alphabet.charAt(0));\r\n }\r\n\r\n // The caller will add the sign.\r\n return str;\r\n };\r\n })();\r\n\r\n\r\n // Perform division in the specified base. Called by div and convertBase.\r\n div = (function () {\r\n\r\n // Assume non-zero x and k.\r\n function multiply(x, k, base) {\r\n var m, temp, xlo, xhi,\r\n carry = 0,\r\n i = x.length,\r\n klo = k % SQRT_BASE,\r\n khi = k / SQRT_BASE | 0;\r\n\r\n for (x = x.slice(); i--;) {\r\n xlo = x[i] % SQRT_BASE;\r\n xhi = x[i] / SQRT_BASE | 0;\r\n m = khi * xlo + xhi * klo;\r\n temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry;\r\n carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;\r\n x[i] = temp % base;\r\n }\r\n\r\n if (carry) x = [carry].concat(x);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, cmp;\r\n\r\n if (aL != bL) {\r\n cmp = aL > bL ? 1 : -1;\r\n } else {\r\n\r\n for (i = cmp = 0; i < aL; i++) {\r\n\r\n if (a[i] != b[i]) {\r\n cmp = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return cmp;\r\n }\r\n\r\n function subtract(a, b, aL, base) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * base + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1; a.splice(0, 1));\r\n }\r\n\r\n // x: dividend, y: divisor.\r\n return function (x, y, dp, rm, base) {\r\n var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0,\r\n yL, yz,\r\n s = x.s == y.s ? 1 : -1,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n // Either NaN, Infinity or 0?\r\n if (!xc || !xc[0] || !yc || !yc[0]) {\r\n\r\n return new BigNumber(\r\n\r\n // Return NaN if either NaN, or both Infinity or 0.\r\n !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN :\r\n\r\n // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0.\r\n xc && xc[0] == 0 || !yc ? s * 0 : s / 0\r\n );\r\n }\r\n\r\n q = new BigNumber(s);\r\n qc = q.c = [];\r\n e = x.e - y.e;\r\n s = dp + e + 1;\r\n\r\n if (!base) {\r\n base = BASE;\r\n e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);\r\n s = s / LOG_BASE | 0;\r\n }\r\n\r\n // Result exponent may be one less then the current value of e.\r\n // The coefficients of the BigNumbers from convertBase may have trailing zeros.\r\n for (i = 0; yc[i] == (xc[i] || 0); i++);\r\n\r\n if (yc[i] > (xc[i] || 0)) e--;\r\n\r\n if (s < 0) {\r\n qc.push(1);\r\n more = true;\r\n } else {\r\n xL = xc.length;\r\n yL = yc.length;\r\n i = 0;\r\n s += 2;\r\n\r\n // Normalise xc and yc so highest order digit of yc is >= base / 2.\r\n\r\n n = mathfloor(base / (yc[0] + 1));\r\n\r\n // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1.\r\n // if (n > 1 || n++ == 1 && yc[0] < base / 2) {\r\n if (n > 1) {\r\n yc = multiply(yc, n, base);\r\n xc = multiply(xc, n, base);\r\n yL = yc.length;\r\n xL = xc.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xc.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL; rem[remL++] = 0);\r\n yz = yc.slice();\r\n yz = [0].concat(yz);\r\n yc0 = yc[0];\r\n if (yc[1] >= base / 2) yc0++;\r\n // Not necessary, but to prevent trial digit n > base, when using base 3.\r\n // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15;\r\n\r\n do {\r\n n = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yc, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, n.\r\n\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n // n is how many times the divisor goes into the current remainder.\r\n n = mathfloor(rem0 / yc0);\r\n\r\n // Algorithm:\r\n // product = divisor multiplied by trial digit (n).\r\n // Compare product and remainder.\r\n // If product is greater than remainder:\r\n // Subtract divisor from product, decrement trial digit.\r\n // Subtract product from remainder.\r\n // If product was less than remainder at the last compare:\r\n // Compare new remainder and divisor.\r\n // If remainder is greater than divisor:\r\n // Subtract divisor from remainder, increment trial digit.\r\n\r\n if (n > 1) {\r\n\r\n // n may be > base only when base is 3.\r\n if (n >= base) n = base - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiply(yc, n, base);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n // If product > remainder then trial digit n too high.\r\n // n is 1 too high about 5% of the time, and is not known to have\r\n // ever been more than 1 too high.\r\n while (compare(prod, rem, prodL, remL) == 1) {\r\n n--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yc, prodL, base);\r\n prodL = prod.length;\r\n cmp = 1;\r\n }\r\n } else {\r\n\r\n // n is 0 or 1, cmp is -1.\r\n // If n is 0, there is no need to compare yc and rem again below,\r\n // so change cmp to 1 to avoid it.\r\n // If n is 1, leave cmp as -1, so yc and rem are compared again.\r\n if (n == 0) {\r\n\r\n // divisor < remainder, so n must be at least 1.\r\n cmp = n = 1;\r\n }\r\n\r\n // product = divisor\r\n prod = yc.slice();\r\n prodL = prod.length;\r\n }\r\n\r\n if (prodL < remL) prod = [0].concat(prod);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL, base);\r\n remL = rem.length;\r\n\r\n // If product was < remainder.\r\n if (cmp == -1) {\r\n\r\n // Compare divisor and new remainder.\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n // Trial digit n too low.\r\n // n is 1 too low about 5% of the time, and very rarely 2 too low.\r\n while (compare(yc, rem, yL, remL) < 1) {\r\n n++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yc, remL, base);\r\n remL = rem.length;\r\n }\r\n }\r\n } else if (cmp === 0) {\r\n n++;\r\n rem = [0];\r\n } // else cmp === 1 and n will be 0\r\n\r\n // Add the next digit, n, to the result array.\r\n qc[i++] = n;\r\n\r\n // Update the remainder.\r\n if (rem[0]) {\r\n rem[remL++] = xc[xi] || 0;\r\n } else {\r\n rem = [xc[xi]];\r\n remL = 1;\r\n }\r\n } while ((xi++ < xL || rem[0] != null) && s--);\r\n\r\n more = rem[0] != null;\r\n\r\n // Leading zero?\r\n if (!qc[0]) qc.splice(0, 1);\r\n }\r\n\r\n if (base == BASE) {\r\n\r\n // To calculate q.e, first get the number of digits of qc[0].\r\n for (i = 1, s = qc[0]; s >= 10; s /= 10, i++);\r\n\r\n round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);\r\n\r\n // Caller is convertBase.\r\n } else {\r\n q.e = e;\r\n q.r = +more;\r\n }\r\n\r\n return q;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a string representing the value of BigNumber n in fixed-point or exponential\r\n * notation rounded to the specified decimal places or significant digits.\r\n *\r\n * n: a BigNumber.\r\n * i: the index of the last digit required (i.e. the digit that may be rounded up).\r\n * rm: the rounding mode.\r\n * id: 1 (toExponential) or 2 (toPrecision).\r\n */\r\n function format(n, i, rm, id) {\r\n var c0, e, ne, len, str;\r\n\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n if (!n.c) return n.toString();\r\n\r\n c0 = n.c[0];\r\n ne = n.e;\r\n\r\n if (i == null) {\r\n str = coeffToString(n.c);\r\n str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS)\r\n ? toExponential(str, ne)\r\n : toFixedPoint(str, ne, '0');\r\n } else {\r\n n = round(new BigNumber(n), i, rm);\r\n\r\n // n.e may have changed if the value was rounded up.\r\n e = n.e;\r\n\r\n str = coeffToString(n.c);\r\n len = str.length;\r\n\r\n // toPrecision returns exponential notation if the number of significant digits\r\n // specified is less than the number of digits necessary to represent the integer\r\n // part of the value in fixed-point notation.\r\n\r\n // Exponential notation.\r\n if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {\r\n\r\n // Append zeros?\r\n for (; len < i; str += '0', len++);\r\n str = toExponential(str, e);\r\n\r\n // Fixed-point notation.\r\n } else {\r\n i -= ne;\r\n str = toFixedPoint(str, e, '0');\r\n\r\n // Append zeros?\r\n if (e + 1 > len) {\r\n if (--i > 0) for (str += '.'; i--; str += '0');\r\n } else {\r\n i += e - len;\r\n if (i > 0) {\r\n if (e + 1 == len) str += '.';\r\n for (; i--; str += '0');\r\n }\r\n }\r\n }\r\n }\r\n\r\n return n.s < 0 && c0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Handle BigNumber.max and BigNumber.min.\r\n // If any number is NaN, return NaN.\r\n function maxOrMin(args, n) {\r\n var k, y,\r\n i = 1,\r\n x = new BigNumber(args[0]);\r\n\r\n for (; i < args.length; i++) {\r\n y = new BigNumber(args[i]);\r\n if (!y.s || (k = compare(x, y)) === n || k === 0 && x.s === n) {\r\n x = y;\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP.\r\n * Called by minus, plus and times.\r\n */\r\n function normalise(n, c, e) {\r\n var i = 1,\r\n j = c.length;\r\n\r\n // Remove trailing zeros.\r\n for (; !c[--j]; c.pop());\r\n\r\n // Calculate the base 10 exponent. First get the number of digits of c[0].\r\n for (j = c[0]; j >= 10; j /= 10, i++);\r\n\r\n // Overflow?\r\n if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n n.c = n.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n n.c = [n.e = 0];\r\n } else {\r\n n.e = e;\r\n n.c = c;\r\n }\r\n\r\n return n;\r\n }\r\n\r\n\r\n // Handle values that fail the validity test in BigNumber.\r\n parseNumeric = (function () {\r\n var basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i,\r\n dotAfter = /^([^.]+)\\.$/,\r\n dotBefore = /^\\.([^.]+)$/,\r\n isInfinityOrNaN = /^-?(Infinity|NaN)$/,\r\n whitespaceOrPlus = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g;\r\n\r\n return function (x, str, isNum, b) {\r\n var base,\r\n s = isNum ? str : str.replace(whitespaceOrPlus, '');\r\n\r\n // No exception on ±Infinity or NaN.\r\n if (isInfinityOrNaN.test(s)) {\r\n x.s = isNaN(s) ? null : s < 0 ? -1 : 1;\r\n } else {\r\n if (!isNum) {\r\n\r\n // basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i\r\n s = s.replace(basePrefix, function (m, p1, p2) {\r\n base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8;\r\n return !b || b == base ? p1 : m;\r\n });\r\n\r\n if (b) {\r\n base = b;\r\n\r\n // E.g. '1.' to '1', '.1' to '0.1'\r\n s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1');\r\n }\r\n\r\n if (str != s) return new BigNumber(s, base);\r\n }\r\n\r\n // '[BigNumber Error] Not a number: {n}'\r\n // '[BigNumber Error] Not a base {b} number: {n}'\r\n if (BigNumber.DEBUG) {\r\n throw Error\r\n (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str);\r\n }\r\n\r\n // NaN\r\n x.s = null;\r\n }\r\n\r\n x.c = x.e = null;\r\n }\r\n })();\r\n\r\n\r\n /*\r\n * Round x to sd significant digits using rounding mode rm. Check for over/under-flow.\r\n * If r is truthy, it is known that there are more digits after the rounding digit.\r\n */\r\n function round(x, sd, rm, r) {\r\n var d, i, j, k, n, ni, rd,\r\n xc = x.c,\r\n pows10 = POWS_TEN;\r\n\r\n // if x is not Infinity or NaN...\r\n if (xc) {\r\n\r\n // rd is the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // n is a base 1e14 number, the value of the element of array x.c containing rd.\r\n // ni is the index of n within x.c.\r\n // d is the number of digits of n.\r\n // i is the index of rd within n including leading zeros.\r\n // j is the actual index of rd within n (if < 0, rd is a leading zero).\r\n out: {\r\n\r\n // Get the number of digits of the first element of xc.\r\n for (d = 1, k = xc[0]; k >= 10; k /= 10, d++);\r\n i = sd - d;\r\n\r\n // If the rounding digit is in the first element of xc...\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n n = xc[ni = 0];\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = mathfloor(n / pows10[d - j - 1] % 10);\r\n } else {\r\n ni = mathceil((i + 1) / LOG_BASE);\r\n\r\n if (ni >= xc.length) {\r\n\r\n if (r) {\r\n\r\n // Needed by sqrt.\r\n for (; xc.length <= ni; xc.push(0));\r\n n = rd = 0;\r\n d = 1;\r\n i %= LOG_BASE;\r\n j = i - LOG_BASE + 1;\r\n } else {\r\n break out;\r\n }\r\n } else {\r\n n = k = xc[ni];\r\n\r\n // Get the number of digits of n.\r\n for (d = 1; k >= 10; k /= 10, d++);\r\n\r\n // Get the index of rd within n.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within n, adjusted for leading zeros.\r\n // The number of leading zeros of n is given by LOG_BASE - d.\r\n j = i - LOG_BASE + d;\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = j < 0 ? 0 : mathfloor(n / pows10[d - j - 1] % 10);\r\n }\r\n }\r\n\r\n r = r || sd < 0 ||\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n // The expression n % pows10[d - j - 1] returns all digits of n to the right\r\n // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.\r\n xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);\r\n\r\n r = rm < 4\r\n ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n if (sd < 1 || !xc[0]) {\r\n xc.length = 0;\r\n\r\n if (r) {\r\n\r\n // Convert sd to decimal places.\r\n sd -= x.e + 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];\r\n x.e = -sd || 0;\r\n } else {\r\n\r\n // Zero.\r\n xc[0] = x.e = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xc.length = ni;\r\n k = 1;\r\n ni--;\r\n } else {\r\n xc.length = ni + 1;\r\n k = pows10[LOG_BASE - i];\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of n.\r\n xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;\r\n }\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n for (; ;) {\r\n\r\n // If the digit to be rounded up is in the first element of xc...\r\n if (ni == 0) {\r\n\r\n // i will be the length of xc[0] before k is added.\r\n for (i = 1, j = xc[0]; j >= 10; j /= 10, i++);\r\n j = xc[0] += k;\r\n for (k = 1; j >= 10; j /= 10, k++);\r\n\r\n // if i != k the length has increased.\r\n if (i != k) {\r\n x.e++;\r\n if (xc[0] == BASE) xc[0] = 1;\r\n }\r\n\r\n break;\r\n } else {\r\n xc[ni] += k;\r\n if (xc[ni] != BASE) break;\r\n xc[ni--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xc.length; xc[--i] === 0; xc.pop());\r\n }\r\n\r\n // Overflow? Infinity.\r\n if (x.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n\r\n // Underflow? Zero.\r\n } else if (x.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function valueOf(n) {\r\n var str,\r\n e = n.e;\r\n\r\n if (e === null) return n.toString();\r\n\r\n str = coeffToString(n.c);\r\n\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(str, e)\r\n : toFixedPoint(str, e, '0');\r\n\r\n return n.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // PROTOTYPE/INSTANCE METHODS\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the absolute value of this BigNumber.\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new BigNumber(this);\r\n if (x.s < 0) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * -1 if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * 0 if they have the same value,\r\n * or null if the value of either is NaN.\r\n */\r\n P.comparedTo = function (y, b) {\r\n return compare(this, new BigNumber(y, b));\r\n };\r\n\r\n\r\n /*\r\n * If dp is undefined or null or true or false, return the number of decimal places of the\r\n * value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n *\r\n * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * [dp] {number} Decimal places: integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.decimalPlaces = P.dp = function (dp, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), dp + x.e + 1, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last number.\r\n if (v = c[v]) for (; v % 10 == 0; v /= 10, n--);\r\n if (n < 0) n = 0;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * n / 0 = I\r\n * n / N = N\r\n * n / I = 0\r\n * 0 / n = 0\r\n * 0 / 0 = N\r\n * 0 / N = N\r\n * 0 / I = 0\r\n * N / n = N\r\n * N / 0 = N\r\n * N / N = N\r\n * N / I = N\r\n * I / n = I\r\n * I / 0 = I\r\n * I / N = N\r\n * I / I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber divided by the value of\r\n * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.dividedBy = P.div = function (y, b) {\r\n return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the integer part of dividing the value of this\r\n * BigNumber by the value of BigNumber(y, b).\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y, b) {\r\n return div(this, new BigNumber(y, b), 0, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the value of this BigNumber exponentiated by n.\r\n *\r\n * If m is present, return the result modulo m.\r\n * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE.\r\n * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE.\r\n *\r\n * The modular power operation works efficiently when x, n, and m are integers, otherwise it\r\n * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0.\r\n *\r\n * n {number|string|BigNumber} The exponent. An integer.\r\n * [m] {number|string|BigNumber} The modulus.\r\n *\r\n * '[BigNumber Error] Exponent not an integer: {n}'\r\n */\r\n P.exponentiatedBy = P.pow = function (n, m) {\r\n var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y,\r\n x = this;\r\n\r\n n = new BigNumber(n);\r\n\r\n // Allow NaN and ±Infinity, but not other non-integers.\r\n if (n.c && !n.isInteger()) {\r\n throw Error\r\n (bignumberError + 'Exponent not an integer: ' + valueOf(n));\r\n }\r\n\r\n if (m != null) m = new BigNumber(m);\r\n\r\n // Exponent of MAX_SAFE_INTEGER is 15.\r\n nIsBig = n.e > 14;\r\n\r\n // If x is NaN, ±Infinity, ±0 or ±1, or n is ±Infinity, NaN or ±0.\r\n if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {\r\n\r\n // The sign of the result of pow when x is negative depends on the evenness of n.\r\n // If +n overflows to ±Infinity, the evenness of n would be not be known.\r\n y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? n.s * (2 - isOdd(n)) : +valueOf(n)));\r\n return m ? y.mod(m) : y;\r\n }\r\n\r\n nIsNeg = n.s < 0;\r\n\r\n if (m) {\r\n\r\n // x % m returns NaN if abs(m) is zero, or m is NaN.\r\n if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN);\r\n\r\n isModExp = !nIsNeg && x.isInteger() && m.isInteger();\r\n\r\n if (isModExp) x = x.mod(m);\r\n\r\n // Overflow to ±Infinity: >=2**1e10 or >=1.0000024**1e15.\r\n // Underflow to ±0: <=0.79**1e10 or <=0.9999975**1e15.\r\n } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0\r\n // [1, 240000000]\r\n ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7\r\n // [80000000000000] [99999750000000]\r\n : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {\r\n\r\n // If x is negative and n is odd, k = -0, else k = 0.\r\n k = x.s < 0 && isOdd(n) ? -0 : 0;\r\n\r\n // If x >= 1, k = ±Infinity.\r\n if (x.e > -1) k = 1 / k;\r\n\r\n // If n is negative return ±0, else return ±Infinity.\r\n return new BigNumber(nIsNeg ? 1 / k : k);\r\n\r\n } else if (POW_PRECISION) {\r\n\r\n // Truncating each coefficient array to a length of k after each multiplication\r\n // equates to truncating significant digits to POW_PRECISION + [28, 41],\r\n // i.e. there will be a minimum of 28 guard digits retained.\r\n k = mathceil(POW_PRECISION / LOG_BASE + 2);\r\n }\r\n\r\n if (nIsBig) {\r\n half = new BigNumber(0.5);\r\n if (nIsNeg) n.s = 1;\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = Math.abs(+valueOf(n));\r\n nIsOdd = i % 2;\r\n }\r\n\r\n y = new BigNumber(ONE);\r\n\r\n // Performs 54 loop iterations for n of 9007199254740991.\r\n for (; ;) {\r\n\r\n if (nIsOdd) {\r\n y = y.times(x);\r\n if (!y.c) break;\r\n\r\n if (k) {\r\n if (y.c.length > k) y.c.length = k;\r\n } else if (isModExp) {\r\n y = y.mod(m); //y = y.minus(div(y, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (i) {\r\n i = mathfloor(i / 2);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n } else {\r\n n = n.times(half);\r\n round(n, n.e + 1, 1);\r\n\r\n if (n.e > 14) {\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = +valueOf(n);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n }\r\n }\r\n\r\n x = x.times(x);\r\n\r\n if (k) {\r\n if (x.c && x.c.length > k) x.c.length = k;\r\n } else if (isModExp) {\r\n x = x.mod(m); //x = x.minus(div(x, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (isModExp) return y;\r\n if (nIsNeg) y = ONE.div(y);\r\n\r\n return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer\r\n * using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}'\r\n */\r\n P.integerValue = function (rm) {\r\n var n = new BigNumber(this);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n return round(n, n.e + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isEqualTo = P.eq = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is a finite number, otherwise return false.\r\n */\r\n P.isFinite = function () {\r\n return !!this.c;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isGreaterThan = P.gt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isGreaterThanOrEqualTo = P.gte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0;\r\n\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is an integer, otherwise return false.\r\n */\r\n P.isInteger = function () {\r\n return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isLessThan = P.lt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isLessThanOrEqualTo = P.lte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is NaN, otherwise return false.\r\n */\r\n P.isNaN = function () {\r\n return !this.s;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is negative, otherwise return false.\r\n */\r\n P.isNegative = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is positive, otherwise return false.\r\n */\r\n P.isPositive = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is 0 or -0, otherwise return false.\r\n */\r\n P.isZero = function () {\r\n return !!this.c && this.c[0] == 0;\r\n };\r\n\r\n\r\n /*\r\n * n - 0 = n\r\n * n - N = N\r\n * n - I = -I\r\n * 0 - n = -n\r\n * 0 - 0 = 0\r\n * 0 - N = N\r\n * 0 - I = -I\r\n * N - n = N\r\n * N - 0 = N\r\n * N - N = N\r\n * N - I = N\r\n * I - n = I\r\n * I - 0 = I\r\n * I - N = N\r\n * I - I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber minus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.minus = function (y, b) {\r\n var i, j, t, xLTy,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.plus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN);\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x :\r\n\r\n // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity\r\n ROUNDING_MODE == 3 ? -0 : 0);\r\n }\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Determine which is the bigger number.\r\n if (a = xe - ye) {\r\n\r\n if (xLTy = a < 0) {\r\n a = -a;\r\n t = xc;\r\n } else {\r\n ye = xe;\r\n t = yc;\r\n }\r\n\r\n t.reverse();\r\n\r\n // Prepend zeros to equalise exponents.\r\n for (b = a; b--; t.push(0));\r\n t.reverse();\r\n } else {\r\n\r\n // Exponents equal. Check digit by digit.\r\n j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;\r\n\r\n for (a = b = 0; b < j; b++) {\r\n\r\n if (xc[b] != yc[b]) {\r\n xLTy = xc[b] < yc[b];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // x < y? Point xc to the array of the bigger number.\r\n if (xLTy) {\r\n t = xc;\r\n xc = yc;\r\n yc = t;\r\n y.s = -y.s;\r\n }\r\n\r\n b = (j = yc.length) - (i = xc.length);\r\n\r\n // Append zeros to xc if shorter.\r\n // No need to add zeros to yc if shorter as subtract only needs to start at yc.length.\r\n if (b > 0) for (; b--; xc[i++] = 0);\r\n b = BASE - 1;\r\n\r\n // Subtract yc from xc.\r\n for (; j > a;) {\r\n\r\n if (xc[--j] < yc[j]) {\r\n for (i = j; i && !xc[--i]; xc[i] = b);\r\n --xc[i];\r\n xc[j] += BASE;\r\n }\r\n\r\n xc[j] -= yc[j];\r\n }\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xc[0] == 0; xc.splice(0, 1), --ye);\r\n\r\n // Zero?\r\n if (!xc[0]) {\r\n\r\n // Following IEEE 754 (2008) 6.3,\r\n // n - n = +0 but n - n = -0 when rounding towards -Infinity.\r\n y.s = ROUNDING_MODE == 3 ? -1 : 1;\r\n y.c = [y.e = 0];\r\n return y;\r\n }\r\n\r\n // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity\r\n // for finite x and y.\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * n % 0 = N\r\n * n % N = N\r\n * n % I = n\r\n * 0 % n = 0\r\n * -0 % n = -0\r\n * 0 % 0 = N\r\n * 0 % N = N\r\n * 0 % I = 0\r\n * N % n = N\r\n * N % 0 = N\r\n * N % N = N\r\n * N % I = N\r\n * I % n = N\r\n * I % 0 = N\r\n * I % N = N\r\n * I % I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber modulo the value of\r\n * BigNumber(y, b). The result depends on the value of MODULO_MODE.\r\n */\r\n P.modulo = P.mod = function (y, b) {\r\n var q, s,\r\n x = this;\r\n\r\n y = new BigNumber(y, b);\r\n\r\n // Return NaN if x is Infinity or NaN, or y is NaN or zero.\r\n if (!x.c || !y.s || y.c && !y.c[0]) {\r\n return new BigNumber(NaN);\r\n\r\n // Return x if y is Infinity or x is zero.\r\n } else if (!y.c || x.c && !x.c[0]) {\r\n return new BigNumber(x);\r\n }\r\n\r\n if (MODULO_MODE == 9) {\r\n\r\n // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n // r = x - qy where 0 <= r < abs(y)\r\n s = y.s;\r\n y.s = 1;\r\n q = div(x, y, 0, 3);\r\n y.s = s;\r\n q.s *= s;\r\n } else {\r\n q = div(x, y, 0, MODULO_MODE);\r\n }\r\n\r\n y = x.minus(q.times(y));\r\n\r\n // To match JavaScript %, ensure sign of zero is sign of dividend.\r\n if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;\r\n\r\n return y;\r\n };\r\n\r\n\r\n /*\r\n * n * 0 = 0\r\n * n * N = N\r\n * n * I = I\r\n * 0 * n = 0\r\n * 0 * 0 = 0\r\n * 0 * N = N\r\n * 0 * I = N\r\n * N * n = N\r\n * N * 0 = N\r\n * N * N = N\r\n * N * I = N\r\n * I * n = I\r\n * I * 0 = N\r\n * I * N = N\r\n * I * I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber multiplied by the value\r\n * of BigNumber(y, b).\r\n */\r\n P.multipliedBy = P.times = function (y, b) {\r\n var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc,\r\n base, sqrtBase,\r\n x = this,\r\n xc = x.c,\r\n yc = (y = new BigNumber(y, b)).c;\r\n\r\n // Either NaN, ±Infinity or ±0?\r\n if (!xc || !yc || !xc[0] || !yc[0]) {\r\n\r\n // Return NaN if either is NaN, or one is 0 and the other is Infinity.\r\n if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {\r\n y.c = y.e = y.s = null;\r\n } else {\r\n y.s *= x.s;\r\n\r\n // Return ±Infinity if either is ±Infinity.\r\n if (!xc || !yc) {\r\n y.c = y.e = null;\r\n\r\n // Return ±0 if either is ±0.\r\n } else {\r\n y.c = [0];\r\n y.e = 0;\r\n }\r\n }\r\n\r\n return y;\r\n }\r\n\r\n e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);\r\n y.s *= x.s;\r\n xcL = xc.length;\r\n ycL = yc.length;\r\n\r\n // Ensure xc points to longer array and xcL to its length.\r\n if (xcL < ycL) {\r\n zc = xc;\r\n xc = yc;\r\n yc = zc;\r\n i = xcL;\r\n xcL = ycL;\r\n ycL = i;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n for (i = xcL + ycL, zc = []; i--; zc.push(0));\r\n\r\n base = BASE;\r\n sqrtBase = SQRT_BASE;\r\n\r\n for (i = ycL; --i >= 0;) {\r\n c = 0;\r\n ylo = yc[i] % sqrtBase;\r\n yhi = yc[i] / sqrtBase | 0;\r\n\r\n for (k = xcL, j = i + k; j > i;) {\r\n xlo = xc[--k] % sqrtBase;\r\n xhi = xc[k] / sqrtBase | 0;\r\n m = yhi * xlo + xhi * ylo;\r\n xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c;\r\n c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;\r\n zc[j--] = xlo % base;\r\n }\r\n\r\n zc[j] = c;\r\n }\r\n\r\n if (c) {\r\n ++e;\r\n } else {\r\n zc.splice(0, 1);\r\n }\r\n\r\n return normalise(y, zc, e);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber negated,\r\n * i.e. multiplied by -1.\r\n */\r\n P.negated = function () {\r\n var x = new BigNumber(this);\r\n x.s = -x.s || null;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * n + 0 = n\r\n * n + N = N\r\n * n + I = I\r\n * 0 + n = n\r\n * 0 + 0 = 0\r\n * 0 + N = N\r\n * 0 + I = I\r\n * N + n = N\r\n * N + 0 = N\r\n * N + N = N\r\n * N + I = N\r\n * I + n = I\r\n * I + 0 = I\r\n * I + N = N\r\n * I + I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber plus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.plus = function (y, b) {\r\n var t,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.minus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Return ±Infinity if either ±Infinity.\r\n if (!xc || !yc) return new BigNumber(a / 0);\r\n\r\n // Either zero?\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0);\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts.\r\n if (a = xe - ye) {\r\n if (a > 0) {\r\n ye = xe;\r\n t = yc;\r\n } else {\r\n a = -a;\r\n t = xc;\r\n }\r\n\r\n t.reverse();\r\n for (; a--; t.push(0));\r\n t.reverse();\r\n }\r\n\r\n a = xc.length;\r\n b = yc.length;\r\n\r\n // Point xc to the longer array, and b to the shorter length.\r\n if (a - b < 0) {\r\n t = yc;\r\n yc = xc;\r\n xc = t;\r\n b = a;\r\n }\r\n\r\n // Only start adding at yc.length - 1 as the further digits of xc can be ignored.\r\n for (a = 0; b;) {\r\n a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;\r\n xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;\r\n }\r\n\r\n if (a) {\r\n xc = [a].concat(xc);\r\n ++ye;\r\n }\r\n\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n // ye = MAX_EXP + 1 possible\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * If sd is undefined or null or true or false, return the number of significant digits of\r\n * the value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n * If sd is true include integer-part trailing zeros in the count.\r\n *\r\n * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive.\r\n * boolean: whether to count integer-part trailing zeros: true or false.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.precision = P.sd = function (sd, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (sd != null && sd !== !!sd) {\r\n intCheck(sd, 1, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), sd, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n v = c.length - 1;\r\n n = v * LOG_BASE + 1;\r\n\r\n if (v = c[v]) {\r\n\r\n // Subtract the number of trailing zeros of the last element.\r\n for (; v % 10 == 0; v /= 10, n--);\r\n\r\n // Add the number of digits of the first element.\r\n for (v = c[0]; v >= 10; v /= 10, n++);\r\n }\r\n\r\n if (sd && x.e + 1 > n) n = x.e + 1;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber shifted by k places\r\n * (powers of 10). Shift to the right if n > 0, and to the left if n < 0.\r\n *\r\n * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}'\r\n */\r\n P.shiftedBy = function (k) {\r\n intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);\r\n return this.times('1e' + k);\r\n };\r\n\r\n\r\n /*\r\n * sqrt(-n) = N\r\n * sqrt(N) = N\r\n * sqrt(-I) = N\r\n * sqrt(I) = I\r\n * sqrt(0) = 0\r\n * sqrt(-0) = -0\r\n *\r\n * Return a new BigNumber whose value is the square root of the value of this BigNumber,\r\n * rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var m, n, r, rep, t,\r\n x = this,\r\n c = x.c,\r\n s = x.s,\r\n e = x.e,\r\n dp = DECIMAL_PLACES + 4,\r\n half = new BigNumber('0.5');\r\n\r\n // Negative/NaN/Infinity/zero?\r\n if (s !== 1 || !c || !c[0]) {\r\n return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);\r\n }\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+valueOf(x));\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = coeffToString(c);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(+n);\r\n e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new BigNumber(n);\r\n } else {\r\n r = new BigNumber(s + '');\r\n }\r\n\r\n // Check for zero.\r\n // r could be zero if MIN_EXP is changed after the this value was created.\r\n // This would cause a division by zero (x/t) and hence Infinity below, which would cause\r\n // coeffToString to throw.\r\n if (r.c[0]) {\r\n e = r.e;\r\n s = e + dp;\r\n if (s < 3) s = 0;\r\n\r\n // Newton-Raphson iteration.\r\n for (; ;) {\r\n t = r;\r\n r = half.times(t.plus(div(x, t, dp, 1)));\r\n\r\n if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {\r\n\r\n // The exponent of r may here be one less than the final result exponent,\r\n // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits\r\n // are indexed correctly.\r\n if (r.e < e) --s;\r\n n = n.slice(s - 3, s + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits\r\n // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the\r\n // iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the\r\n // exact result as the nines may infinitely repeat.\r\n if (!rep) {\r\n round(t, t.e + DECIMAL_PLACES + 2, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n dp += 4;\r\n s += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact\r\n // result. If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n round(r, r.e + DECIMAL_PLACES + 2, 1);\r\n m = !r.times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in exponential notation and\r\n * rounded using ROUNDING_MODE to dp fixed decimal places.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toExponential = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp++;\r\n }\r\n return format(this, dp, rm, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounding\r\n * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * Note: as with JavaScript's number type, (-0).toFixed(0) is '0',\r\n * but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toFixed = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp = dp + this.e + 1;\r\n }\r\n return format(this, dp, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounded\r\n * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties\r\n * of the format or FORMAT object (see BigNumber.set).\r\n *\r\n * The formatting object may contain some or all of the properties shown below.\r\n *\r\n * FORMAT = {\r\n * prefix: '',\r\n * groupSize: 3,\r\n * secondaryGroupSize: 0,\r\n * groupSeparator: ',',\r\n * decimalSeparator: '.',\r\n * fractionGroupSize: 0,\r\n * fractionGroupSeparator: '\\xA0', // non-breaking space\r\n * suffix: ''\r\n * };\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n * [format] {object} Formatting options. See FORMAT pbject above.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n * '[BigNumber Error] Argument not an object: {format}'\r\n */\r\n P.toFormat = function (dp, rm, format) {\r\n var str,\r\n x = this;\r\n\r\n if (format == null) {\r\n if (dp != null && rm && typeof rm == 'object') {\r\n format = rm;\r\n rm = null;\r\n } else if (dp && typeof dp == 'object') {\r\n format = dp;\r\n dp = rm = null;\r\n } else {\r\n format = FORMAT;\r\n }\r\n } else if (typeof format != 'object') {\r\n throw Error\r\n (bignumberError + 'Argument not an object: ' + format);\r\n }\r\n\r\n str = x.toFixed(dp, rm);\r\n\r\n if (x.c) {\r\n var i,\r\n arr = str.split('.'),\r\n g1 = +format.groupSize,\r\n g2 = +format.secondaryGroupSize,\r\n groupSeparator = format.groupSeparator || '',\r\n intPart = arr[0],\r\n fractionPart = arr[1],\r\n isNeg = x.s < 0,\r\n intDigits = isNeg ? intPart.slice(1) : intPart,\r\n len = intDigits.length;\r\n\r\n if (g2) {\r\n i = g1;\r\n g1 = g2;\r\n g2 = i;\r\n len -= i;\r\n }\r\n\r\n if (g1 > 0 && len > 0) {\r\n i = len % g1 || g1;\r\n intPart = intDigits.substr(0, i);\r\n for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);\r\n if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);\r\n if (isNeg) intPart = '-' + intPart;\r\n }\r\n\r\n str = fractionPart\r\n ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize)\r\n ? fractionPart.replace(new RegExp('\\\\d{' + g2 + '}\\\\B', 'g'),\r\n '$&' + (format.fractionGroupSeparator || ''))\r\n : fractionPart)\r\n : intPart;\r\n }\r\n\r\n return (format.prefix || '') + str + (format.suffix || '');\r\n };\r\n\r\n\r\n /*\r\n * Return an array of two BigNumbers representing the value of this BigNumber as a simple\r\n * fraction with an integer numerator and an integer denominator.\r\n * The denominator will be a positive non-zero value less than or equal to the specified\r\n * maximum denominator. If a maximum denominator is not specified, the denominator will be\r\n * the lowest value necessary to represent the number exactly.\r\n *\r\n * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator.\r\n *\r\n * '[BigNumber Error] Argument {not an integer|out of range} : {md}'\r\n */\r\n P.toFraction = function (md) {\r\n var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s,\r\n x = this,\r\n xc = x.c;\r\n\r\n if (md != null) {\r\n n = new BigNumber(md);\r\n\r\n // Throw if md is less than one or is not an integer, unless it is Infinity.\r\n if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {\r\n throw Error\r\n (bignumberError + 'Argument ' +\r\n (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n));\r\n }\r\n }\r\n\r\n if (!xc) return new BigNumber(x);\r\n\r\n d = new BigNumber(ONE);\r\n n1 = d0 = new BigNumber(ONE);\r\n d1 = n0 = new BigNumber(ONE);\r\n s = coeffToString(xc);\r\n\r\n // Determine initial denominator.\r\n // d is a power of 10 and the minimum max denominator that specifies the value exactly.\r\n e = d.e = s.length - x.e - 1;\r\n d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];\r\n md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n;\r\n\r\n exp = MAX_EXP;\r\n MAX_EXP = 1 / 0;\r\n n = new BigNumber(s);\r\n\r\n // n0 = d1 = 0\r\n n0.c[0] = 0;\r\n\r\n for (; ;) {\r\n q = div(n, d, 0, 1);\r\n d2 = d0.plus(q.times(d1));\r\n if (d2.comparedTo(md) == 1) break;\r\n d0 = d1;\r\n d1 = d2;\r\n n1 = n0.plus(q.times(d2 = n1));\r\n n0 = d2;\r\n d = n.minus(q.times(d2 = d));\r\n n = d2;\r\n }\r\n\r\n d2 = div(md.minus(d0), d1, 0, 1);\r\n n0 = n0.plus(d2.times(n1));\r\n d0 = d0.plus(d2.times(d1));\r\n n0.s = n1.s = x.s;\r\n e = e * 2;\r\n\r\n // Determine which fraction is closer to x, n0/d0 or n1/d1\r\n r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(\r\n div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];\r\n\r\n MAX_EXP = exp;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this BigNumber converted to a number primitive.\r\n */\r\n P.toNumber = function () {\r\n return +valueOf(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber rounded to sd significant digits\r\n * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits\r\n * necessary to represent the integer part of the value in fixed-point notation, then use\r\n * exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n if (sd != null) intCheck(sd, 1, MAX);\r\n return format(this, sd, rm, 2);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in base b, or base 10 if b is\r\n * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and\r\n * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent\r\n * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than\r\n * TO_EXP_NEG, return exponential notation.\r\n *\r\n * [b] {number} Integer, 2 to ALPHABET.length inclusive.\r\n *\r\n * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n */\r\n P.toString = function (b) {\r\n var str,\r\n n = this,\r\n s = n.s,\r\n e = n.e;\r\n\r\n // Infinity or NaN?\r\n if (e === null) {\r\n if (s) {\r\n str = 'Infinity';\r\n if (s < 0) str = '-' + str;\r\n } else {\r\n str = 'NaN';\r\n }\r\n } else {\r\n if (b == null) {\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(coeffToString(n.c), e)\r\n : toFixedPoint(coeffToString(n.c), e, '0');\r\n } else if (b === 10 && alphabetHasNormalDecimalDigits) {\r\n n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);\r\n str = toFixedPoint(coeffToString(n.c), n.e, '0');\r\n } else {\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true);\r\n }\r\n\r\n if (s < 0 && n.c[0]) str = '-' + str;\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return as toString, but do not accept a base argument, and include the minus sign for\r\n * negative zero.\r\n */\r\n P.valueOf = P.toJSON = function () {\r\n return valueOf(this);\r\n };\r\n\r\n\r\n P._isBigNumber = true;\r\n\r\n if (configObject != null) BigNumber.set(configObject);\r\n\r\n return BigNumber;\r\n }\r\n\r\n\r\n // PRIVATE HELPER FUNCTIONS\r\n\r\n // These functions don't need access to variables,\r\n // e.g. DECIMAL_PLACES, in the scope of the `clone` function above.\r\n\r\n\r\n function bitFloor(n) {\r\n var i = n | 0;\r\n return n > 0 || n === i ? i : i - 1;\r\n }\r\n\r\n\r\n // Return a coefficient array as a string of base 10 digits.\r\n function coeffToString(a) {\r\n var s, z,\r\n i = 1,\r\n j = a.length,\r\n r = a[0] + '';\r\n\r\n for (; i < j;) {\r\n s = a[i++] + '';\r\n z = LOG_BASE - s.length;\r\n for (; z--; s = '0' + s);\r\n r += s;\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (j = r.length; r.charCodeAt(--j) === 48;);\r\n\r\n return r.slice(0, j + 1 || 1);\r\n }\r\n\r\n\r\n // Compare the value of BigNumbers x and y.\r\n function compare(x, y) {\r\n var a, b,\r\n xc = x.c,\r\n yc = y.c,\r\n i = x.s,\r\n j = y.s,\r\n k = x.e,\r\n l = y.e;\r\n\r\n // Either NaN?\r\n if (!i || !j) return null;\r\n\r\n a = xc && !xc[0];\r\n b = yc && !yc[0];\r\n\r\n // Either zero?\r\n if (a || b) return a ? b ? 0 : -j : i;\r\n\r\n // Signs differ?\r\n if (i != j) return i;\r\n\r\n a = i < 0;\r\n b = k == l;\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;\r\n\r\n // Compare exponents.\r\n if (!b) return k > l ^ a ? 1 : -1;\r\n\r\n j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n // Compare digit by digit.\r\n for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;\r\n\r\n // Compare lengths.\r\n return k == l ? 0 : k > l ^ a ? 1 : -1;\r\n }\r\n\r\n\r\n /*\r\n * Check that n is a primitive number, an integer, and in range, otherwise throw.\r\n */\r\n function intCheck(n, min, max, name) {\r\n if (n < min || n > max || n !== mathfloor(n)) {\r\n throw Error\r\n (bignumberError + (name || 'Argument') + (typeof n == 'number'\r\n ? n < min || n > max ? ' out of range: ' : ' not an integer: '\r\n : ' not a primitive number: ') + String(n));\r\n }\r\n }\r\n\r\n\r\n // Assumes finite n.\r\n function isOdd(n) {\r\n var k = n.c.length - 1;\r\n return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;\r\n }\r\n\r\n\r\n function toExponential(str, e) {\r\n return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) +\r\n (e < 0 ? 'e' : 'e+') + e;\r\n }\r\n\r\n\r\n function toFixedPoint(str, e, z) {\r\n var len, zs;\r\n\r\n // Negative exponent?\r\n if (e < 0) {\r\n\r\n // Prepend zeros.\r\n for (zs = z + '.'; ++e; zs += z);\r\n str = zs + str;\r\n\r\n // Positive exponent\r\n } else {\r\n len = str.length;\r\n\r\n // Append zeros.\r\n if (++e > len) {\r\n for (zs = z, e -= len; --e; zs += z);\r\n str += zs;\r\n } else if (e < len) {\r\n str = str.slice(0, e) + '.' + str.slice(e);\r\n }\r\n }\r\n\r\n return str;\r\n }\r\n\r\n\r\n // EXPORT\r\n\r\n\r\n BigNumber = clone();\r\n BigNumber['default'] = BigNumber.BigNumber = BigNumber;\r\n\r\n // AMD.\r\n if (typeof define == 'function' && define.amd) {\r\n define(function () { return BigNumber; });\r\n\r\n // Node.js and other environments that support module.exports.\r\n } else if (typeof module != 'undefined' && module.exports) {\r\n module.exports = BigNumber;\r\n\r\n // Browser.\r\n } else {\r\n if (!globalObject) {\r\n globalObject = typeof self != 'undefined' && self ? self : window;\r\n }\r\n\r\n globalObject.BigNumber = BigNumber;\r\n }\r\n})(this);\r\n","'use strict'\n\nconst Bignumber = require('bignumber.js').BigNumber\n\nexports.MT = {\n POS_INT: 0,\n NEG_INT: 1,\n BYTE_STRING: 2,\n UTF8_STRING: 3,\n ARRAY: 4,\n MAP: 5,\n TAG: 6,\n SIMPLE_FLOAT: 7\n}\n\nexports.TAG = {\n DATE_STRING: 0,\n DATE_EPOCH: 1,\n POS_BIGINT: 2,\n NEG_BIGINT: 3,\n DECIMAL_FRAC: 4,\n BIGFLOAT: 5,\n BASE64URL_EXPECTED: 21,\n BASE64_EXPECTED: 22,\n BASE16_EXPECTED: 23,\n CBOR: 24,\n URI: 32,\n BASE64URL: 33,\n BASE64: 34,\n REGEXP: 35,\n MIME: 36\n}\n\nexports.NUMBYTES = {\n ZERO: 0,\n ONE: 24,\n TWO: 25,\n FOUR: 26,\n EIGHT: 27,\n INDEFINITE: 31\n}\n\nexports.SIMPLE = {\n FALSE: 20,\n TRUE: 21,\n NULL: 22,\n UNDEFINED: 23\n}\n\nexports.SYMS = {\n NULL: Symbol('null'),\n UNDEFINED: Symbol('undef'),\n PARENT: Symbol('parent'),\n BREAK: Symbol('break'),\n STREAM: Symbol('stream')\n}\n\nexports.SHIFT32 = Math.pow(2, 32)\nexports.SHIFT16 = Math.pow(2, 16)\n\nexports.MAX_SAFE_HIGH = 0x1fffff\nexports.NEG_ONE = new Bignumber(-1)\nexports.TEN = new Bignumber(10)\nexports.TWO = new Bignumber(2)\n\nexports.PARENT = {\n ARRAY: 0,\n OBJECT: 1,\n MAP: 2,\n TAG: 3,\n BYTE_STRING: 4,\n UTF8_STRING: 5\n}\n","/* eslint-disable */\n\nmodule.exports = function decodeAsm (stdlib, foreign, buffer) {\n 'use asm'\n\n // -- Imports\n\n var heap = new stdlib.Uint8Array(buffer)\n // var log = foreign.log\n var pushInt = foreign.pushInt\n var pushInt32 = foreign.pushInt32\n var pushInt32Neg = foreign.pushInt32Neg\n var pushInt64 = foreign.pushInt64\n var pushInt64Neg = foreign.pushInt64Neg\n var pushFloat = foreign.pushFloat\n var pushFloatSingle = foreign.pushFloatSingle\n var pushFloatDouble = foreign.pushFloatDouble\n var pushTrue = foreign.pushTrue\n var pushFalse = foreign.pushFalse\n var pushUndefined = foreign.pushUndefined\n var pushNull = foreign.pushNull\n var pushInfinity = foreign.pushInfinity\n var pushInfinityNeg = foreign.pushInfinityNeg\n var pushNaN = foreign.pushNaN\n var pushNaNNeg = foreign.pushNaNNeg\n\n var pushArrayStart = foreign.pushArrayStart\n var pushArrayStartFixed = foreign.pushArrayStartFixed\n var pushArrayStartFixed32 = foreign.pushArrayStartFixed32\n var pushArrayStartFixed64 = foreign.pushArrayStartFixed64\n var pushObjectStart = foreign.pushObjectStart\n var pushObjectStartFixed = foreign.pushObjectStartFixed\n var pushObjectStartFixed32 = foreign.pushObjectStartFixed32\n var pushObjectStartFixed64 = foreign.pushObjectStartFixed64\n\n var pushByteString = foreign.pushByteString\n var pushByteStringStart = foreign.pushByteStringStart\n var pushUtf8String = foreign.pushUtf8String\n var pushUtf8StringStart = foreign.pushUtf8StringStart\n\n var pushSimpleUnassigned = foreign.pushSimpleUnassigned\n\n var pushTagStart = foreign.pushTagStart\n var pushTagStart4 = foreign.pushTagStart4\n var pushTagStart8 = foreign.pushTagStart8\n var pushTagUnassigned = foreign.pushTagUnassigned\n\n var pushBreak = foreign.pushBreak\n\n var pow = stdlib.Math.pow\n\n // -- Constants\n\n\n // -- Mutable Variables\n\n var offset = 0\n var inputLength = 0\n var code = 0\n\n // Decode a cbor string represented as Uint8Array\n // which is allocated on the heap from 0 to inputLength\n //\n // input - Int\n //\n // Returns Code - Int,\n // Success = 0\n // Error > 0\n function parse (input) {\n input = input | 0\n\n offset = 0\n inputLength = input\n\n while ((offset | 0) < (inputLength | 0)) {\n code = jumpTable[heap[offset] & 255](heap[offset] | 0) | 0\n\n if ((code | 0) > 0) {\n break\n }\n }\n\n return code | 0\n }\n\n // -- Helper Function\n\n function checkOffset (n) {\n n = n | 0\n\n if ((((offset | 0) + (n | 0)) | 0) < (inputLength | 0)) {\n return 0\n }\n\n return 1\n }\n\n function readUInt16 (n) {\n n = n | 0\n\n return (\n (heap[n | 0] << 8) | heap[(n + 1) | 0]\n ) | 0\n }\n\n function readUInt32 (n) {\n n = n | 0\n\n return (\n (heap[n | 0] << 24) | (heap[(n + 1) | 0] << 16) | (heap[(n + 2) | 0] << 8) | heap[(n + 3) | 0]\n ) | 0\n }\n\n // -- Initial Byte Handlers\n\n function INT_P (octet) {\n octet = octet | 0\n\n pushInt(octet | 0)\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function UINT_P_8 (octet) {\n octet = octet | 0\n\n if (checkOffset(1) | 0) {\n return 1\n }\n\n pushInt(heap[(offset + 1) | 0] | 0)\n\n offset = (offset + 2) | 0\n\n return 0\n }\n\n function UINT_P_16 (octet) {\n octet = octet | 0\n\n if (checkOffset(2) | 0) {\n return 1\n }\n\n pushInt(\n readUInt16((offset + 1) | 0) | 0\n )\n\n offset = (offset + 3) | 0\n\n return 0\n }\n\n function UINT_P_32 (octet) {\n octet = octet | 0\n\n if (checkOffset(4) | 0) {\n return 1\n }\n\n pushInt32(\n readUInt16((offset + 1) | 0) | 0,\n readUInt16((offset + 3) | 0) | 0\n )\n\n offset = (offset + 5) | 0\n\n return 0\n }\n\n function UINT_P_64 (octet) {\n octet = octet | 0\n\n if (checkOffset(8) | 0) {\n return 1\n }\n\n pushInt64(\n readUInt16((offset + 1) | 0) | 0,\n readUInt16((offset + 3) | 0) | 0,\n readUInt16((offset + 5) | 0) | 0,\n readUInt16((offset + 7) | 0) | 0\n )\n\n offset = (offset + 9) | 0\n\n return 0\n }\n\n function INT_N (octet) {\n octet = octet | 0\n\n pushInt((-1 - ((octet - 32) | 0)) | 0)\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function UINT_N_8 (octet) {\n octet = octet | 0\n\n if (checkOffset(1) | 0) {\n return 1\n }\n\n pushInt(\n (-1 - (heap[(offset + 1) | 0] | 0)) | 0\n )\n\n offset = (offset + 2) | 0\n\n return 0\n }\n\n function UINT_N_16 (octet) {\n octet = octet | 0\n\n var val = 0\n\n if (checkOffset(2) | 0) {\n return 1\n }\n\n val = readUInt16((offset + 1) | 0) | 0\n pushInt((-1 - (val | 0)) | 0)\n\n offset = (offset + 3) | 0\n\n return 0\n }\n\n function UINT_N_32 (octet) {\n octet = octet | 0\n\n if (checkOffset(4) | 0) {\n return 1\n }\n\n pushInt32Neg(\n readUInt16((offset + 1) | 0) | 0,\n readUInt16((offset + 3) | 0) | 0\n )\n\n offset = (offset + 5) | 0\n\n return 0\n }\n\n function UINT_N_64 (octet) {\n octet = octet | 0\n\n if (checkOffset(8) | 0) {\n return 1\n }\n\n pushInt64Neg(\n readUInt16((offset + 1) | 0) | 0,\n readUInt16((offset + 3) | 0) | 0,\n readUInt16((offset + 5) | 0) | 0,\n readUInt16((offset + 7) | 0) | 0\n )\n\n offset = (offset + 9) | 0\n\n return 0\n }\n\n function BYTE_STRING (octet) {\n octet = octet | 0\n\n var start = 0\n var end = 0\n var step = 0\n\n step = (octet - 64) | 0\n if (checkOffset(step | 0) | 0) {\n return 1\n }\n\n start = (offset + 1) | 0\n end = (((offset + 1) | 0) + (step | 0)) | 0\n\n pushByteString(start | 0, end | 0)\n\n offset = end | 0\n\n return 0\n }\n\n function BYTE_STRING_8 (octet) {\n octet = octet | 0\n\n var start = 0\n var end = 0\n var length = 0\n\n if (checkOffset(1) | 0) {\n return 1\n }\n\n length = heap[(offset + 1) | 0] | 0\n start = (offset + 2) | 0\n end = (((offset + 2) | 0) + (length | 0)) | 0\n\n if (checkOffset((length + 1) | 0) | 0) {\n return 1\n }\n\n pushByteString(start | 0, end | 0)\n\n offset = end | 0\n\n return 0\n }\n\n function BYTE_STRING_16 (octet) {\n octet = octet | 0\n\n var start = 0\n var end = 0\n var length = 0\n\n if (checkOffset(2) | 0) {\n return 1\n }\n\n length = readUInt16((offset + 1) | 0) | 0\n start = (offset + 3) | 0\n end = (((offset + 3) | 0) + (length | 0)) | 0\n\n\n if (checkOffset((length + 2) | 0) | 0) {\n return 1\n }\n\n pushByteString(start | 0, end | 0)\n\n offset = end | 0\n\n return 0\n }\n\n function BYTE_STRING_32 (octet) {\n octet = octet | 0\n\n var start = 0\n var end = 0\n var length = 0\n\n if (checkOffset(4) | 0) {\n return 1\n }\n\n length = readUInt32((offset + 1) | 0) | 0\n start = (offset + 5) | 0\n end = (((offset + 5) | 0) + (length | 0)) | 0\n\n\n if (checkOffset((length + 4) | 0) | 0) {\n return 1\n }\n\n pushByteString(start | 0, end | 0)\n\n offset = end | 0\n\n return 0\n }\n\n function BYTE_STRING_64 (octet) {\n // NOT IMPLEMENTED\n octet = octet | 0\n\n return 1\n }\n\n function BYTE_STRING_BREAK (octet) {\n octet = octet | 0\n\n pushByteStringStart()\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function UTF8_STRING (octet) {\n octet = octet | 0\n\n var start = 0\n var end = 0\n var step = 0\n\n step = (octet - 96) | 0\n\n if (checkOffset(step | 0) | 0) {\n return 1\n }\n\n start = (offset + 1) | 0\n end = (((offset + 1) | 0) + (step | 0)) | 0\n\n pushUtf8String(start | 0, end | 0)\n\n offset = end | 0\n\n return 0\n }\n\n function UTF8_STRING_8 (octet) {\n octet = octet | 0\n\n var start = 0\n var end = 0\n var length = 0\n\n if (checkOffset(1) | 0) {\n return 1\n }\n\n length = heap[(offset + 1) | 0] | 0\n start = (offset + 2) | 0\n end = (((offset + 2) | 0) + (length | 0)) | 0\n\n if (checkOffset((length + 1) | 0) | 0) {\n return 1\n }\n\n pushUtf8String(start | 0, end | 0)\n\n offset = end | 0\n\n return 0\n }\n\n function UTF8_STRING_16 (octet) {\n octet = octet | 0\n\n var start = 0\n var end = 0\n var length = 0\n\n if (checkOffset(2) | 0) {\n return 1\n }\n\n length = readUInt16((offset + 1) | 0) | 0\n start = (offset + 3) | 0\n end = (((offset + 3) | 0) + (length | 0)) | 0\n\n if (checkOffset((length + 2) | 0) | 0) {\n return 1\n }\n\n pushUtf8String(start | 0, end | 0)\n\n offset = end | 0\n\n return 0\n }\n\n function UTF8_STRING_32 (octet) {\n octet = octet | 0\n\n var start = 0\n var end = 0\n var length = 0\n\n if (checkOffset(4) | 0) {\n return 1\n }\n\n length = readUInt32((offset + 1) | 0) | 0\n start = (offset + 5) | 0\n end = (((offset + 5) | 0) + (length | 0)) | 0\n\n if (checkOffset((length + 4) | 0) | 0) {\n return 1\n }\n\n pushUtf8String(start | 0, end | 0)\n\n offset = end | 0\n\n return 0\n }\n\n function UTF8_STRING_64 (octet) {\n // NOT IMPLEMENTED\n octet = octet | 0\n\n return 1\n }\n\n function UTF8_STRING_BREAK (octet) {\n octet = octet | 0\n\n pushUtf8StringStart()\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function ARRAY (octet) {\n octet = octet | 0\n\n pushArrayStartFixed((octet - 128) | 0)\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function ARRAY_8 (octet) {\n octet = octet | 0\n\n if (checkOffset(1) | 0) {\n return 1\n }\n\n pushArrayStartFixed(heap[(offset + 1) | 0] | 0)\n\n offset = (offset + 2) | 0\n\n return 0\n }\n\n function ARRAY_16 (octet) {\n octet = octet | 0\n\n if (checkOffset(2) | 0) {\n return 1\n }\n\n pushArrayStartFixed(\n readUInt16((offset + 1) | 0) | 0\n )\n\n offset = (offset + 3) | 0\n\n return 0\n }\n\n function ARRAY_32 (octet) {\n octet = octet | 0\n\n if (checkOffset(4) | 0) {\n return 1\n }\n\n pushArrayStartFixed32(\n readUInt16((offset + 1) | 0) | 0,\n readUInt16((offset + 3) | 0) | 0\n )\n\n offset = (offset + 5) | 0\n\n return 0\n }\n\n function ARRAY_64 (octet) {\n octet = octet | 0\n\n if (checkOffset(8) | 0) {\n return 1\n }\n\n pushArrayStartFixed64(\n readUInt16((offset + 1) | 0) | 0,\n readUInt16((offset + 3) | 0) | 0,\n readUInt16((offset + 5) | 0) | 0,\n readUInt16((offset + 7) | 0) | 0\n )\n\n offset = (offset + 9) | 0\n\n return 0\n }\n\n function ARRAY_BREAK (octet) {\n octet = octet | 0\n\n pushArrayStart()\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function MAP (octet) {\n octet = octet | 0\n\n var step = 0\n\n step = (octet - 160) | 0\n\n if (checkOffset(step | 0) | 0) {\n return 1\n }\n\n pushObjectStartFixed(step | 0)\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function MAP_8 (octet) {\n octet = octet | 0\n\n if (checkOffset(1) | 0) {\n return 1\n }\n\n pushObjectStartFixed(heap[(offset + 1) | 0] | 0)\n\n offset = (offset + 2) | 0\n\n return 0\n }\n\n function MAP_16 (octet) {\n octet = octet | 0\n\n if (checkOffset(2) | 0) {\n return 1\n }\n\n pushObjectStartFixed(\n readUInt16((offset + 1) | 0) | 0\n )\n\n offset = (offset + 3) | 0\n\n return 0\n }\n\n function MAP_32 (octet) {\n octet = octet | 0\n\n if (checkOffset(4) | 0) {\n return 1\n }\n\n pushObjectStartFixed32(\n readUInt16((offset + 1) | 0) | 0,\n readUInt16((offset + 3) | 0) | 0\n )\n\n offset = (offset + 5) | 0\n\n return 0\n }\n\n function MAP_64 (octet) {\n octet = octet | 0\n\n if (checkOffset(8) | 0) {\n return 1\n }\n\n pushObjectStartFixed64(\n readUInt16((offset + 1) | 0) | 0,\n readUInt16((offset + 3) | 0) | 0,\n readUInt16((offset + 5) | 0) | 0,\n readUInt16((offset + 7) | 0) | 0\n )\n\n offset = (offset + 9) | 0\n\n return 0\n }\n\n function MAP_BREAK (octet) {\n octet = octet | 0\n\n pushObjectStart()\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function TAG_KNOWN (octet) {\n octet = octet | 0\n\n pushTagStart((octet - 192| 0) | 0)\n\n offset = (offset + 1 | 0)\n\n return 0\n }\n\n function TAG_BIGNUM_POS (octet) {\n octet = octet | 0\n\n pushTagStart(octet | 0)\n\n offset = (offset + 1 | 0)\n\n return 0\n }\n\n function TAG_BIGNUM_NEG (octet) {\n octet = octet | 0\n\n pushTagStart(octet | 0)\n\n offset = (offset + 1 | 0)\n\n return 0\n }\n\n function TAG_FRAC (octet) {\n octet = octet | 0\n\n pushTagStart(octet | 0)\n\n offset = (offset + 1 | 0)\n\n return 0\n }\n\n function TAG_BIGNUM_FLOAT (octet) {\n octet = octet | 0\n\n pushTagStart(octet | 0)\n\n offset = (offset + 1 | 0)\n\n return 0\n }\n\n function TAG_UNASSIGNED (octet) {\n octet = octet | 0\n\n pushTagStart((octet - 192| 0) | 0)\n\n offset = (offset + 1 | 0)\n\n return 0\n }\n\n function TAG_BASE64_URL (octet) {\n octet = octet | 0\n\n pushTagStart(octet | 0)\n\n offset = (offset + 1 | 0)\n\n return 0\n }\n\n function TAG_BASE64 (octet) {\n octet = octet | 0\n\n pushTagStart(octet | 0)\n\n offset = (offset + 1 | 0)\n\n return 0\n }\n\n function TAG_BASE16 (octet) {\n octet = octet | 0\n\n pushTagStart(octet | 0)\n\n offset = (offset + 1 | 0)\n\n return 0\n }\n\n function TAG_MORE_1 (octet) {\n octet = octet | 0\n\n if (checkOffset(1) | 0) {\n return 1\n }\n\n pushTagStart(heap[(offset + 1) | 0] | 0)\n\n offset = (offset + 2 | 0)\n\n return 0\n }\n\n function TAG_MORE_2 (octet) {\n octet = octet | 0\n\n if (checkOffset(2) | 0) {\n return 1\n }\n\n pushTagStart(\n readUInt16((offset + 1) | 0) | 0\n )\n\n offset = (offset + 3 | 0)\n\n return 0\n }\n\n function TAG_MORE_4 (octet) {\n octet = octet | 0\n\n if (checkOffset(4) | 0) {\n return 1\n }\n\n pushTagStart4(\n readUInt16((offset + 1) | 0) | 0,\n readUInt16((offset + 3) | 0) | 0\n )\n\n offset = (offset + 5 | 0)\n\n return 0\n }\n\n function TAG_MORE_8 (octet) {\n octet = octet | 0\n\n if (checkOffset(8) | 0) {\n return 1\n }\n\n pushTagStart8(\n readUInt16((offset + 1) | 0) | 0,\n readUInt16((offset + 3) | 0) | 0,\n readUInt16((offset + 5) | 0) | 0,\n readUInt16((offset + 7) | 0) | 0\n )\n\n offset = (offset + 9 | 0)\n\n return 0\n }\n\n function SIMPLE_UNASSIGNED (octet) {\n octet = octet | 0\n\n pushSimpleUnassigned(((octet | 0) - 224) | 0)\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function SIMPLE_FALSE (octet) {\n octet = octet | 0\n\n pushFalse()\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function SIMPLE_TRUE (octet) {\n octet = octet | 0\n\n pushTrue()\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function SIMPLE_NULL (octet) {\n octet = octet | 0\n\n pushNull()\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function SIMPLE_UNDEFINED (octet) {\n octet = octet | 0\n\n pushUndefined()\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function SIMPLE_BYTE (octet) {\n octet = octet | 0\n\n if (checkOffset(1) | 0) {\n return 1\n }\n\n pushSimpleUnassigned(heap[(offset + 1) | 0] | 0)\n\n offset = (offset + 2) | 0\n\n return 0\n }\n\n function SIMPLE_FLOAT_HALF (octet) {\n octet = octet | 0\n\n var f = 0\n var g = 0\n var sign = 1.0\n var exp = 0.0\n var mant = 0.0\n var r = 0.0\n if (checkOffset(2) | 0) {\n return 1\n }\n\n f = heap[(offset + 1) | 0] | 0\n g = heap[(offset + 2) | 0] | 0\n\n if ((f | 0) & 0x80) {\n sign = -1.0\n }\n\n exp = +(((f | 0) & 0x7C) >> 2)\n mant = +((((f | 0) & 0x03) << 8) | g)\n\n if (+exp == 0.0) {\n pushFloat(+(\n (+sign) * +5.9604644775390625e-8 * (+mant)\n ))\n } else if (+exp == 31.0) {\n if (+sign == 1.0) {\n if (+mant > 0.0) {\n pushNaN()\n } else {\n pushInfinity()\n }\n } else {\n if (+mant > 0.0) {\n pushNaNNeg()\n } else {\n pushInfinityNeg()\n }\n }\n } else {\n pushFloat(+(\n +sign * pow(+2, +(+exp - 25.0)) * +(1024.0 + mant)\n ))\n }\n\n offset = (offset + 3) | 0\n\n return 0\n }\n\n function SIMPLE_FLOAT_SINGLE (octet) {\n octet = octet | 0\n\n if (checkOffset(4) | 0) {\n return 1\n }\n\n pushFloatSingle(\n heap[(offset + 1) | 0] | 0,\n heap[(offset + 2) | 0] | 0,\n heap[(offset + 3) | 0] | 0,\n heap[(offset + 4) | 0] | 0\n )\n\n offset = (offset + 5) | 0\n\n return 0\n }\n\n function SIMPLE_FLOAT_DOUBLE (octet) {\n octet = octet | 0\n\n if (checkOffset(8) | 0) {\n return 1\n }\n\n pushFloatDouble(\n heap[(offset + 1) | 0] | 0,\n heap[(offset + 2) | 0] | 0,\n heap[(offset + 3) | 0] | 0,\n heap[(offset + 4) | 0] | 0,\n heap[(offset + 5) | 0] | 0,\n heap[(offset + 6) | 0] | 0,\n heap[(offset + 7) | 0] | 0,\n heap[(offset + 8) | 0] | 0\n )\n\n offset = (offset + 9) | 0\n\n return 0\n }\n\n function ERROR (octet) {\n octet = octet | 0\n\n return 1\n }\n\n function BREAK (octet) {\n octet = octet | 0\n\n pushBreak()\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n // -- Jump Table\n\n var jumpTable = [\n // Integer 0x00..0x17 (0..23)\n INT_P, // 0x00\n INT_P, // 0x01\n INT_P, // 0x02\n INT_P, // 0x03\n INT_P, // 0x04\n INT_P, // 0x05\n INT_P, // 0x06\n INT_P, // 0x07\n INT_P, // 0x08\n INT_P, // 0x09\n INT_P, // 0x0A\n INT_P, // 0x0B\n INT_P, // 0x0C\n INT_P, // 0x0D\n INT_P, // 0x0E\n INT_P, // 0x0F\n INT_P, // 0x10\n INT_P, // 0x11\n INT_P, // 0x12\n INT_P, // 0x13\n INT_P, // 0x14\n INT_P, // 0x15\n INT_P, // 0x16\n INT_P, // 0x17\n // Unsigned integer (one-byte uint8_t follows)\n UINT_P_8, // 0x18\n // Unsigned integer (two-byte uint16_t follows)\n UINT_P_16, // 0x19\n // Unsigned integer (four-byte uint32_t follows)\n UINT_P_32, // 0x1a\n // Unsigned integer (eight-byte uint64_t follows)\n UINT_P_64, // 0x1b\n ERROR, // 0x1c\n ERROR, // 0x1d\n ERROR, // 0x1e\n ERROR, // 0x1f\n // Negative integer -1-0x00..-1-0x17 (-1..-24)\n INT_N, // 0x20\n INT_N, // 0x21\n INT_N, // 0x22\n INT_N, // 0x23\n INT_N, // 0x24\n INT_N, // 0x25\n INT_N, // 0x26\n INT_N, // 0x27\n INT_N, // 0x28\n INT_N, // 0x29\n INT_N, // 0x2A\n INT_N, // 0x2B\n INT_N, // 0x2C\n INT_N, // 0x2D\n INT_N, // 0x2E\n INT_N, // 0x2F\n INT_N, // 0x30\n INT_N, // 0x31\n INT_N, // 0x32\n INT_N, // 0x33\n INT_N, // 0x34\n INT_N, // 0x35\n INT_N, // 0x36\n INT_N, // 0x37\n // Negative integer -1-n (one-byte uint8_t for n follows)\n UINT_N_8, // 0x38\n // Negative integer -1-n (two-byte uint16_t for n follows)\n UINT_N_16, // 0x39\n // Negative integer -1-n (four-byte uint32_t for nfollows)\n UINT_N_32, // 0x3a\n // Negative integer -1-n (eight-byte uint64_t for n follows)\n UINT_N_64, // 0x3b\n ERROR, // 0x3c\n ERROR, // 0x3d\n ERROR, // 0x3e\n ERROR, // 0x3f\n // byte string (0x00..0x17 bytes follow)\n BYTE_STRING, // 0x40\n BYTE_STRING, // 0x41\n BYTE_STRING, // 0x42\n BYTE_STRING, // 0x43\n BYTE_STRING, // 0x44\n BYTE_STRING, // 0x45\n BYTE_STRING, // 0x46\n BYTE_STRING, // 0x47\n BYTE_STRING, // 0x48\n BYTE_STRING, // 0x49\n BYTE_STRING, // 0x4A\n BYTE_STRING, // 0x4B\n BYTE_STRING, // 0x4C\n BYTE_STRING, // 0x4D\n BYTE_STRING, // 0x4E\n BYTE_STRING, // 0x4F\n BYTE_STRING, // 0x50\n BYTE_STRING, // 0x51\n BYTE_STRING, // 0x52\n BYTE_STRING, // 0x53\n BYTE_STRING, // 0x54\n BYTE_STRING, // 0x55\n BYTE_STRING, // 0x56\n BYTE_STRING, // 0x57\n // byte string (one-byte uint8_t for n, and then n bytes follow)\n BYTE_STRING_8, // 0x58\n // byte string (two-byte uint16_t for n, and then n bytes follow)\n BYTE_STRING_16, // 0x59\n // byte string (four-byte uint32_t for n, and then n bytes follow)\n BYTE_STRING_32, // 0x5a\n // byte string (eight-byte uint64_t for n, and then n bytes follow)\n BYTE_STRING_64, // 0x5b\n ERROR, // 0x5c\n ERROR, // 0x5d\n ERROR, // 0x5e\n // byte string, byte strings follow, terminated by \"break\"\n BYTE_STRING_BREAK, // 0x5f\n // UTF-8 string (0x00..0x17 bytes follow)\n UTF8_STRING, // 0x60\n UTF8_STRING, // 0x61\n UTF8_STRING, // 0x62\n UTF8_STRING, // 0x63\n UTF8_STRING, // 0x64\n UTF8_STRING, // 0x65\n UTF8_STRING, // 0x66\n UTF8_STRING, // 0x67\n UTF8_STRING, // 0x68\n UTF8_STRING, // 0x69\n UTF8_STRING, // 0x6A\n UTF8_STRING, // 0x6B\n UTF8_STRING, // 0x6C\n UTF8_STRING, // 0x6D\n UTF8_STRING, // 0x6E\n UTF8_STRING, // 0x6F\n UTF8_STRING, // 0x70\n UTF8_STRING, // 0x71\n UTF8_STRING, // 0x72\n UTF8_STRING, // 0x73\n UTF8_STRING, // 0x74\n UTF8_STRING, // 0x75\n UTF8_STRING, // 0x76\n UTF8_STRING, // 0x77\n // UTF-8 string (one-byte uint8_t for n, and then n bytes follow)\n UTF8_STRING_8, // 0x78\n // UTF-8 string (two-byte uint16_t for n, and then n bytes follow)\n UTF8_STRING_16, // 0x79\n // UTF-8 string (four-byte uint32_t for n, and then n bytes follow)\n UTF8_STRING_32, // 0x7a\n // UTF-8 string (eight-byte uint64_t for n, and then n bytes follow)\n UTF8_STRING_64, // 0x7b\n // UTF-8 string, UTF-8 strings follow, terminated by \"break\"\n ERROR, // 0x7c\n ERROR, // 0x7d\n ERROR, // 0x7e\n UTF8_STRING_BREAK, // 0x7f\n // array (0x00..0x17 data items follow)\n ARRAY, // 0x80\n ARRAY, // 0x81\n ARRAY, // 0x82\n ARRAY, // 0x83\n ARRAY, // 0x84\n ARRAY, // 0x85\n ARRAY, // 0x86\n ARRAY, // 0x87\n ARRAY, // 0x88\n ARRAY, // 0x89\n ARRAY, // 0x8A\n ARRAY, // 0x8B\n ARRAY, // 0x8C\n ARRAY, // 0x8D\n ARRAY, // 0x8E\n ARRAY, // 0x8F\n ARRAY, // 0x90\n ARRAY, // 0x91\n ARRAY, // 0x92\n ARRAY, // 0x93\n ARRAY, // 0x94\n ARRAY, // 0x95\n ARRAY, // 0x96\n ARRAY, // 0x97\n // array (one-byte uint8_t fo, and then n data items follow)\n ARRAY_8, // 0x98\n // array (two-byte uint16_t for n, and then n data items follow)\n ARRAY_16, // 0x99\n // array (four-byte uint32_t for n, and then n data items follow)\n ARRAY_32, // 0x9a\n // array (eight-byte uint64_t for n, and then n data items follow)\n ARRAY_64, // 0x9b\n // array, data items follow, terminated by \"break\"\n ERROR, // 0x9c\n ERROR, // 0x9d\n ERROR, // 0x9e\n ARRAY_BREAK, // 0x9f\n // map (0x00..0x17 pairs of data items follow)\n MAP, // 0xa0\n MAP, // 0xa1\n MAP, // 0xa2\n MAP, // 0xa3\n MAP, // 0xa4\n MAP, // 0xa5\n MAP, // 0xa6\n MAP, // 0xa7\n MAP, // 0xa8\n MAP, // 0xa9\n MAP, // 0xaA\n MAP, // 0xaB\n MAP, // 0xaC\n MAP, // 0xaD\n MAP, // 0xaE\n MAP, // 0xaF\n MAP, // 0xb0\n MAP, // 0xb1\n MAP, // 0xb2\n MAP, // 0xb3\n MAP, // 0xb4\n MAP, // 0xb5\n MAP, // 0xb6\n MAP, // 0xb7\n // map (one-byte uint8_t for n, and then n pairs of data items follow)\n MAP_8, // 0xb8\n // map (two-byte uint16_t for n, and then n pairs of data items follow)\n MAP_16, // 0xb9\n // map (four-byte uint32_t for n, and then n pairs of data items follow)\n MAP_32, // 0xba\n // map (eight-byte uint64_t for n, and then n pairs of data items follow)\n MAP_64, // 0xbb\n ERROR, // 0xbc\n ERROR, // 0xbd\n ERROR, // 0xbe\n // map, pairs of data items follow, terminated by \"break\"\n MAP_BREAK, // 0xbf\n // Text-based date/time (data item follows; see Section 2.4.1)\n TAG_KNOWN, // 0xc0\n // Epoch-based date/time (data item follows; see Section 2.4.1)\n TAG_KNOWN, // 0xc1\n // Positive bignum (data item \"byte string\" follows)\n TAG_KNOWN, // 0xc2\n // Negative bignum (data item \"byte string\" follows)\n TAG_KNOWN, // 0xc3\n // Decimal Fraction (data item \"array\" follows; see Section 2.4.3)\n TAG_KNOWN, // 0xc4\n // Bigfloat (data item \"array\" follows; see Section 2.4.3)\n TAG_KNOWN, // 0xc5\n // (tagged item)\n TAG_UNASSIGNED, // 0xc6\n TAG_UNASSIGNED, // 0xc7\n TAG_UNASSIGNED, // 0xc8\n TAG_UNASSIGNED, // 0xc9\n TAG_UNASSIGNED, // 0xca\n TAG_UNASSIGNED, // 0xcb\n TAG_UNASSIGNED, // 0xcc\n TAG_UNASSIGNED, // 0xcd\n TAG_UNASSIGNED, // 0xce\n TAG_UNASSIGNED, // 0xcf\n TAG_UNASSIGNED, // 0xd0\n TAG_UNASSIGNED, // 0xd1\n TAG_UNASSIGNED, // 0xd2\n TAG_UNASSIGNED, // 0xd3\n TAG_UNASSIGNED, // 0xd4\n // Expected Conversion (data item follows; see Section 2.4.4.2)\n TAG_UNASSIGNED, // 0xd5\n TAG_UNASSIGNED, // 0xd6\n TAG_UNASSIGNED, // 0xd7\n // (more tagged items, 1/2/4/8 bytes and then a data item follow)\n TAG_MORE_1, // 0xd8\n TAG_MORE_2, // 0xd9\n TAG_MORE_4, // 0xda\n TAG_MORE_8, // 0xdb\n ERROR, // 0xdc\n ERROR, // 0xdd\n ERROR, // 0xde\n ERROR, // 0xdf\n // (simple value)\n SIMPLE_UNASSIGNED, // 0xe0\n SIMPLE_UNASSIGNED, // 0xe1\n SIMPLE_UNASSIGNED, // 0xe2\n SIMPLE_UNASSIGNED, // 0xe3\n SIMPLE_UNASSIGNED, // 0xe4\n SIMPLE_UNASSIGNED, // 0xe5\n SIMPLE_UNASSIGNED, // 0xe6\n SIMPLE_UNASSIGNED, // 0xe7\n SIMPLE_UNASSIGNED, // 0xe8\n SIMPLE_UNASSIGNED, // 0xe9\n SIMPLE_UNASSIGNED, // 0xea\n SIMPLE_UNASSIGNED, // 0xeb\n SIMPLE_UNASSIGNED, // 0xec\n SIMPLE_UNASSIGNED, // 0xed\n SIMPLE_UNASSIGNED, // 0xee\n SIMPLE_UNASSIGNED, // 0xef\n SIMPLE_UNASSIGNED, // 0xf0\n SIMPLE_UNASSIGNED, // 0xf1\n SIMPLE_UNASSIGNED, // 0xf2\n SIMPLE_UNASSIGNED, // 0xf3\n // False\n SIMPLE_FALSE, // 0xf4\n // True\n SIMPLE_TRUE, // 0xf5\n // Null\n SIMPLE_NULL, // 0xf6\n // Undefined\n SIMPLE_UNDEFINED, // 0xf7\n // (simple value, one byte follows)\n SIMPLE_BYTE, // 0xf8\n // Half-Precision Float (two-byte IEEE 754)\n SIMPLE_FLOAT_HALF, // 0xf9\n // Single-Precision Float (four-byte IEEE 754)\n SIMPLE_FLOAT_SINGLE, // 0xfa\n // Double-Precision Float (eight-byte IEEE 754)\n SIMPLE_FLOAT_DOUBLE, // 0xfb\n ERROR, // 0xfc\n ERROR, // 0xfd\n ERROR, // 0xfe\n // \"break\" stop code\n BREAK // 0xff\n ]\n\n // --\n\n return {\n parse: parse\n }\n}\n","'use strict'\n\nconst { Buffer } = require('buffer')\nconst ieee754 = require('ieee754')\nconst Bignumber = require('bignumber.js').BigNumber\n\nconst parser = require('./decoder.asm')\nconst utils = require('./utils')\nconst c = require('./constants')\nconst Simple = require('./simple')\nconst Tagged = require('./tagged')\nconst { URL } = require('iso-url')\n\n/**\n * Transform binary cbor data into JavaScript objects.\n */\nclass Decoder {\n /**\n * @param {Object} [opts={}]\n * @param {number} [opts.size=65536] - Size of the allocated heap.\n */\n constructor (opts) {\n opts = opts || {}\n\n if (!opts.size || opts.size < 0x10000) {\n opts.size = 0x10000\n } else {\n // Ensure the size is a power of 2\n opts.size = utils.nextPowerOf2(opts.size)\n }\n\n // Heap use to share the input with the parser\n this._heap = new ArrayBuffer(opts.size)\n this._heap8 = new Uint8Array(this._heap)\n this._buffer = Buffer.from(this._heap)\n\n this._reset()\n\n // Known tags\n this._knownTags = Object.assign({\n 0: (val) => new Date(val),\n 1: (val) => new Date(val * 1000),\n 2: (val) => utils.arrayBufferToBignumber(val),\n 3: (val) => c.NEG_ONE.minus(utils.arrayBufferToBignumber(val)),\n 4: (v) => {\n // const v = new Uint8Array(val)\n return c.TEN.pow(v[0]).times(v[1])\n },\n 5: (v) => {\n // const v = new Uint8Array(val)\n return c.TWO.pow(v[0]).times(v[1])\n },\n 32: (val) => new URL(val),\n 35: (val) => new RegExp(val)\n }, opts.tags)\n\n // Initialize asm based parser\n this.parser = parser(global, {\n // eslint-disable-next-line no-console\n log: console.log.bind(console),\n pushInt: this.pushInt.bind(this),\n pushInt32: this.pushInt32.bind(this),\n pushInt32Neg: this.pushInt32Neg.bind(this),\n pushInt64: this.pushInt64.bind(this),\n pushInt64Neg: this.pushInt64Neg.bind(this),\n pushFloat: this.pushFloat.bind(this),\n pushFloatSingle: this.pushFloatSingle.bind(this),\n pushFloatDouble: this.pushFloatDouble.bind(this),\n pushTrue: this.pushTrue.bind(this),\n pushFalse: this.pushFalse.bind(this),\n pushUndefined: this.pushUndefined.bind(this),\n pushNull: this.pushNull.bind(this),\n pushInfinity: this.pushInfinity.bind(this),\n pushInfinityNeg: this.pushInfinityNeg.bind(this),\n pushNaN: this.pushNaN.bind(this),\n pushNaNNeg: this.pushNaNNeg.bind(this),\n pushArrayStart: this.pushArrayStart.bind(this),\n pushArrayStartFixed: this.pushArrayStartFixed.bind(this),\n pushArrayStartFixed32: this.pushArrayStartFixed32.bind(this),\n pushArrayStartFixed64: this.pushArrayStartFixed64.bind(this),\n pushObjectStart: this.pushObjectStart.bind(this),\n pushObjectStartFixed: this.pushObjectStartFixed.bind(this),\n pushObjectStartFixed32: this.pushObjectStartFixed32.bind(this),\n pushObjectStartFixed64: this.pushObjectStartFixed64.bind(this),\n pushByteString: this.pushByteString.bind(this),\n pushByteStringStart: this.pushByteStringStart.bind(this),\n pushUtf8String: this.pushUtf8String.bind(this),\n pushUtf8StringStart: this.pushUtf8StringStart.bind(this),\n pushSimpleUnassigned: this.pushSimpleUnassigned.bind(this),\n pushTagUnassigned: this.pushTagUnassigned.bind(this),\n pushTagStart: this.pushTagStart.bind(this),\n pushTagStart4: this.pushTagStart4.bind(this),\n pushTagStart8: this.pushTagStart8.bind(this),\n pushBreak: this.pushBreak.bind(this)\n }, this._heap)\n }\n\n get _depth () {\n return this._parents.length\n }\n\n get _currentParent () {\n return this._parents[this._depth - 1]\n }\n\n get _ref () {\n return this._currentParent.ref\n }\n\n // Finish the current parent\n _closeParent () {\n var p = this._parents.pop()\n\n if (p.length > 0) {\n throw new Error(`Missing ${p.length} elements`)\n }\n\n switch (p.type) {\n case c.PARENT.TAG:\n this._push(\n this.createTag(p.ref[0], p.ref[1])\n )\n break\n case c.PARENT.BYTE_STRING:\n this._push(this.createByteString(p.ref, p.length))\n break\n case c.PARENT.UTF8_STRING:\n this._push(this.createUtf8String(p.ref, p.length))\n break\n case c.PARENT.MAP:\n if (p.values % 2 > 0) {\n throw new Error('Odd number of elements in the map')\n }\n this._push(this.createMap(p.ref, p.length))\n break\n case c.PARENT.OBJECT:\n if (p.values % 2 > 0) {\n throw new Error('Odd number of elements in the map')\n }\n this._push(this.createObject(p.ref, p.length))\n break\n case c.PARENT.ARRAY:\n this._push(this.createArray(p.ref, p.length))\n break\n default:\n break\n }\n\n if (this._currentParent && this._currentParent.type === c.PARENT.TAG) {\n this._dec()\n }\n }\n\n // Reduce the expected length of the current parent by one\n _dec () {\n const p = this._currentParent\n // The current parent does not know the epxected child length\n\n if (p.length < 0) {\n return\n }\n\n p.length--\n\n // All children were seen, we can close the current parent\n if (p.length === 0) {\n this._closeParent()\n }\n }\n\n // Push any value to the current parent\n _push (val, hasChildren) {\n const p = this._currentParent\n p.values++\n\n switch (p.type) {\n case c.PARENT.ARRAY:\n case c.PARENT.BYTE_STRING:\n case c.PARENT.UTF8_STRING:\n if (p.length > -1) {\n this._ref[this._ref.length - p.length] = val\n } else {\n this._ref.push(val)\n }\n this._dec()\n break\n case c.PARENT.OBJECT:\n if (p.tmpKey != null) {\n this._ref[p.tmpKey] = val\n p.tmpKey = null\n this._dec()\n } else {\n p.tmpKey = val\n\n if (typeof p.tmpKey !== 'string') {\n // too bad, convert to a Map\n p.type = c.PARENT.MAP\n p.ref = utils.buildMap(p.ref)\n }\n }\n break\n case c.PARENT.MAP:\n if (p.tmpKey != null) {\n this._ref.set(p.tmpKey, val)\n p.tmpKey = null\n this._dec()\n } else {\n p.tmpKey = val\n }\n break\n case c.PARENT.TAG:\n this._ref.push(val)\n if (!hasChildren) {\n this._dec()\n }\n break\n default:\n throw new Error('Unknown parent type')\n }\n }\n\n // Create a new parent in the parents list\n _createParent (obj, type, len) {\n this._parents[this._depth] = {\n type: type,\n length: len,\n ref: obj,\n values: 0,\n tmpKey: null\n }\n }\n\n // Reset all state back to the beginning, also used for initiatlization\n _reset () {\n this._res = []\n this._parents = [{\n type: c.PARENT.ARRAY,\n length: -1,\n ref: this._res,\n values: 0,\n tmpKey: null\n }]\n }\n\n // -- Interface to customize deoding behaviour\n createTag (tagNumber, value) {\n const typ = this._knownTags[tagNumber]\n\n if (!typ) {\n return new Tagged(tagNumber, value)\n }\n\n return typ(value)\n }\n\n createMap (obj, len) {\n return obj\n }\n\n createObject (obj, len) {\n return obj\n }\n\n createArray (arr, len) {\n return arr\n }\n\n createByteString (raw, len) {\n return Buffer.concat(raw)\n }\n\n createByteStringFromHeap (start, end) {\n if (start === end) {\n return Buffer.alloc(0)\n }\n\n return Buffer.from(this._heap.slice(start, end))\n }\n\n createInt (val) {\n return val\n }\n\n createInt32 (f, g) {\n return utils.buildInt32(f, g)\n }\n\n createInt64 (f1, f2, g1, g2) {\n return utils.buildInt64(f1, f2, g1, g2)\n }\n\n createFloat (val) {\n return val\n }\n\n createFloatSingle (a, b, c, d) {\n return ieee754.read([a, b, c, d], 0, false, 23, 4)\n }\n\n createFloatDouble (a, b, c, d, e, f, g, h) {\n return ieee754.read([a, b, c, d, e, f, g, h], 0, false, 52, 8)\n }\n\n createInt32Neg (f, g) {\n return -1 - utils.buildInt32(f, g)\n }\n\n createInt64Neg (f1, f2, g1, g2) {\n const f = utils.buildInt32(f1, f2)\n const g = utils.buildInt32(g1, g2)\n\n if (f > c.MAX_SAFE_HIGH) {\n return c.NEG_ONE.minus(new Bignumber(f).times(c.SHIFT32).plus(g))\n }\n\n return -1 - ((f * c.SHIFT32) + g)\n }\n\n createTrue () {\n return true\n }\n\n createFalse () {\n return false\n }\n\n createNull () {\n return null\n }\n\n createUndefined () {\n return undefined\n }\n\n createInfinity () {\n return Infinity\n }\n\n createInfinityNeg () {\n return -Infinity\n }\n\n createNaN () {\n return NaN\n }\n\n createNaNNeg () {\n return -NaN\n }\n\n createUtf8String (raw, len) {\n return raw.join('')\n }\n\n createUtf8StringFromHeap (start, end) {\n if (start === end) {\n return ''\n }\n\n return this._buffer.toString('utf8', start, end)\n }\n\n createSimpleUnassigned (val) {\n return new Simple(val)\n }\n\n // -- Interface for decoder.asm.js\n\n pushInt (val) {\n this._push(this.createInt(val))\n }\n\n pushInt32 (f, g) {\n this._push(this.createInt32(f, g))\n }\n\n pushInt64 (f1, f2, g1, g2) {\n this._push(this.createInt64(f1, f2, g1, g2))\n }\n\n pushFloat (val) {\n this._push(this.createFloat(val))\n }\n\n pushFloatSingle (a, b, c, d) {\n this._push(this.createFloatSingle(a, b, c, d))\n }\n\n pushFloatDouble (a, b, c, d, e, f, g, h) {\n this._push(this.createFloatDouble(a, b, c, d, e, f, g, h))\n }\n\n pushInt32Neg (f, g) {\n this._push(this.createInt32Neg(f, g))\n }\n\n pushInt64Neg (f1, f2, g1, g2) {\n this._push(this.createInt64Neg(f1, f2, g1, g2))\n }\n\n pushTrue () {\n this._push(this.createTrue())\n }\n\n pushFalse () {\n this._push(this.createFalse())\n }\n\n pushNull () {\n this._push(this.createNull())\n }\n\n pushUndefined () {\n this._push(this.createUndefined())\n }\n\n pushInfinity () {\n this._push(this.createInfinity())\n }\n\n pushInfinityNeg () {\n this._push(this.createInfinityNeg())\n }\n\n pushNaN () {\n this._push(this.createNaN())\n }\n\n pushNaNNeg () {\n this._push(this.createNaNNeg())\n }\n\n pushArrayStart () {\n this._createParent([], c.PARENT.ARRAY, -1)\n }\n\n pushArrayStartFixed (len) {\n this._createArrayStartFixed(len)\n }\n\n pushArrayStartFixed32 (len1, len2) {\n const len = utils.buildInt32(len1, len2)\n this._createArrayStartFixed(len)\n }\n\n pushArrayStartFixed64 (len1, len2, len3, len4) {\n const len = utils.buildInt64(len1, len2, len3, len4)\n this._createArrayStartFixed(len)\n }\n\n pushObjectStart () {\n this._createObjectStartFixed(-1)\n }\n\n pushObjectStartFixed (len) {\n this._createObjectStartFixed(len)\n }\n\n pushObjectStartFixed32 (len1, len2) {\n const len = utils.buildInt32(len1, len2)\n this._createObjectStartFixed(len)\n }\n\n pushObjectStartFixed64 (len1, len2, len3, len4) {\n const len = utils.buildInt64(len1, len2, len3, len4)\n this._createObjectStartFixed(len)\n }\n\n pushByteStringStart () {\n this._parents[this._depth] = {\n type: c.PARENT.BYTE_STRING,\n length: -1,\n ref: [],\n values: 0,\n tmpKey: null\n }\n }\n\n pushByteString (start, end) {\n this._push(this.createByteStringFromHeap(start, end))\n }\n\n pushUtf8StringStart () {\n this._parents[this._depth] = {\n type: c.PARENT.UTF8_STRING,\n length: -1,\n ref: [],\n values: 0,\n tmpKey: null\n }\n }\n\n pushUtf8String (start, end) {\n this._push(this.createUtf8StringFromHeap(start, end))\n }\n\n pushSimpleUnassigned (val) {\n this._push(this.createSimpleUnassigned(val))\n }\n\n pushTagStart (tag) {\n this._parents[this._depth] = {\n type: c.PARENT.TAG,\n length: 1,\n ref: [tag]\n }\n }\n\n pushTagStart4 (f, g) {\n this.pushTagStart(utils.buildInt32(f, g))\n }\n\n pushTagStart8 (f1, f2, g1, g2) {\n this.pushTagStart(utils.buildInt64(f1, f2, g1, g2))\n }\n\n pushTagUnassigned (tagNumber) {\n this._push(this.createTag(tagNumber))\n }\n\n pushBreak () {\n if (this._currentParent.length > -1) {\n throw new Error('Unexpected break')\n }\n\n this._closeParent()\n }\n\n _createObjectStartFixed (len) {\n if (len === 0) {\n this._push(this.createObject({}))\n return\n }\n\n this._createParent({}, c.PARENT.OBJECT, len)\n }\n\n _createArrayStartFixed (len) {\n if (len === 0) {\n this._push(this.createArray([]))\n return\n }\n\n this._createParent(new Array(len), c.PARENT.ARRAY, len)\n }\n\n _decode (input) {\n if (input.byteLength === 0) {\n throw new Error('Input too short')\n }\n\n this._reset()\n this._heap8.set(input)\n const code = this.parser.parse(input.byteLength)\n\n if (this._depth > 1) {\n while (this._currentParent.length === 0) {\n this._closeParent()\n }\n if (this._depth > 1) {\n throw new Error('Undeterminated nesting')\n }\n }\n\n if (code > 0) {\n throw new Error('Failed to parse')\n }\n\n if (this._res.length === 0) {\n throw new Error('No valid result')\n }\n }\n\n // -- Public Interface\n\n decodeFirst (input) {\n this._decode(input)\n\n return this._res[0]\n }\n\n decodeAll (input) {\n this._decode(input)\n\n return this._res\n }\n\n /**\n * Decode the first cbor object.\n *\n * @param {Buffer|string} input\n * @param {string} [enc='hex'] - Encoding used if a string is passed.\n * @returns {*}\n */\n static decode (input, enc) {\n if (typeof input === 'string') {\n input = Buffer.from(input, enc || 'hex')\n }\n\n const dec = new Decoder({ size: input.length })\n return dec.decodeFirst(input)\n }\n\n /**\n * Decode all cbor objects.\n *\n * @param {Buffer|string} input\n * @param {string} [enc='hex'] - Encoding used if a string is passed.\n * @returns {Array<*>}\n */\n static decodeAll (input, enc) {\n if (typeof input === 'string') {\n input = Buffer.from(input, enc || 'hex')\n }\n\n const dec = new Decoder({ size: input.length })\n return dec.decodeAll(input)\n }\n}\n\nDecoder.decodeFirst = Decoder.decode\n\nmodule.exports = Decoder\n","'use strict'\n\nconst { Buffer } = require('buffer')\nconst Decoder = require('./decoder')\nconst utils = require('./utils')\n\n/**\n * Output the diagnostic format from a stream of CBOR bytes.\n *\n */\nclass Diagnose extends Decoder {\n createTag (tagNumber, value) {\n return `${tagNumber}(${value})`\n }\n\n createInt (val) {\n return super.createInt(val).toString()\n }\n\n createInt32 (f, g) {\n return super.createInt32(f, g).toString()\n }\n\n createInt64 (f1, f2, g1, g2) {\n return super.createInt64(f1, f2, g1, g2).toString()\n }\n\n createInt32Neg (f, g) {\n return super.createInt32Neg(f, g).toString()\n }\n\n createInt64Neg (f1, f2, g1, g2) {\n return super.createInt64Neg(f1, f2, g1, g2).toString()\n }\n\n createTrue () {\n return 'true'\n }\n\n createFalse () {\n return 'false'\n }\n\n createFloat (val) {\n const fl = super.createFloat(val)\n if (utils.isNegativeZero(val)) {\n return '-0_1'\n }\n\n return `${fl}_1`\n }\n\n createFloatSingle (a, b, c, d) {\n const fl = super.createFloatSingle(a, b, c, d)\n return `${fl}_2`\n }\n\n createFloatDouble (a, b, c, d, e, f, g, h) {\n const fl = super.createFloatDouble(a, b, c, d, e, f, g, h)\n return `${fl}_3`\n }\n\n createByteString (raw, len) {\n const val = raw.join(', ')\n\n if (len === -1) {\n return `(_ ${val})`\n }\n return `h'${val}`\n }\n\n createByteStringFromHeap (start, end) {\n const val = (Buffer.from(\n super.createByteStringFromHeap(start, end)\n )).toString('hex')\n\n return `h'${val}'`\n }\n\n createInfinity () {\n return 'Infinity_1'\n }\n\n createInfinityNeg () {\n return '-Infinity_1'\n }\n\n createNaN () {\n return 'NaN_1'\n }\n\n createNaNNeg () {\n return '-NaN_1'\n }\n\n createNull () {\n return 'null'\n }\n\n createUndefined () {\n return 'undefined'\n }\n\n createSimpleUnassigned (val) {\n return `simple(${val})`\n }\n\n createArray (arr, len) {\n const val = super.createArray(arr, len)\n\n if (len === -1) {\n // indefinite\n return `[_ ${val.join(', ')}]`\n }\n\n return `[${val.join(', ')}]`\n }\n\n createMap (map, len) {\n const val = super.createMap(map)\n const list = Array.from(val.keys())\n .reduce(collectObject(val), '')\n\n if (len === -1) {\n return `{_ ${list}}`\n }\n\n return `{${list}}`\n }\n\n createObject (obj, len) {\n const val = super.createObject(obj)\n const map = Object.keys(val)\n .reduce(collectObject(val), '')\n\n if (len === -1) {\n return `{_ ${map}}`\n }\n\n return `{${map}}`\n }\n\n createUtf8String (raw, len) {\n const val = raw.join(', ')\n\n if (len === -1) {\n return `(_ ${val})`\n }\n\n return `\"${val}\"`\n }\n\n createUtf8StringFromHeap (start, end) {\n const val = (Buffer.from(\n super.createUtf8StringFromHeap(start, end)\n )).toString('utf8')\n\n return `\"${val}\"`\n }\n\n static diagnose (input, enc) {\n if (typeof input === 'string') {\n input = Buffer.from(input, enc || 'hex')\n }\n\n const dec = new Diagnose()\n return dec.decodeFirst(input)\n }\n}\n\nmodule.exports = Diagnose\n\nfunction collectObject (val) {\n return (acc, key) => {\n if (acc) {\n return `${acc}, ${key}: ${val[key]}`\n }\n return `${key}: ${val[key]}`\n }\n}\n","'use strict'\n\nconst { Buffer } = require('buffer')\nconst { URL } = require('iso-url')\nconst Bignumber = require('bignumber.js').BigNumber\n\nconst utils = require('./utils')\nconst constants = require('./constants')\nconst MT = constants.MT\nconst NUMBYTES = constants.NUMBYTES\nconst SHIFT32 = constants.SHIFT32\nconst SYMS = constants.SYMS\nconst TAG = constants.TAG\nconst HALF = (constants.MT.SIMPLE_FLOAT << 5) | constants.NUMBYTES.TWO\nconst FLOAT = (constants.MT.SIMPLE_FLOAT << 5) | constants.NUMBYTES.FOUR\nconst DOUBLE = (constants.MT.SIMPLE_FLOAT << 5) | constants.NUMBYTES.EIGHT\nconst TRUE = (constants.MT.SIMPLE_FLOAT << 5) | constants.SIMPLE.TRUE\nconst FALSE = (constants.MT.SIMPLE_FLOAT << 5) | constants.SIMPLE.FALSE\nconst UNDEFINED = (constants.MT.SIMPLE_FLOAT << 5) | constants.SIMPLE.UNDEFINED\nconst NULL = (constants.MT.SIMPLE_FLOAT << 5) | constants.SIMPLE.NULL\n\nconst MAXINT_BN = new Bignumber('0x20000000000000')\nconst BUF_NAN = Buffer.from('f97e00', 'hex')\nconst BUF_INF_NEG = Buffer.from('f9fc00', 'hex')\nconst BUF_INF_POS = Buffer.from('f97c00', 'hex')\n\nfunction toType (obj) {\n // [object Type]\n // --------8---1\n return ({}).toString.call(obj).slice(8, -1)\n}\n\n/**\n * Transform JavaScript values into CBOR bytes\n *\n */\nclass Encoder {\n /**\n * @param {Object} [options={}]\n * @param {function(Buffer)} options.stream\n */\n constructor (options) {\n options = options || {}\n\n this.streaming = typeof options.stream === 'function'\n this.onData = options.stream\n\n this.semanticTypes = [\n [URL, this._pushUrl],\n [Bignumber, this._pushBigNumber]\n ]\n\n const addTypes = options.genTypes || []\n const len = addTypes.length\n for (let i = 0; i < len; i++) {\n this.addSemanticType(\n addTypes[i][0],\n addTypes[i][1]\n )\n }\n\n this._reset()\n }\n\n addSemanticType (type, fun) {\n const len = this.semanticTypes.length\n for (let i = 0; i < len; i++) {\n const typ = this.semanticTypes[i][0]\n if (typ === type) {\n const old = this.semanticTypes[i][1]\n this.semanticTypes[i][1] = fun\n return old\n }\n }\n this.semanticTypes.push([type, fun])\n return null\n }\n\n push (val) {\n if (!val) {\n return true\n }\n\n this.result[this.offset] = val\n this.resultMethod[this.offset] = 0\n this.resultLength[this.offset] = val.length\n this.offset++\n\n if (this.streaming) {\n this.onData(this.finalize())\n }\n\n return true\n }\n\n pushWrite (val, method, len) {\n this.result[this.offset] = val\n this.resultMethod[this.offset] = method\n this.resultLength[this.offset] = len\n this.offset++\n\n if (this.streaming) {\n this.onData(this.finalize())\n }\n\n return true\n }\n\n _pushUInt8 (val) {\n return this.pushWrite(val, 1, 1)\n }\n\n _pushUInt16BE (val) {\n return this.pushWrite(val, 2, 2)\n }\n\n _pushUInt32BE (val) {\n return this.pushWrite(val, 3, 4)\n }\n\n _pushDoubleBE (val) {\n return this.pushWrite(val, 4, 8)\n }\n\n _pushNaN () {\n return this.push(BUF_NAN)\n }\n\n _pushInfinity (obj) {\n const half = (obj < 0) ? BUF_INF_NEG : BUF_INF_POS\n return this.push(half)\n }\n\n _pushFloat (obj) {\n const b2 = Buffer.allocUnsafe(2)\n\n if (utils.writeHalf(b2, obj)) {\n if (utils.parseHalf(b2) === obj) {\n return this._pushUInt8(HALF) && this.push(b2)\n }\n }\n\n const b4 = Buffer.allocUnsafe(4)\n b4.writeFloatBE(obj, 0)\n if (b4.readFloatBE(0) === obj) {\n return this._pushUInt8(FLOAT) && this.push(b4)\n }\n\n return this._pushUInt8(DOUBLE) && this._pushDoubleBE(obj)\n }\n\n _pushInt (obj, mt, orig) {\n const m = mt << 5\n if (obj < 24) {\n return this._pushUInt8(m | obj)\n }\n\n if (obj <= 0xff) {\n return this._pushUInt8(m | NUMBYTES.ONE) && this._pushUInt8(obj)\n }\n\n if (obj <= 0xffff) {\n return this._pushUInt8(m | NUMBYTES.TWO) && this._pushUInt16BE(obj)\n }\n\n if (obj <= 0xffffffff) {\n return this._pushUInt8(m | NUMBYTES.FOUR) && this._pushUInt32BE(obj)\n }\n\n if (obj <= Number.MAX_SAFE_INTEGER) {\n return this._pushUInt8(m | NUMBYTES.EIGHT) &&\n this._pushUInt32BE(Math.floor(obj / SHIFT32)) &&\n this._pushUInt32BE(obj % SHIFT32)\n }\n\n if (mt === MT.NEG_INT) {\n return this._pushFloat(orig)\n }\n\n return this._pushFloat(obj)\n }\n\n _pushIntNum (obj) {\n if (obj < 0) {\n return this._pushInt(-obj - 1, MT.NEG_INT, obj)\n } else {\n return this._pushInt(obj, MT.POS_INT)\n }\n }\n\n _pushNumber (obj) {\n switch (false) {\n case (obj === obj): // eslint-disable-line\n return this._pushNaN(obj)\n case isFinite(obj):\n return this._pushInfinity(obj)\n case ((obj % 1) !== 0):\n return this._pushIntNum(obj)\n default:\n return this._pushFloat(obj)\n }\n }\n\n _pushString (obj) {\n const len = Buffer.byteLength(obj, 'utf8')\n return this._pushInt(len, MT.UTF8_STRING) && this.pushWrite(obj, 5, len)\n }\n\n _pushBoolean (obj) {\n return this._pushUInt8(obj ? TRUE : FALSE)\n }\n\n _pushUndefined (obj) {\n return this._pushUInt8(UNDEFINED)\n }\n\n _pushArray (gen, obj) {\n const len = obj.length\n if (!gen._pushInt(len, MT.ARRAY)) {\n return false\n }\n for (let j = 0; j < len; j++) {\n if (!gen.pushAny(obj[j])) {\n return false\n }\n }\n return true\n }\n\n _pushTag (tag) {\n return this._pushInt(tag, MT.TAG)\n }\n\n _pushDate (gen, obj) {\n // Round date, to get seconds since 1970-01-01 00:00:00 as defined in\n // Sec. 2.4.1 and get a possibly more compact encoding. Note that it is\n // still allowed to encode fractions of seconds which can be achieved by\n // changing overwriting the encode function for Date objects.\n return gen._pushTag(TAG.DATE_EPOCH) && gen.pushAny(Math.round(obj / 1000))\n }\n\n _pushBuffer (gen, obj) {\n return gen._pushInt(obj.length, MT.BYTE_STRING) && gen.push(obj)\n }\n\n _pushNoFilter (gen, obj) {\n return gen._pushBuffer(gen, obj.slice())\n }\n\n _pushRegexp (gen, obj) {\n return gen._pushTag(TAG.REGEXP) && gen.pushAny(obj.source)\n }\n\n _pushSet (gen, obj) {\n if (!gen._pushInt(obj.size, MT.ARRAY)) {\n return false\n }\n for (const x of obj) {\n if (!gen.pushAny(x)) {\n return false\n }\n }\n return true\n }\n\n _pushUrl (gen, obj) {\n return gen._pushTag(TAG.URI) && gen.pushAny(obj.format())\n }\n\n _pushBigint (obj) {\n let tag = TAG.POS_BIGINT\n if (obj.isNegative()) {\n obj = obj.negated().minus(1)\n tag = TAG.NEG_BIGINT\n }\n let str = obj.toString(16)\n if (str.length % 2) {\n str = '0' + str\n }\n const buf = Buffer.from(str, 'hex')\n return this._pushTag(tag) && this._pushBuffer(this, buf)\n }\n\n _pushBigNumber (gen, obj) {\n if (obj.isNaN()) {\n return gen._pushNaN()\n }\n if (!obj.isFinite()) {\n return gen._pushInfinity(obj.isNegative() ? -Infinity : Infinity)\n }\n if (obj.isInteger()) {\n return gen._pushBigint(obj)\n }\n if (!(gen._pushTag(TAG.DECIMAL_FRAC) &&\n gen._pushInt(2, MT.ARRAY))) {\n return false\n }\n\n const dec = obj.decimalPlaces()\n const slide = obj.multipliedBy(new Bignumber(10).pow(dec))\n if (!gen._pushIntNum(-dec)) {\n return false\n }\n if (slide.abs().isLessThan(MAXINT_BN)) {\n return gen._pushIntNum(slide.toNumber())\n } else {\n return gen._pushBigint(slide)\n }\n }\n\n _pushMap (gen, obj) {\n if (!gen._pushInt(obj.size, MT.MAP)) {\n return false\n }\n\n return this._pushRawMap(\n obj.size,\n Array.from(obj)\n )\n }\n\n _pushObject (obj) {\n if (!obj) {\n return this._pushUInt8(NULL)\n }\n\n var len = this.semanticTypes.length\n for (var i = 0; i < len; i++) {\n if (obj instanceof this.semanticTypes[i][0]) {\n return this.semanticTypes[i][1].call(obj, this, obj)\n }\n }\n\n var f = obj.encodeCBOR\n if (typeof f === 'function') {\n return f.call(obj, this)\n }\n\n var keys = Object.keys(obj)\n var keyLength = keys.length\n if (!this._pushInt(keyLength, MT.MAP)) {\n return false\n }\n\n return this._pushRawMap(\n keyLength,\n keys.map((k) => [k, obj[k]])\n )\n }\n\n _pushRawMap (len, map) {\n // Sort keys for canoncialization\n // 1. encode key\n // 2. shorter key comes before longer key\n // 3. same length keys are sorted with lower\n // byte value before higher\n\n map = map.map(function (a) {\n a[0] = Encoder.encode(a[0])\n return a\n }).sort(utils.keySorter)\n\n for (var j = 0; j < len; j++) {\n if (!this.push(map[j][0])) {\n return false\n }\n\n if (!this.pushAny(map[j][1])) {\n return false\n }\n }\n\n return true\n }\n\n /**\n * Alias for `.pushAny`\n *\n * @param {*} obj\n * @returns {boolean} true on success\n */\n write (obj) {\n return this.pushAny(obj)\n }\n\n /**\n * Push any supported type onto the encoded stream\n *\n * @param {any} obj\n * @returns {boolean} true on success\n */\n pushAny (obj) {\n var typ = toType(obj)\n\n switch (typ) {\n case 'Number':\n return this._pushNumber(obj)\n case 'String':\n return this._pushString(obj)\n case 'Boolean':\n return this._pushBoolean(obj)\n case 'Object':\n return this._pushObject(obj)\n case 'Array':\n return this._pushArray(this, obj)\n case 'Uint8Array':\n return this._pushBuffer(this, Buffer.isBuffer(obj) ? obj : Buffer.from(obj))\n case 'Null':\n return this._pushUInt8(NULL)\n case 'Undefined':\n return this._pushUndefined(obj)\n case 'Map':\n return this._pushMap(this, obj)\n case 'Set':\n return this._pushSet(this, obj)\n case 'URL':\n return this._pushUrl(this, obj)\n case 'BigNumber':\n return this._pushBigNumber(this, obj)\n case 'Date':\n return this._pushDate(this, obj)\n case 'RegExp':\n return this._pushRegexp(this, obj)\n case 'Symbol':\n switch (obj) {\n case SYMS.NULL:\n return this._pushObject(null)\n case SYMS.UNDEFINED:\n return this._pushUndefined(undefined)\n // TODO: Add pluggable support for other symbols\n default:\n throw new Error('Unknown symbol: ' + obj.toString())\n }\n default:\n throw new Error('Unknown type: ' + typeof obj + ', ' + (obj ? obj.toString() : ''))\n }\n }\n\n finalize () {\n if (this.offset === 0) {\n return null\n }\n\n var result = this.result\n var resultLength = this.resultLength\n var resultMethod = this.resultMethod\n var offset = this.offset\n\n // Determine the size of the buffer\n var size = 0\n var i = 0\n\n for (; i < offset; i++) {\n size += resultLength[i]\n }\n\n var res = Buffer.allocUnsafe(size)\n var index = 0\n var length = 0\n\n // Write the content into the result buffer\n for (i = 0; i < offset; i++) {\n length = resultLength[i]\n\n switch (resultMethod[i]) {\n case 0:\n result[i].copy(res, index)\n break\n case 1:\n res.writeUInt8(result[i], index, true)\n break\n case 2:\n res.writeUInt16BE(result[i], index, true)\n break\n case 3:\n res.writeUInt32BE(result[i], index, true)\n break\n case 4:\n res.writeDoubleBE(result[i], index, true)\n break\n case 5:\n res.write(result[i], index, length, 'utf8')\n break\n default:\n throw new Error('unkown method')\n }\n\n index += length\n }\n\n var tmp = res\n\n this._reset()\n\n return tmp\n }\n\n _reset () {\n this.result = []\n this.resultMethod = []\n this.resultLength = []\n this.offset = 0\n }\n\n /**\n * Encode the given value\n * @param {*} o\n * @returns {Buffer}\n */\n static encode (o) {\n const enc = new Encoder()\n const ret = enc.pushAny(o)\n if (!ret) {\n throw new Error('Failed to encode input')\n }\n\n return enc.finalize()\n }\n}\n\nmodule.exports = Encoder\n","'use strict'\n\n// exports.Commented = require('./commented')\nexports.Diagnose = require('./diagnose')\nexports.Decoder = require('./decoder')\nexports.Encoder = require('./encoder')\nexports.Simple = require('./simple')\nexports.Tagged = require('./tagged')\n\n// exports.comment = exports.Commented.comment\nexports.decodeAll = exports.Decoder.decodeAll\nexports.decodeFirst = exports.Decoder.decodeFirst\nexports.diagnose = exports.Diagnose.diagnose\nexports.encode = exports.Encoder.encode\nexports.decode = exports.Decoder.decode\n\nexports.leveldb = {\n decode: exports.Decoder.decodeAll,\n encode: exports.Encoder.encode,\n buffer: true,\n name: 'cbor'\n}\n","'use strict'\n\nconst constants = require('./constants')\nconst MT = constants.MT\nconst SIMPLE = constants.SIMPLE\nconst SYMS = constants.SYMS\n\n/**\n * A CBOR Simple Value that does not map onto a known constant.\n */\nclass Simple {\n /**\n * Creates an instance of Simple.\n *\n * @param {integer} value - the simple value's integer value\n */\n constructor (value) {\n if (typeof value !== 'number') {\n throw new Error('Invalid Simple type: ' + (typeof value))\n }\n if ((value < 0) || (value > 255) || ((value | 0) !== value)) {\n throw new Error('value must be a small positive integer: ' + value)\n }\n this.value = value\n }\n\n /**\n * Debug string for simple value\n *\n * @returns {string} simple(value)\n */\n toString () {\n return 'simple(' + this.value + ')'\n }\n\n /**\n * Debug string for simple value\n *\n * @returns {string} simple(value)\n */\n inspect () {\n return 'simple(' + this.value + ')'\n }\n\n /**\n * Push the simple value onto the CBOR stream\n *\n * @param {cbor.Encoder} gen The generator to push onto\n * @returns {number}\n */\n encodeCBOR (gen) {\n return gen._pushInt(this.value, MT.SIMPLE_FLOAT)\n }\n\n /**\n * Is the given object a Simple?\n *\n * @param {any} obj - object to test\n * @returns {bool} - is it Simple?\n */\n static isSimple (obj) {\n return obj instanceof Simple\n }\n\n /**\n * Decode from the CBOR additional information into a JavaScript value.\n * If the CBOR item has no parent, return a \"safe\" symbol instead of\n * `null` or `undefined`, so that the value can be passed through a\n * stream in object mode.\n *\n * @param {Number} val - the CBOR additional info to convert\n * @param {bool} hasParent - Does the CBOR item have a parent?\n * @returns {(null|undefined|Boolean|Symbol)} - the decoded value\n */\n static decode (val, hasParent) {\n if (hasParent == null) {\n hasParent = true\n }\n switch (val) {\n case SIMPLE.FALSE:\n return false\n case SIMPLE.TRUE:\n return true\n case SIMPLE.NULL:\n if (hasParent) {\n return null\n } else {\n return SYMS.NULL\n }\n case SIMPLE.UNDEFINED:\n if (hasParent) {\n return undefined\n } else {\n return SYMS.UNDEFINED\n }\n case -1:\n if (!hasParent) {\n throw new Error('Invalid BREAK')\n }\n return SYMS.BREAK\n default:\n return new Simple(val)\n }\n }\n}\n\nmodule.exports = Simple\n","'use strict'\n\n/**\n * A CBOR tagged item, where the tag does not have semantics specified at the\n * moment, or those semantics threw an error during parsing. Typically this will\n * be an extension point you're not yet expecting.\n */\nclass Tagged {\n /**\n * Creates an instance of Tagged.\n *\n * @param {Number} tag - the number of the tag\n * @param {any} value - the value inside the tag\n * @param {Error} err - the error that was thrown parsing the tag, or null\n */\n constructor (tag, value, err) {\n this.tag = tag\n this.value = value\n this.err = err\n if (typeof this.tag !== 'number') {\n throw new Error('Invalid tag type (' + (typeof this.tag) + ')')\n }\n if ((this.tag < 0) || ((this.tag | 0) !== this.tag)) {\n throw new Error('Tag must be a positive integer: ' + this.tag)\n }\n }\n\n /**\n * Convert to a String\n *\n * @returns {String} string of the form '1(2)'\n */\n toString () {\n return `${this.tag}(${JSON.stringify(this.value)})`\n }\n\n /**\n * Push the simple value onto the CBOR stream\n *\n * @param {cbor.Encoder} gen The generator to push onto\n * @returns {number}\n */\n encodeCBOR (gen) {\n gen._pushTag(this.tag)\n return gen.pushAny(this.value)\n }\n\n /**\n * If we have a converter for this type, do the conversion. Some converters\n * are built-in. Additional ones can be passed in. If you want to remove\n * a built-in converter, pass a converter in whose value is 'null' instead\n * of a function.\n *\n * @param {Object} converters - keys in the object are a tag number, the value\n * is a function that takes the decoded CBOR and returns a JavaScript value\n * of the appropriate type. Throw an exception in the function on errors.\n * @returns {any} - the converted item\n */\n convert (converters) {\n var er, f\n f = converters != null ? converters[this.tag] : undefined\n if (typeof f !== 'function') {\n f = Tagged['_tag' + this.tag]\n if (typeof f !== 'function') {\n return this\n }\n }\n try {\n return f.call(Tagged, this.value)\n } catch (error) {\n er = error\n this.err = er\n return this\n }\n }\n}\n\nmodule.exports = Tagged\n","'use strict'\n\nconst { Buffer } = require('buffer')\nconst Bignumber = require('bignumber.js').BigNumber\n\nconst constants = require('./constants')\nconst SHIFT32 = constants.SHIFT32\nconst SHIFT16 = constants.SHIFT16\nconst MAX_SAFE_HIGH = 0x1fffff\n\nexports.parseHalf = function parseHalf (buf) {\n var exp, mant, sign\n sign = buf[0] & 0x80 ? -1 : 1\n exp = (buf[0] & 0x7C) >> 2\n mant = ((buf[0] & 0x03) << 8) | buf[1]\n if (!exp) {\n return sign * 5.9604644775390625e-8 * mant\n } else if (exp === 0x1f) {\n return sign * (mant ? 0 / 0 : 2e308)\n } else {\n return sign * Math.pow(2, exp - 25) * (1024 + mant)\n }\n}\n\nfunction toHex (n) {\n if (n < 16) {\n return '0' + n.toString(16)\n }\n\n return n.toString(16)\n}\n\nexports.arrayBufferToBignumber = function (buf) {\n const len = buf.byteLength\n let res = ''\n for (let i = 0; i < len; i++) {\n res += toHex(buf[i])\n }\n\n return new Bignumber(res, 16)\n}\n\n// convert an Object into a Map\nexports.buildMap = (obj) => {\n const res = new Map()\n const keys = Object.keys(obj)\n const length = keys.length\n for (let i = 0; i < length; i++) {\n res.set(keys[i], obj[keys[i]])\n }\n return res\n}\n\nexports.buildInt32 = (f, g) => {\n return f * SHIFT16 + g\n}\n\nexports.buildInt64 = (f1, f2, g1, g2) => {\n const f = exports.buildInt32(f1, f2)\n const g = exports.buildInt32(g1, g2)\n\n if (f > MAX_SAFE_HIGH) {\n return new Bignumber(f).times(SHIFT32).plus(g)\n } else {\n return (f * SHIFT32) + g\n }\n}\n\nexports.writeHalf = function writeHalf (buf, half) {\n // assume 0, -0, NaN, Infinity, and -Infinity have already been caught\n\n // HACK: everyone settle in. This isn't going to be pretty.\n // Translate cn-cbor's C code (from Carsten Borman):\n\n // uint32_t be32;\n // uint16_t be16, u16;\n // union {\n // float f;\n // uint32_t u;\n // } u32;\n // u32.f = float_val;\n\n const u32 = Buffer.allocUnsafe(4)\n u32.writeFloatBE(half, 0)\n const u = u32.readUInt32BE(0)\n\n // if ((u32.u & 0x1FFF) == 0) { /* worth trying half */\n\n // hildjj: If the lower 13 bits are 0, we won't lose anything in the conversion\n if ((u & 0x1FFF) !== 0) {\n return false\n }\n\n // int s16 = (u32.u >> 16) & 0x8000;\n // int exp = (u32.u >> 23) & 0xff;\n // int mant = u32.u & 0x7fffff;\n\n var s16 = (u >> 16) & 0x8000 // top bit is sign\n const exp = (u >> 23) & 0xff // then 5 bits of exponent\n const mant = u & 0x7fffff\n\n // if (exp == 0 && mant == 0)\n // ; /* 0.0, -0.0 */\n\n // hildjj: zeros already handled. Assert if you don't believe me.\n\n // else if (exp >= 113 && exp <= 142) /* normalized */\n // s16 += ((exp - 112) << 10) + (mant >> 13);\n if ((exp >= 113) && (exp <= 142)) {\n s16 += ((exp - 112) << 10) + (mant >> 13)\n\n // else if (exp >= 103 && exp < 113) { /* denorm, exp16 = 0 */\n // if (mant & ((1 << (126 - exp)) - 1))\n // goto float32; /* loss of precision */\n // s16 += ((mant + 0x800000) >> (126 - exp));\n } else if ((exp >= 103) && (exp < 113)) {\n if (mant & ((1 << (126 - exp)) - 1)) {\n return false\n }\n s16 += ((mant + 0x800000) >> (126 - exp))\n\n // } else if (exp == 255 && mant == 0) { /* Inf */\n // s16 += 0x7c00;\n\n // hildjj: Infinity already handled\n\n // } else\n // goto float32; /* loss of range */\n } else {\n return false\n }\n\n // ensure_writable(3);\n // u16 = s16;\n // be16 = hton16p((const uint8_t*)&u16);\n buf.writeUInt16BE(s16, 0)\n return true\n}\n\nexports.keySorter = function (a, b) {\n var lenA = a[0].byteLength\n var lenB = b[0].byteLength\n\n if (lenA > lenB) {\n return 1\n }\n\n if (lenB > lenA) {\n return -1\n }\n\n return a[0].compare(b[0])\n}\n\n// Adapted from http://www.2ality.com/2012/03/signedzero.html\nexports.isNegativeZero = (x) => {\n return x === 0 && (1 / x < 0)\n}\n\nexports.nextPowerOf2 = (n) => {\n let count = 0\n // First n in the below condition is for\n // the case where n is 0\n if (n && !(n & (n - 1))) {\n return n\n }\n\n while (n !== 0) {\n n >>= 1\n count += 1\n }\n\n return 1 << count\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nvar K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n var arr = new Uint8Array(1)\n var proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n var buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n var valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n var b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(\n value[Symbol.toPrimitive]('string'), encodingOrOffset, length\n )\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n var length = byteLength(string, encoding) | 0\n var buf = createBuffer(length)\n\n var actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n var copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n var buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n Buffer.from(buf).copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n var len = string.length\n var mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n var strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (var i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n var len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nvar hexSliceLookupTable = (function () {\n var alphabet = '0123456789abcdef'\n var table = new Array(256)\n for (var i = 0; i < 16; ++i) {\n var i16 = i * 16\n for (var j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","'use strict';\n\nconst {\n URLWithLegacySupport,\n format,\n URLSearchParams,\n defaultBase\n} = require('./src/url');\nconst relative = require('./src/relative');\n\nmodule.exports = {\n URL: URLWithLegacySupport,\n URLSearchParams,\n format,\n relative,\n defaultBase\n};\n","'use strict';\n\nconst { URLWithLegacySupport, format } = require('./url');\n\nmodule.exports = (url, location = {}, protocolMap = {}, defaultProtocol) => {\n let protocol = location.protocol ?\n location.protocol.replace(':', '') :\n 'http';\n\n // Check protocol map\n protocol = (protocolMap[protocol] || defaultProtocol || protocol) + ':';\n let urlParsed;\n\n try {\n urlParsed = new URLWithLegacySupport(url);\n } catch (err) {\n urlParsed = {};\n }\n\n const base = Object.assign({}, location, {\n protocol: protocol || urlParsed.protocol,\n host: location.host || urlParsed.host\n });\n\n return new URLWithLegacySupport(url, format(base)).toString();\n};\n","'use strict';\n\nconst defaultBase = self.location ?\n self.location.protocol + '//' + self.location.host :\n '';\nconst URL = self.URL;\n\nclass URLWithLegacySupport {\n constructor(url = '', base = defaultBase) {\n this.super = new URL(url, base);\n this.path = this.pathname + this.search;\n this.auth =\n this.username && this.password ?\n this.username + ':' + this.password :\n null;\n\n this.query =\n this.search && this.search.startsWith('?') ?\n this.search.slice(1) :\n null;\n }\n\n get hash() {\n return this.super.hash;\n }\n get host() {\n return this.super.host;\n }\n get hostname() {\n return this.super.hostname;\n }\n get href() {\n return this.super.href;\n }\n get origin() {\n return this.super.origin;\n }\n get password() {\n return this.super.password;\n }\n get pathname() {\n return this.super.pathname;\n }\n get port() {\n return this.super.port;\n }\n get protocol() {\n return this.super.protocol;\n }\n get search() {\n return this.super.search;\n }\n get searchParams() {\n return this.super.searchParams;\n }\n get username() {\n return this.super.username;\n }\n\n set hash(hash) {\n this.super.hash = hash;\n }\n set host(host) {\n this.super.host = host;\n }\n set hostname(hostname) {\n this.super.hostname = hostname;\n }\n set href(href) {\n this.super.href = href;\n }\n set origin(origin) {\n this.super.origin = origin;\n }\n set password(password) {\n this.super.password = password;\n }\n set pathname(pathname) {\n this.super.pathname = pathname;\n }\n set port(port) {\n this.super.port = port;\n }\n set protocol(protocol) {\n this.super.protocol = protocol;\n }\n set search(search) {\n this.super.search = search;\n }\n set searchParams(searchParams) {\n this.super.searchParams = searchParams;\n }\n set username(username) {\n this.super.username = username;\n }\n\n createObjectURL(o) {\n return this.super.createObjectURL(o);\n }\n revokeObjectURL(o) {\n this.super.revokeObjectURL(o);\n }\n toJSON() {\n return this.super.toJSON();\n }\n toString() {\n return this.super.toString();\n }\n format() {\n return this.toString();\n }\n}\n\nfunction format(obj) {\n if (typeof obj === 'string') {\n const url = new URL(obj);\n\n return url.toString();\n }\n\n if (!(obj instanceof URL)) {\n const userPass =\n obj.username && obj.password ?\n `${obj.username}:${obj.password}@` :\n '';\n const auth = obj.auth ? obj.auth + '@' : '';\n const port = obj.port ? ':' + obj.port : '';\n const protocol = obj.protocol ? obj.protocol + '//' : '';\n const host = obj.host || '';\n const hostname = obj.hostname || '';\n const search = obj.search || (obj.query ? '?' + obj.query : '');\n const hash = obj.hash || '';\n const pathname = obj.pathname || '';\n const path = obj.path || pathname + search;\n\n return `${protocol}${userPass || auth}${host ||\n hostname + port}${path}${hash}`;\n }\n}\n\nmodule.exports = {\n URLWithLegacySupport,\n URLSearchParams: self.URLSearchParams,\n defaultBase,\n format\n};\n","/**\n * [js-sha256]{@link https://github.com/emn178/js-sha256}\n *\n * @version 0.9.0\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2014-2017\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var ERROR = 'input is invalid type';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA256_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA256_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA256_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA256_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var EXTRA = [-2147483648, 8388608, 32768, 128];\n var SHIFT = [24, 16, 8, 0];\n var K = [\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 var OUTPUT_TYPES = ['hex', 'array', 'digest', 'arrayBuffer'];\n\n var blocks = [];\n\n if (root.JS_SHA256_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n if (ARRAY_BUFFER && (root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n var createOutputMethod = function (outputType, is224) {\n return function (message) {\n return new Sha256(is224, true).update(message)[outputType]();\n };\n };\n\n var createMethod = function (is224) {\n var method = createOutputMethod('hex', is224);\n if (NODE_JS) {\n method = nodeWrap(method, is224);\n }\n method.create = function () {\n return new Sha256(is224);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createOutputMethod(type, is224);\n }\n return method;\n };\n\n var nodeWrap = function (method, is224) {\n var crypto = eval(\"require('crypto')\");\n var Buffer = eval(\"require('buffer').Buffer\");\n var algorithm = is224 ? 'sha224' : 'sha256';\n var nodeMethod = function (message) {\n if (typeof message === 'string') {\n return crypto.createHash(algorithm).update(message, 'utf8').digest('hex');\n } else {\n if (message === null || message === undefined) {\n throw new Error(ERROR);\n } else if (message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n }\n }\n if (Array.isArray(message) || ArrayBuffer.isView(message) ||\n message.constructor === Buffer) {\n return crypto.createHash(algorithm).update(new Buffer(message)).digest('hex');\n } else {\n return method(message);\n }\n };\n return nodeMethod;\n };\n\n var createHmacOutputMethod = function (outputType, is224) {\n return function (key, message) {\n return new HmacSha256(key, is224, true).update(message)[outputType]();\n };\n };\n\n var createHmacMethod = function (is224) {\n var method = createHmacOutputMethod('hex', is224);\n method.create = function (key) {\n return new HmacSha256(key, is224);\n };\n method.update = function (key, message) {\n return method.create(key).update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createHmacOutputMethod(type, is224);\n }\n return method;\n };\n\n function Sha256(is224, sharedMemory) {\n if (sharedMemory) {\n blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n this.blocks = blocks;\n } else {\n this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n }\n\n if (is224) {\n this.h0 = 0xc1059ed8;\n this.h1 = 0x367cd507;\n this.h2 = 0x3070dd17;\n this.h3 = 0xf70e5939;\n this.h4 = 0xffc00b31;\n this.h5 = 0x68581511;\n this.h6 = 0x64f98fa7;\n this.h7 = 0xbefa4fa4;\n } else { // 256\n this.h0 = 0x6a09e667;\n this.h1 = 0xbb67ae85;\n this.h2 = 0x3c6ef372;\n this.h3 = 0xa54ff53a;\n this.h4 = 0x510e527f;\n this.h5 = 0x9b05688c;\n this.h6 = 0x1f83d9ab;\n this.h7 = 0x5be0cd19;\n }\n\n this.block = this.start = this.bytes = this.hBytes = 0;\n this.finalized = this.hashed = false;\n this.first = true;\n this.is224 = is224;\n }\n\n Sha256.prototype.update = function (message) {\n if (this.finalized) {\n return;\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n notString = true;\n }\n var code, index = 0, i, length = message.length, blocks = this.blocks;\n\n while (index < length) {\n if (this.hashed) {\n this.hashed = false;\n blocks[0] = this.block;\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n\n if (notString) {\n for (i = this.start; index < length && i < 64; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < 64; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n\n this.lastByteIndex = i;\n this.bytes += i - this.start;\n if (i >= 64) {\n this.block = blocks[16];\n this.start = i - 64;\n this.hash();\n this.hashed = true;\n } else {\n this.start = i;\n }\n }\n if (this.bytes > 4294967295) {\n this.hBytes += this.bytes / 4294967296 << 0;\n this.bytes = this.bytes % 4294967296;\n }\n return this;\n };\n\n Sha256.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex;\n blocks[16] = this.block;\n blocks[i >> 2] |= EXTRA[i & 3];\n this.block = blocks[16];\n if (i >= 56) {\n if (!this.hashed) {\n this.hash();\n }\n blocks[0] = this.block;\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n blocks[14] = this.hBytes << 3 | this.bytes >>> 29;\n blocks[15] = this.bytes << 3;\n this.hash();\n };\n\n Sha256.prototype.hash = function () {\n var a = this.h0, b = this.h1, c = this.h2, d = this.h3, e = this.h4, f = this.h5, g = this.h6,\n h = this.h7, blocks = this.blocks, j, s0, s1, maj, t1, t2, ch, ab, da, cd, bc;\n\n for (j = 16; j < 64; ++j) {\n // rightrotate\n t1 = blocks[j - 15];\n s0 = ((t1 >>> 7) | (t1 << 25)) ^ ((t1 >>> 18) | (t1 << 14)) ^ (t1 >>> 3);\n t1 = blocks[j - 2];\n s1 = ((t1 >>> 17) | (t1 << 15)) ^ ((t1 >>> 19) | (t1 << 13)) ^ (t1 >>> 10);\n blocks[j] = blocks[j - 16] + s0 + blocks[j - 7] + s1 << 0;\n }\n\n bc = b & c;\n for (j = 0; j < 64; j += 4) {\n if (this.first) {\n if (this.is224) {\n ab = 300032;\n t1 = blocks[0] - 1413257819;\n h = t1 - 150054599 << 0;\n d = t1 + 24177077 << 0;\n } else {\n ab = 704751109;\n t1 = blocks[0] - 210244248;\n h = t1 - 1521486534 << 0;\n d = t1 + 143694565 << 0;\n }\n this.first = false;\n } else {\n s0 = ((a >>> 2) | (a << 30)) ^ ((a >>> 13) | (a << 19)) ^ ((a >>> 22) | (a << 10));\n s1 = ((e >>> 6) | (e << 26)) ^ ((e >>> 11) | (e << 21)) ^ ((e >>> 25) | (e << 7));\n ab = a & b;\n maj = ab ^ (a & c) ^ bc;\n ch = (e & f) ^ (~e & g);\n t1 = h + s1 + ch + K[j] + blocks[j];\n t2 = s0 + maj;\n h = d + t1 << 0;\n d = t1 + t2 << 0;\n }\n s0 = ((d >>> 2) | (d << 30)) ^ ((d >>> 13) | (d << 19)) ^ ((d >>> 22) | (d << 10));\n s1 = ((h >>> 6) | (h << 26)) ^ ((h >>> 11) | (h << 21)) ^ ((h >>> 25) | (h << 7));\n da = d & a;\n maj = da ^ (d & b) ^ ab;\n ch = (h & e) ^ (~h & f);\n t1 = g + s1 + ch + K[j + 1] + blocks[j + 1];\n t2 = s0 + maj;\n g = c + t1 << 0;\n c = t1 + t2 << 0;\n s0 = ((c >>> 2) | (c << 30)) ^ ((c >>> 13) | (c << 19)) ^ ((c >>> 22) | (c << 10));\n s1 = ((g >>> 6) | (g << 26)) ^ ((g >>> 11) | (g << 21)) ^ ((g >>> 25) | (g << 7));\n cd = c & d;\n maj = cd ^ (c & a) ^ da;\n ch = (g & h) ^ (~g & e);\n t1 = f + s1 + ch + K[j + 2] + blocks[j + 2];\n t2 = s0 + maj;\n f = b + t1 << 0;\n b = t1 + t2 << 0;\n s0 = ((b >>> 2) | (b << 30)) ^ ((b >>> 13) | (b << 19)) ^ ((b >>> 22) | (b << 10));\n s1 = ((f >>> 6) | (f << 26)) ^ ((f >>> 11) | (f << 21)) ^ ((f >>> 25) | (f << 7));\n bc = b & c;\n maj = bc ^ (b & d) ^ cd;\n ch = (f & g) ^ (~f & h);\n t1 = e + s1 + ch + K[j + 3] + blocks[j + 3];\n t2 = s0 + maj;\n e = a + t1 << 0;\n a = t1 + t2 << 0;\n }\n\n this.h0 = this.h0 + a << 0;\n this.h1 = this.h1 + b << 0;\n this.h2 = this.h2 + c << 0;\n this.h3 = this.h3 + d << 0;\n this.h4 = this.h4 + e << 0;\n this.h5 = this.h5 + f << 0;\n this.h6 = this.h6 + g << 0;\n this.h7 = this.h7 + h << 0;\n };\n\n Sha256.prototype.hex = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var hex = HEX_CHARS[(h0 >> 28) & 0x0F] + HEX_CHARS[(h0 >> 24) & 0x0F] +\n HEX_CHARS[(h0 >> 20) & 0x0F] + HEX_CHARS[(h0 >> 16) & 0x0F] +\n HEX_CHARS[(h0 >> 12) & 0x0F] + HEX_CHARS[(h0 >> 8) & 0x0F] +\n HEX_CHARS[(h0 >> 4) & 0x0F] + HEX_CHARS[h0 & 0x0F] +\n HEX_CHARS[(h1 >> 28) & 0x0F] + HEX_CHARS[(h1 >> 24) & 0x0F] +\n HEX_CHARS[(h1 >> 20) & 0x0F] + HEX_CHARS[(h1 >> 16) & 0x0F] +\n HEX_CHARS[(h1 >> 12) & 0x0F] + HEX_CHARS[(h1 >> 8) & 0x0F] +\n HEX_CHARS[(h1 >> 4) & 0x0F] + HEX_CHARS[h1 & 0x0F] +\n HEX_CHARS[(h2 >> 28) & 0x0F] + HEX_CHARS[(h2 >> 24) & 0x0F] +\n HEX_CHARS[(h2 >> 20) & 0x0F] + HEX_CHARS[(h2 >> 16) & 0x0F] +\n HEX_CHARS[(h2 >> 12) & 0x0F] + HEX_CHARS[(h2 >> 8) & 0x0F] +\n HEX_CHARS[(h2 >> 4) & 0x0F] + HEX_CHARS[h2 & 0x0F] +\n HEX_CHARS[(h3 >> 28) & 0x0F] + HEX_CHARS[(h3 >> 24) & 0x0F] +\n HEX_CHARS[(h3 >> 20) & 0x0F] + HEX_CHARS[(h3 >> 16) & 0x0F] +\n HEX_CHARS[(h3 >> 12) & 0x0F] + HEX_CHARS[(h3 >> 8) & 0x0F] +\n HEX_CHARS[(h3 >> 4) & 0x0F] + HEX_CHARS[h3 & 0x0F] +\n HEX_CHARS[(h4 >> 28) & 0x0F] + HEX_CHARS[(h4 >> 24) & 0x0F] +\n HEX_CHARS[(h4 >> 20) & 0x0F] + HEX_CHARS[(h4 >> 16) & 0x0F] +\n HEX_CHARS[(h4 >> 12) & 0x0F] + HEX_CHARS[(h4 >> 8) & 0x0F] +\n HEX_CHARS[(h4 >> 4) & 0x0F] + HEX_CHARS[h4 & 0x0F] +\n HEX_CHARS[(h5 >> 28) & 0x0F] + HEX_CHARS[(h5 >> 24) & 0x0F] +\n HEX_CHARS[(h5 >> 20) & 0x0F] + HEX_CHARS[(h5 >> 16) & 0x0F] +\n HEX_CHARS[(h5 >> 12) & 0x0F] + HEX_CHARS[(h5 >> 8) & 0x0F] +\n HEX_CHARS[(h5 >> 4) & 0x0F] + HEX_CHARS[h5 & 0x0F] +\n HEX_CHARS[(h6 >> 28) & 0x0F] + HEX_CHARS[(h6 >> 24) & 0x0F] +\n HEX_CHARS[(h6 >> 20) & 0x0F] + HEX_CHARS[(h6 >> 16) & 0x0F] +\n HEX_CHARS[(h6 >> 12) & 0x0F] + HEX_CHARS[(h6 >> 8) & 0x0F] +\n HEX_CHARS[(h6 >> 4) & 0x0F] + HEX_CHARS[h6 & 0x0F];\n if (!this.is224) {\n hex += HEX_CHARS[(h7 >> 28) & 0x0F] + HEX_CHARS[(h7 >> 24) & 0x0F] +\n HEX_CHARS[(h7 >> 20) & 0x0F] + HEX_CHARS[(h7 >> 16) & 0x0F] +\n HEX_CHARS[(h7 >> 12) & 0x0F] + HEX_CHARS[(h7 >> 8) & 0x0F] +\n HEX_CHARS[(h7 >> 4) & 0x0F] + HEX_CHARS[h7 & 0x0F];\n }\n return hex;\n };\n\n Sha256.prototype.toString = Sha256.prototype.hex;\n\n Sha256.prototype.digest = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var arr = [\n (h0 >> 24) & 0xFF, (h0 >> 16) & 0xFF, (h0 >> 8) & 0xFF, h0 & 0xFF,\n (h1 >> 24) & 0xFF, (h1 >> 16) & 0xFF, (h1 >> 8) & 0xFF, h1 & 0xFF,\n (h2 >> 24) & 0xFF, (h2 >> 16) & 0xFF, (h2 >> 8) & 0xFF, h2 & 0xFF,\n (h3 >> 24) & 0xFF, (h3 >> 16) & 0xFF, (h3 >> 8) & 0xFF, h3 & 0xFF,\n (h4 >> 24) & 0xFF, (h4 >> 16) & 0xFF, (h4 >> 8) & 0xFF, h4 & 0xFF,\n (h5 >> 24) & 0xFF, (h5 >> 16) & 0xFF, (h5 >> 8) & 0xFF, h5 & 0xFF,\n (h6 >> 24) & 0xFF, (h6 >> 16) & 0xFF, (h6 >> 8) & 0xFF, h6 & 0xFF\n ];\n if (!this.is224) {\n arr.push((h7 >> 24) & 0xFF, (h7 >> 16) & 0xFF, (h7 >> 8) & 0xFF, h7 & 0xFF);\n }\n return arr;\n };\n\n Sha256.prototype.array = Sha256.prototype.digest;\n\n Sha256.prototype.arrayBuffer = function () {\n this.finalize();\n\n var buffer = new ArrayBuffer(this.is224 ? 28 : 32);\n var dataView = new DataView(buffer);\n dataView.setUint32(0, this.h0);\n dataView.setUint32(4, this.h1);\n dataView.setUint32(8, this.h2);\n dataView.setUint32(12, this.h3);\n dataView.setUint32(16, this.h4);\n dataView.setUint32(20, this.h5);\n dataView.setUint32(24, this.h6);\n if (!this.is224) {\n dataView.setUint32(28, this.h7);\n }\n return buffer;\n };\n\n function HmacSha256(key, is224, sharedMemory) {\n var i, type = typeof key;\n if (type === 'string') {\n var bytes = [], length = key.length, index = 0, code;\n for (i = 0; i < length; ++i) {\n code = key.charCodeAt(i);\n if (code < 0x80) {\n bytes[index++] = code;\n } else if (code < 0x800) {\n bytes[index++] = (0xc0 | (code >> 6));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes[index++] = (0xe0 | (code >> 12));\n bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (key.charCodeAt(++i) & 0x3ff));\n bytes[index++] = (0xf0 | (code >> 18));\n bytes[index++] = (0x80 | ((code >> 12) & 0x3f));\n bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n }\n }\n key = bytes;\n } else {\n if (type === 'object') {\n if (key === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && key.constructor === ArrayBuffer) {\n key = new Uint8Array(key);\n } else if (!Array.isArray(key)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(key)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n }\n\n if (key.length > 64) {\n key = (new Sha256(is224, true)).update(key).array();\n }\n\n var oKeyPad = [], iKeyPad = [];\n for (i = 0; i < 64; ++i) {\n var b = key[i] || 0;\n oKeyPad[i] = 0x5c ^ b;\n iKeyPad[i] = 0x36 ^ b;\n }\n\n Sha256.call(this, is224, sharedMemory);\n\n this.update(iKeyPad);\n this.oKeyPad = oKeyPad;\n this.inner = true;\n this.sharedMemory = sharedMemory;\n }\n HmacSha256.prototype = new Sha256();\n\n HmacSha256.prototype.finalize = function () {\n Sha256.prototype.finalize.call(this);\n if (this.inner) {\n this.inner = false;\n var innerHash = this.array();\n Sha256.call(this, this.is224, this.sharedMemory);\n this.update(this.oKeyPad);\n this.update(innerHash);\n Sha256.prototype.finalize.call(this);\n }\n };\n\n var exports = createMethod();\n exports.sha256 = exports;\n exports.sha224 = createMethod(true);\n exports.sha256.hmac = createHmacMethod();\n exports.sha224.hmac = createHmacMethod(true);\n\n if (COMMON_JS) {\n module.exports = exports;\n } else {\n root.sha256 = exports.sha256;\n root.sha224 = exports.sha224;\n if (AMD) {\n define(function () {\n return exports;\n });\n }\n }\n})();\n","'use strict';\n\n/**\n * @param typeMap [Object] Map of MIME type -> Array[extensions]\n * @param ...\n */\nfunction Mime() {\n this._types = Object.create(null);\n this._extensions = Object.create(null);\n\n for (let i = 0; i < arguments.length; i++) {\n this.define(arguments[i]);\n }\n\n this.define = this.define.bind(this);\n this.getType = this.getType.bind(this);\n this.getExtension = this.getExtension.bind(this);\n}\n\n/**\n * Define mimetype -> extension mappings. Each key is a mime-type that maps\n * to an array of extensions associated with the type. The first extension is\n * used as the default extension for the type.\n *\n * e.g. mime.define({'audio/ogg', ['oga', 'ogg', 'spx']});\n *\n * If a type declares an extension that has already been defined, an error will\n * be thrown. To suppress this error and force the extension to be associated\n * with the new type, pass `force`=true. Alternatively, you may prefix the\n * extension with \"*\" to map the type to extension, without mapping the\n * extension to the type.\n *\n * e.g. mime.define({'audio/wav', ['wav']}, {'audio/x-wav', ['*wav']});\n *\n *\n * @param map (Object) type definitions\n * @param force (Boolean) if true, force overriding of existing definitions\n */\nMime.prototype.define = function(typeMap, force) {\n for (let type in typeMap) {\n let extensions = typeMap[type].map(function(t) {\n return t.toLowerCase();\n });\n type = type.toLowerCase();\n\n for (let i = 0; i < extensions.length; i++) {\n const ext = extensions[i];\n\n // '*' prefix = not the preferred type for this extension. So fixup the\n // extension, and skip it.\n if (ext[0] === '*') {\n continue;\n }\n\n if (!force && (ext in this._types)) {\n throw new Error(\n 'Attempt to change mapping for \"' + ext +\n '\" extension from \"' + this._types[ext] + '\" to \"' + type +\n '\". Pass `force=true` to allow this, otherwise remove \"' + ext +\n '\" from the list of extensions for \"' + type + '\".'\n );\n }\n\n this._types[ext] = type;\n }\n\n // Use first extension as default\n if (force || !this._extensions[type]) {\n const ext = extensions[0];\n this._extensions[type] = (ext[0] !== '*') ? ext : ext.substr(1);\n }\n }\n};\n\n/**\n * Lookup a mime type based on extension\n */\nMime.prototype.getType = function(path) {\n path = String(path);\n let last = path.replace(/^.*[/\\\\]/, '').toLowerCase();\n let ext = last.replace(/^.*\\./, '').toLowerCase();\n\n let hasPath = last.length < path.length;\n let hasDot = ext.length < last.length - 1;\n\n return (hasDot || !hasPath) && this._types[ext] || null;\n};\n\n/**\n * Return file extension associated with a mime type\n */\nMime.prototype.getExtension = function(type) {\n type = /^\\s*([^;\\s]*)/.test(type) && RegExp.$1;\n return type && this._extensions[type.toLowerCase()] || null;\n};\n\nmodule.exports = Mime;\n","'use strict';\n\nlet Mime = require('./Mime');\nmodule.exports = new Mime(require('./types/standard'));\n","module.exports = {\"application/andrew-inset\":[\"ez\"],\"application/applixware\":[\"aw\"],\"application/atom+xml\":[\"atom\"],\"application/atomcat+xml\":[\"atomcat\"],\"application/atomdeleted+xml\":[\"atomdeleted\"],\"application/atomsvc+xml\":[\"atomsvc\"],\"application/atsc-dwd+xml\":[\"dwd\"],\"application/atsc-held+xml\":[\"held\"],\"application/atsc-rsat+xml\":[\"rsat\"],\"application/bdoc\":[\"bdoc\"],\"application/calendar+xml\":[\"xcs\"],\"application/ccxml+xml\":[\"ccxml\"],\"application/cdfx+xml\":[\"cdfx\"],\"application/cdmi-capability\":[\"cdmia\"],\"application/cdmi-container\":[\"cdmic\"],\"application/cdmi-domain\":[\"cdmid\"],\"application/cdmi-object\":[\"cdmio\"],\"application/cdmi-queue\":[\"cdmiq\"],\"application/cu-seeme\":[\"cu\"],\"application/dash+xml\":[\"mpd\"],\"application/davmount+xml\":[\"davmount\"],\"application/docbook+xml\":[\"dbk\"],\"application/dssc+der\":[\"dssc\"],\"application/dssc+xml\":[\"xdssc\"],\"application/ecmascript\":[\"es\",\"ecma\"],\"application/emma+xml\":[\"emma\"],\"application/emotionml+xml\":[\"emotionml\"],\"application/epub+zip\":[\"epub\"],\"application/exi\":[\"exi\"],\"application/express\":[\"exp\"],\"application/fdt+xml\":[\"fdt\"],\"application/font-tdpfr\":[\"pfr\"],\"application/geo+json\":[\"geojson\"],\"application/gml+xml\":[\"gml\"],\"application/gpx+xml\":[\"gpx\"],\"application/gxf\":[\"gxf\"],\"application/gzip\":[\"gz\"],\"application/hjson\":[\"hjson\"],\"application/hyperstudio\":[\"stk\"],\"application/inkml+xml\":[\"ink\",\"inkml\"],\"application/ipfix\":[\"ipfix\"],\"application/its+xml\":[\"its\"],\"application/java-archive\":[\"jar\",\"war\",\"ear\"],\"application/java-serialized-object\":[\"ser\"],\"application/java-vm\":[\"class\"],\"application/javascript\":[\"js\",\"mjs\"],\"application/json\":[\"json\",\"map\"],\"application/json5\":[\"json5\"],\"application/jsonml+json\":[\"jsonml\"],\"application/ld+json\":[\"jsonld\"],\"application/lgr+xml\":[\"lgr\"],\"application/lost+xml\":[\"lostxml\"],\"application/mac-binhex40\":[\"hqx\"],\"application/mac-compactpro\":[\"cpt\"],\"application/mads+xml\":[\"mads\"],\"application/manifest+json\":[\"webmanifest\"],\"application/marc\":[\"mrc\"],\"application/marcxml+xml\":[\"mrcx\"],\"application/mathematica\":[\"ma\",\"nb\",\"mb\"],\"application/mathml+xml\":[\"mathml\"],\"application/mbox\":[\"mbox\"],\"application/mediaservercontrol+xml\":[\"mscml\"],\"application/metalink+xml\":[\"metalink\"],\"application/metalink4+xml\":[\"meta4\"],\"application/mets+xml\":[\"mets\"],\"application/mmt-aei+xml\":[\"maei\"],\"application/mmt-usd+xml\":[\"musd\"],\"application/mods+xml\":[\"mods\"],\"application/mp21\":[\"m21\",\"mp21\"],\"application/mp4\":[\"mp4s\",\"m4p\"],\"application/msword\":[\"doc\",\"dot\"],\"application/mxf\":[\"mxf\"],\"application/n-quads\":[\"nq\"],\"application/n-triples\":[\"nt\"],\"application/node\":[\"cjs\"],\"application/octet-stream\":[\"bin\",\"dms\",\"lrf\",\"mar\",\"so\",\"dist\",\"distz\",\"pkg\",\"bpk\",\"dump\",\"elc\",\"deploy\",\"exe\",\"dll\",\"deb\",\"dmg\",\"iso\",\"img\",\"msi\",\"msp\",\"msm\",\"buffer\"],\"application/oda\":[\"oda\"],\"application/oebps-package+xml\":[\"opf\"],\"application/ogg\":[\"ogx\"],\"application/omdoc+xml\":[\"omdoc\"],\"application/onenote\":[\"onetoc\",\"onetoc2\",\"onetmp\",\"onepkg\"],\"application/oxps\":[\"oxps\"],\"application/p2p-overlay+xml\":[\"relo\"],\"application/patch-ops-error+xml\":[\"xer\"],\"application/pdf\":[\"pdf\"],\"application/pgp-encrypted\":[\"pgp\"],\"application/pgp-signature\":[\"asc\",\"sig\"],\"application/pics-rules\":[\"prf\"],\"application/pkcs10\":[\"p10\"],\"application/pkcs7-mime\":[\"p7m\",\"p7c\"],\"application/pkcs7-signature\":[\"p7s\"],\"application/pkcs8\":[\"p8\"],\"application/pkix-attr-cert\":[\"ac\"],\"application/pkix-cert\":[\"cer\"],\"application/pkix-crl\":[\"crl\"],\"application/pkix-pkipath\":[\"pkipath\"],\"application/pkixcmp\":[\"pki\"],\"application/pls+xml\":[\"pls\"],\"application/postscript\":[\"ai\",\"eps\",\"ps\"],\"application/provenance+xml\":[\"provx\"],\"application/pskc+xml\":[\"pskcxml\"],\"application/raml+yaml\":[\"raml\"],\"application/rdf+xml\":[\"rdf\",\"owl\"],\"application/reginfo+xml\":[\"rif\"],\"application/relax-ng-compact-syntax\":[\"rnc\"],\"application/resource-lists+xml\":[\"rl\"],\"application/resource-lists-diff+xml\":[\"rld\"],\"application/rls-services+xml\":[\"rs\"],\"application/route-apd+xml\":[\"rapd\"],\"application/route-s-tsid+xml\":[\"sls\"],\"application/route-usd+xml\":[\"rusd\"],\"application/rpki-ghostbusters\":[\"gbr\"],\"application/rpki-manifest\":[\"mft\"],\"application/rpki-roa\":[\"roa\"],\"application/rsd+xml\":[\"rsd\"],\"application/rss+xml\":[\"rss\"],\"application/rtf\":[\"rtf\"],\"application/sbml+xml\":[\"sbml\"],\"application/scvp-cv-request\":[\"scq\"],\"application/scvp-cv-response\":[\"scs\"],\"application/scvp-vp-request\":[\"spq\"],\"application/scvp-vp-response\":[\"spp\"],\"application/sdp\":[\"sdp\"],\"application/senml+xml\":[\"senmlx\"],\"application/sensml+xml\":[\"sensmlx\"],\"application/set-payment-initiation\":[\"setpay\"],\"application/set-registration-initiation\":[\"setreg\"],\"application/shf+xml\":[\"shf\"],\"application/sieve\":[\"siv\",\"sieve\"],\"application/smil+xml\":[\"smi\",\"smil\"],\"application/sparql-query\":[\"rq\"],\"application/sparql-results+xml\":[\"srx\"],\"application/srgs\":[\"gram\"],\"application/srgs+xml\":[\"grxml\"],\"application/sru+xml\":[\"sru\"],\"application/ssdl+xml\":[\"ssdl\"],\"application/ssml+xml\":[\"ssml\"],\"application/swid+xml\":[\"swidtag\"],\"application/tei+xml\":[\"tei\",\"teicorpus\"],\"application/thraud+xml\":[\"tfi\"],\"application/timestamped-data\":[\"tsd\"],\"application/toml\":[\"toml\"],\"application/trig\":[\"trig\"],\"application/ttml+xml\":[\"ttml\"],\"application/ubjson\":[\"ubj\"],\"application/urc-ressheet+xml\":[\"rsheet\"],\"application/urc-targetdesc+xml\":[\"td\"],\"application/voicexml+xml\":[\"vxml\"],\"application/wasm\":[\"wasm\"],\"application/widget\":[\"wgt\"],\"application/winhlp\":[\"hlp\"],\"application/wsdl+xml\":[\"wsdl\"],\"application/wspolicy+xml\":[\"wspolicy\"],\"application/xaml+xml\":[\"xaml\"],\"application/xcap-att+xml\":[\"xav\"],\"application/xcap-caps+xml\":[\"xca\"],\"application/xcap-diff+xml\":[\"xdf\"],\"application/xcap-el+xml\":[\"xel\"],\"application/xcap-ns+xml\":[\"xns\"],\"application/xenc+xml\":[\"xenc\"],\"application/xhtml+xml\":[\"xhtml\",\"xht\"],\"application/xliff+xml\":[\"xlf\"],\"application/xml\":[\"xml\",\"xsl\",\"xsd\",\"rng\"],\"application/xml-dtd\":[\"dtd\"],\"application/xop+xml\":[\"xop\"],\"application/xproc+xml\":[\"xpl\"],\"application/xslt+xml\":[\"*xsl\",\"xslt\"],\"application/xspf+xml\":[\"xspf\"],\"application/xv+xml\":[\"mxml\",\"xhvml\",\"xvml\",\"xvm\"],\"application/yang\":[\"yang\"],\"application/yin+xml\":[\"yin\"],\"application/zip\":[\"zip\"],\"audio/3gpp\":[\"*3gpp\"],\"audio/adpcm\":[\"adp\"],\"audio/amr\":[\"amr\"],\"audio/basic\":[\"au\",\"snd\"],\"audio/midi\":[\"mid\",\"midi\",\"kar\",\"rmi\"],\"audio/mobile-xmf\":[\"mxmf\"],\"audio/mp3\":[\"*mp3\"],\"audio/mp4\":[\"m4a\",\"mp4a\"],\"audio/mpeg\":[\"mpga\",\"mp2\",\"mp2a\",\"mp3\",\"m2a\",\"m3a\"],\"audio/ogg\":[\"oga\",\"ogg\",\"spx\",\"opus\"],\"audio/s3m\":[\"s3m\"],\"audio/silk\":[\"sil\"],\"audio/wav\":[\"wav\"],\"audio/wave\":[\"*wav\"],\"audio/webm\":[\"weba\"],\"audio/xm\":[\"xm\"],\"font/collection\":[\"ttc\"],\"font/otf\":[\"otf\"],\"font/ttf\":[\"ttf\"],\"font/woff\":[\"woff\"],\"font/woff2\":[\"woff2\"],\"image/aces\":[\"exr\"],\"image/apng\":[\"apng\"],\"image/avif\":[\"avif\"],\"image/bmp\":[\"bmp\"],\"image/cgm\":[\"cgm\"],\"image/dicom-rle\":[\"drle\"],\"image/emf\":[\"emf\"],\"image/fits\":[\"fits\"],\"image/g3fax\":[\"g3\"],\"image/gif\":[\"gif\"],\"image/heic\":[\"heic\"],\"image/heic-sequence\":[\"heics\"],\"image/heif\":[\"heif\"],\"image/heif-sequence\":[\"heifs\"],\"image/hej2k\":[\"hej2\"],\"image/hsj2\":[\"hsj2\"],\"image/ief\":[\"ief\"],\"image/jls\":[\"jls\"],\"image/jp2\":[\"jp2\",\"jpg2\"],\"image/jpeg\":[\"jpeg\",\"jpg\",\"jpe\"],\"image/jph\":[\"jph\"],\"image/jphc\":[\"jhc\"],\"image/jpm\":[\"jpm\"],\"image/jpx\":[\"jpx\",\"jpf\"],\"image/jxr\":[\"jxr\"],\"image/jxra\":[\"jxra\"],\"image/jxrs\":[\"jxrs\"],\"image/jxs\":[\"jxs\"],\"image/jxsc\":[\"jxsc\"],\"image/jxsi\":[\"jxsi\"],\"image/jxss\":[\"jxss\"],\"image/ktx\":[\"ktx\"],\"image/ktx2\":[\"ktx2\"],\"image/png\":[\"png\"],\"image/sgi\":[\"sgi\"],\"image/svg+xml\":[\"svg\",\"svgz\"],\"image/t38\":[\"t38\"],\"image/tiff\":[\"tif\",\"tiff\"],\"image/tiff-fx\":[\"tfx\"],\"image/webp\":[\"webp\"],\"image/wmf\":[\"wmf\"],\"message/disposition-notification\":[\"disposition-notification\"],\"message/global\":[\"u8msg\"],\"message/global-delivery-status\":[\"u8dsn\"],\"message/global-disposition-notification\":[\"u8mdn\"],\"message/global-headers\":[\"u8hdr\"],\"message/rfc822\":[\"eml\",\"mime\"],\"model/3mf\":[\"3mf\"],\"model/gltf+json\":[\"gltf\"],\"model/gltf-binary\":[\"glb\"],\"model/iges\":[\"igs\",\"iges\"],\"model/mesh\":[\"msh\",\"mesh\",\"silo\"],\"model/mtl\":[\"mtl\"],\"model/obj\":[\"obj\"],\"model/step+xml\":[\"stpx\"],\"model/step+zip\":[\"stpz\"],\"model/step-xml+zip\":[\"stpxz\"],\"model/stl\":[\"stl\"],\"model/vrml\":[\"wrl\",\"vrml\"],\"model/x3d+binary\":[\"*x3db\",\"x3dbz\"],\"model/x3d+fastinfoset\":[\"x3db\"],\"model/x3d+vrml\":[\"*x3dv\",\"x3dvz\"],\"model/x3d+xml\":[\"x3d\",\"x3dz\"],\"model/x3d-vrml\":[\"x3dv\"],\"text/cache-manifest\":[\"appcache\",\"manifest\"],\"text/calendar\":[\"ics\",\"ifb\"],\"text/coffeescript\":[\"coffee\",\"litcoffee\"],\"text/css\":[\"css\"],\"text/csv\":[\"csv\"],\"text/html\":[\"html\",\"htm\",\"shtml\"],\"text/jade\":[\"jade\"],\"text/jsx\":[\"jsx\"],\"text/less\":[\"less\"],\"text/markdown\":[\"markdown\",\"md\"],\"text/mathml\":[\"mml\"],\"text/mdx\":[\"mdx\"],\"text/n3\":[\"n3\"],\"text/plain\":[\"txt\",\"text\",\"conf\",\"def\",\"list\",\"log\",\"in\",\"ini\"],\"text/richtext\":[\"rtx\"],\"text/rtf\":[\"*rtf\"],\"text/sgml\":[\"sgml\",\"sgm\"],\"text/shex\":[\"shex\"],\"text/slim\":[\"slim\",\"slm\"],\"text/spdx\":[\"spdx\"],\"text/stylus\":[\"stylus\",\"styl\"],\"text/tab-separated-values\":[\"tsv\"],\"text/troff\":[\"t\",\"tr\",\"roff\",\"man\",\"me\",\"ms\"],\"text/turtle\":[\"ttl\"],\"text/uri-list\":[\"uri\",\"uris\",\"urls\"],\"text/vcard\":[\"vcard\"],\"text/vtt\":[\"vtt\"],\"text/xml\":[\"*xml\"],\"text/yaml\":[\"yaml\",\"yml\"],\"video/3gpp\":[\"3gp\",\"3gpp\"],\"video/3gpp2\":[\"3g2\"],\"video/h261\":[\"h261\"],\"video/h263\":[\"h263\"],\"video/h264\":[\"h264\"],\"video/iso.segment\":[\"m4s\"],\"video/jpeg\":[\"jpgv\"],\"video/jpm\":[\"*jpm\",\"jpgm\"],\"video/mj2\":[\"mj2\",\"mjp2\"],\"video/mp2t\":[\"ts\"],\"video/mp4\":[\"mp4\",\"mp4v\",\"mpg4\"],\"video/mpeg\":[\"mpeg\",\"mpg\",\"mpe\",\"m1v\",\"m2v\"],\"video/ogg\":[\"ogv\"],\"video/quicktime\":[\"qt\",\"mov\"],\"video/webm\":[\"webm\"]};","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n",null,null,null,"(function(nacl) {\n'use strict';\n\n// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n//\n// Implementation derived from TweetNaCl version 20140427.\n// See for details: http://tweetnacl.cr.yp.to/\n\nvar gf = function(init) {\n var i, r = new Float64Array(16);\n if (init) for (i = 0; i < init.length; i++) r[i] = init[i];\n return r;\n};\n\n// Pluggable, initialized in high-level API below.\nvar randombytes = function(/* x, n */) { throw new Error('no PRNG'); };\n\nvar _0 = new Uint8Array(16);\nvar _9 = new Uint8Array(32); _9[0] = 9;\n\nvar gf0 = gf(),\n gf1 = gf([1]),\n _121665 = gf([0xdb41, 1]),\n D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),\n D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),\n X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),\n Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),\n I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\nfunction ts64(x, i, h, l) {\n x[i] = (h >> 24) & 0xff;\n x[i+1] = (h >> 16) & 0xff;\n x[i+2] = (h >> 8) & 0xff;\n x[i+3] = h & 0xff;\n x[i+4] = (l >> 24) & 0xff;\n x[i+5] = (l >> 16) & 0xff;\n x[i+6] = (l >> 8) & 0xff;\n x[i+7] = l & 0xff;\n}\n\nfunction vn(x, xi, y, yi, n) {\n var i,d = 0;\n for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction crypto_verify_16(x, xi, y, yi) {\n return vn(x,xi,y,yi,16);\n}\n\nfunction crypto_verify_32(x, xi, y, yi) {\n return vn(x,xi,y,yi,32);\n}\n\nfunction core_salsa20(o, p, k, c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n x0 = x0 + j0 | 0;\n x1 = x1 + j1 | 0;\n x2 = x2 + j2 | 0;\n x3 = x3 + j3 | 0;\n x4 = x4 + j4 | 0;\n x5 = x5 + j5 | 0;\n x6 = x6 + j6 | 0;\n x7 = x7 + j7 | 0;\n x8 = x8 + j8 | 0;\n x9 = x9 + j9 | 0;\n x10 = x10 + j10 | 0;\n x11 = x11 + j11 | 0;\n x12 = x12 + j12 | 0;\n x13 = x13 + j13 | 0;\n x14 = x14 + j14 | 0;\n x15 = x15 + j15 | 0;\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x1 >>> 0 & 0xff;\n o[ 5] = x1 >>> 8 & 0xff;\n o[ 6] = x1 >>> 16 & 0xff;\n o[ 7] = x1 >>> 24 & 0xff;\n\n o[ 8] = x2 >>> 0 & 0xff;\n o[ 9] = x2 >>> 8 & 0xff;\n o[10] = x2 >>> 16 & 0xff;\n o[11] = x2 >>> 24 & 0xff;\n\n o[12] = x3 >>> 0 & 0xff;\n o[13] = x3 >>> 8 & 0xff;\n o[14] = x3 >>> 16 & 0xff;\n o[15] = x3 >>> 24 & 0xff;\n\n o[16] = x4 >>> 0 & 0xff;\n o[17] = x4 >>> 8 & 0xff;\n o[18] = x4 >>> 16 & 0xff;\n o[19] = x4 >>> 24 & 0xff;\n\n o[20] = x5 >>> 0 & 0xff;\n o[21] = x5 >>> 8 & 0xff;\n o[22] = x5 >>> 16 & 0xff;\n o[23] = x5 >>> 24 & 0xff;\n\n o[24] = x6 >>> 0 & 0xff;\n o[25] = x6 >>> 8 & 0xff;\n o[26] = x6 >>> 16 & 0xff;\n o[27] = x6 >>> 24 & 0xff;\n\n o[28] = x7 >>> 0 & 0xff;\n o[29] = x7 >>> 8 & 0xff;\n o[30] = x7 >>> 16 & 0xff;\n o[31] = x7 >>> 24 & 0xff;\n\n o[32] = x8 >>> 0 & 0xff;\n o[33] = x8 >>> 8 & 0xff;\n o[34] = x8 >>> 16 & 0xff;\n o[35] = x8 >>> 24 & 0xff;\n\n o[36] = x9 >>> 0 & 0xff;\n o[37] = x9 >>> 8 & 0xff;\n o[38] = x9 >>> 16 & 0xff;\n o[39] = x9 >>> 24 & 0xff;\n\n o[40] = x10 >>> 0 & 0xff;\n o[41] = x10 >>> 8 & 0xff;\n o[42] = x10 >>> 16 & 0xff;\n o[43] = x10 >>> 24 & 0xff;\n\n o[44] = x11 >>> 0 & 0xff;\n o[45] = x11 >>> 8 & 0xff;\n o[46] = x11 >>> 16 & 0xff;\n o[47] = x11 >>> 24 & 0xff;\n\n o[48] = x12 >>> 0 & 0xff;\n o[49] = x12 >>> 8 & 0xff;\n o[50] = x12 >>> 16 & 0xff;\n o[51] = x12 >>> 24 & 0xff;\n\n o[52] = x13 >>> 0 & 0xff;\n o[53] = x13 >>> 8 & 0xff;\n o[54] = x13 >>> 16 & 0xff;\n o[55] = x13 >>> 24 & 0xff;\n\n o[56] = x14 >>> 0 & 0xff;\n o[57] = x14 >>> 8 & 0xff;\n o[58] = x14 >>> 16 & 0xff;\n o[59] = x14 >>> 24 & 0xff;\n\n o[60] = x15 >>> 0 & 0xff;\n o[61] = x15 >>> 8 & 0xff;\n o[62] = x15 >>> 16 & 0xff;\n o[63] = x15 >>> 24 & 0xff;\n}\n\nfunction core_hsalsa20(o,p,k,c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x5 >>> 0 & 0xff;\n o[ 5] = x5 >>> 8 & 0xff;\n o[ 6] = x5 >>> 16 & 0xff;\n o[ 7] = x5 >>> 24 & 0xff;\n\n o[ 8] = x10 >>> 0 & 0xff;\n o[ 9] = x10 >>> 8 & 0xff;\n o[10] = x10 >>> 16 & 0xff;\n o[11] = x10 >>> 24 & 0xff;\n\n o[12] = x15 >>> 0 & 0xff;\n o[13] = x15 >>> 8 & 0xff;\n o[14] = x15 >>> 16 & 0xff;\n o[15] = x15 >>> 24 & 0xff;\n\n o[16] = x6 >>> 0 & 0xff;\n o[17] = x6 >>> 8 & 0xff;\n o[18] = x6 >>> 16 & 0xff;\n o[19] = x6 >>> 24 & 0xff;\n\n o[20] = x7 >>> 0 & 0xff;\n o[21] = x7 >>> 8 & 0xff;\n o[22] = x7 >>> 16 & 0xff;\n o[23] = x7 >>> 24 & 0xff;\n\n o[24] = x8 >>> 0 & 0xff;\n o[25] = x8 >>> 8 & 0xff;\n o[26] = x8 >>> 16 & 0xff;\n o[27] = x8 >>> 24 & 0xff;\n\n o[28] = x9 >>> 0 & 0xff;\n o[29] = x9 >>> 8 & 0xff;\n o[30] = x9 >>> 16 & 0xff;\n o[31] = x9 >>> 24 & 0xff;\n}\n\nfunction crypto_core_salsa20(out,inp,k,c) {\n core_salsa20(out,inp,k,c);\n}\n\nfunction crypto_core_hsalsa20(out,inp,k,c) {\n core_hsalsa20(out,inp,k,c);\n}\n\nvar sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]);\n // \"expand 32-byte k\"\n\nfunction crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n mpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n }\n return 0;\n}\n\nfunction crypto_stream_salsa20(c,cpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = x[i];\n }\n return 0;\n}\n\nfunction crypto_stream(c,cpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20(c,cpos,d,sn,s);\n}\n\nfunction crypto_stream_xor(c,cpos,m,mpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,sn,s);\n}\n\n/*\n* Port of Andrew Moon's Poly1305-donna-16. Public domain.\n* https://github.com/floodyberry/poly1305-donna\n*/\n\nvar poly1305 = function(key) {\n this.buffer = new Uint8Array(16);\n this.r = new Uint16Array(10);\n this.h = new Uint16Array(10);\n this.pad = new Uint16Array(8);\n this.leftover = 0;\n this.fin = 0;\n\n var t0, t1, t2, t3, t4, t5, t6, t7;\n\n t0 = key[ 0] & 0xff | (key[ 1] & 0xff) << 8; this.r[0] = ( t0 ) & 0x1fff;\n t1 = key[ 2] & 0xff | (key[ 3] & 0xff) << 8; this.r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = key[ 4] & 0xff | (key[ 5] & 0xff) << 8; this.r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;\n t3 = key[ 6] & 0xff | (key[ 7] & 0xff) << 8; this.r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = key[ 8] & 0xff | (key[ 9] & 0xff) << 8; this.r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;\n this.r[5] = ((t4 >>> 1)) & 0x1ffe;\n t5 = key[10] & 0xff | (key[11] & 0xff) << 8; this.r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = key[12] & 0xff | (key[13] & 0xff) << 8; this.r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;\n t7 = key[14] & 0xff | (key[15] & 0xff) << 8; this.r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n this.r[9] = ((t7 >>> 5)) & 0x007f;\n\n this.pad[0] = key[16] & 0xff | (key[17] & 0xff) << 8;\n this.pad[1] = key[18] & 0xff | (key[19] & 0xff) << 8;\n this.pad[2] = key[20] & 0xff | (key[21] & 0xff) << 8;\n this.pad[3] = key[22] & 0xff | (key[23] & 0xff) << 8;\n this.pad[4] = key[24] & 0xff | (key[25] & 0xff) << 8;\n this.pad[5] = key[26] & 0xff | (key[27] & 0xff) << 8;\n this.pad[6] = key[28] & 0xff | (key[29] & 0xff) << 8;\n this.pad[7] = key[30] & 0xff | (key[31] & 0xff) << 8;\n};\n\npoly1305.prototype.blocks = function(m, mpos, bytes) {\n var hibit = this.fin ? 0 : (1 << 11);\n var t0, t1, t2, t3, t4, t5, t6, t7, c;\n var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;\n\n var h0 = this.h[0],\n h1 = this.h[1],\n h2 = this.h[2],\n h3 = this.h[3],\n h4 = this.h[4],\n h5 = this.h[5],\n h6 = this.h[6],\n h7 = this.h[7],\n h8 = this.h[8],\n h9 = this.h[9];\n\n var r0 = this.r[0],\n r1 = this.r[1],\n r2 = this.r[2],\n r3 = this.r[3],\n r4 = this.r[4],\n r5 = this.r[5],\n r6 = this.r[6],\n r7 = this.r[7],\n r8 = this.r[8],\n r9 = this.r[9];\n\n while (bytes >= 16) {\n t0 = m[mpos+ 0] & 0xff | (m[mpos+ 1] & 0xff) << 8; h0 += ( t0 ) & 0x1fff;\n t1 = m[mpos+ 2] & 0xff | (m[mpos+ 3] & 0xff) << 8; h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = m[mpos+ 4] & 0xff | (m[mpos+ 5] & 0xff) << 8; h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;\n t3 = m[mpos+ 6] & 0xff | (m[mpos+ 7] & 0xff) << 8; h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = m[mpos+ 8] & 0xff | (m[mpos+ 9] & 0xff) << 8; h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;\n h5 += ((t4 >>> 1)) & 0x1fff;\n t5 = m[mpos+10] & 0xff | (m[mpos+11] & 0xff) << 8; h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = m[mpos+12] & 0xff | (m[mpos+13] & 0xff) << 8; h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;\n t7 = m[mpos+14] & 0xff | (m[mpos+15] & 0xff) << 8; h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n h9 += ((t7 >>> 5)) | hibit;\n\n c = 0;\n\n d0 = c;\n d0 += h0 * r0;\n d0 += h1 * (5 * r9);\n d0 += h2 * (5 * r8);\n d0 += h3 * (5 * r7);\n d0 += h4 * (5 * r6);\n c = (d0 >>> 13); d0 &= 0x1fff;\n d0 += h5 * (5 * r5);\n d0 += h6 * (5 * r4);\n d0 += h7 * (5 * r3);\n d0 += h8 * (5 * r2);\n d0 += h9 * (5 * r1);\n c += (d0 >>> 13); d0 &= 0x1fff;\n\n d1 = c;\n d1 += h0 * r1;\n d1 += h1 * r0;\n d1 += h2 * (5 * r9);\n d1 += h3 * (5 * r8);\n d1 += h4 * (5 * r7);\n c = (d1 >>> 13); d1 &= 0x1fff;\n d1 += h5 * (5 * r6);\n d1 += h6 * (5 * r5);\n d1 += h7 * (5 * r4);\n d1 += h8 * (5 * r3);\n d1 += h9 * (5 * r2);\n c += (d1 >>> 13); d1 &= 0x1fff;\n\n d2 = c;\n d2 += h0 * r2;\n d2 += h1 * r1;\n d2 += h2 * r0;\n d2 += h3 * (5 * r9);\n d2 += h4 * (5 * r8);\n c = (d2 >>> 13); d2 &= 0x1fff;\n d2 += h5 * (5 * r7);\n d2 += h6 * (5 * r6);\n d2 += h7 * (5 * r5);\n d2 += h8 * (5 * r4);\n d2 += h9 * (5 * r3);\n c += (d2 >>> 13); d2 &= 0x1fff;\n\n d3 = c;\n d3 += h0 * r3;\n d3 += h1 * r2;\n d3 += h2 * r1;\n d3 += h3 * r0;\n d3 += h4 * (5 * r9);\n c = (d3 >>> 13); d3 &= 0x1fff;\n d3 += h5 * (5 * r8);\n d3 += h6 * (5 * r7);\n d3 += h7 * (5 * r6);\n d3 += h8 * (5 * r5);\n d3 += h9 * (5 * r4);\n c += (d3 >>> 13); d3 &= 0x1fff;\n\n d4 = c;\n d4 += h0 * r4;\n d4 += h1 * r3;\n d4 += h2 * r2;\n d4 += h3 * r1;\n d4 += h4 * r0;\n c = (d4 >>> 13); d4 &= 0x1fff;\n d4 += h5 * (5 * r9);\n d4 += h6 * (5 * r8);\n d4 += h7 * (5 * r7);\n d4 += h8 * (5 * r6);\n d4 += h9 * (5 * r5);\n c += (d4 >>> 13); d4 &= 0x1fff;\n\n d5 = c;\n d5 += h0 * r5;\n d5 += h1 * r4;\n d5 += h2 * r3;\n d5 += h3 * r2;\n d5 += h4 * r1;\n c = (d5 >>> 13); d5 &= 0x1fff;\n d5 += h5 * r0;\n d5 += h6 * (5 * r9);\n d5 += h7 * (5 * r8);\n d5 += h8 * (5 * r7);\n d5 += h9 * (5 * r6);\n c += (d5 >>> 13); d5 &= 0x1fff;\n\n d6 = c;\n d6 += h0 * r6;\n d6 += h1 * r5;\n d6 += h2 * r4;\n d6 += h3 * r3;\n d6 += h4 * r2;\n c = (d6 >>> 13); d6 &= 0x1fff;\n d6 += h5 * r1;\n d6 += h6 * r0;\n d6 += h7 * (5 * r9);\n d6 += h8 * (5 * r8);\n d6 += h9 * (5 * r7);\n c += (d6 >>> 13); d6 &= 0x1fff;\n\n d7 = c;\n d7 += h0 * r7;\n d7 += h1 * r6;\n d7 += h2 * r5;\n d7 += h3 * r4;\n d7 += h4 * r3;\n c = (d7 >>> 13); d7 &= 0x1fff;\n d7 += h5 * r2;\n d7 += h6 * r1;\n d7 += h7 * r0;\n d7 += h8 * (5 * r9);\n d7 += h9 * (5 * r8);\n c += (d7 >>> 13); d7 &= 0x1fff;\n\n d8 = c;\n d8 += h0 * r8;\n d8 += h1 * r7;\n d8 += h2 * r6;\n d8 += h3 * r5;\n d8 += h4 * r4;\n c = (d8 >>> 13); d8 &= 0x1fff;\n d8 += h5 * r3;\n d8 += h6 * r2;\n d8 += h7 * r1;\n d8 += h8 * r0;\n d8 += h9 * (5 * r9);\n c += (d8 >>> 13); d8 &= 0x1fff;\n\n d9 = c;\n d9 += h0 * r9;\n d9 += h1 * r8;\n d9 += h2 * r7;\n d9 += h3 * r6;\n d9 += h4 * r5;\n c = (d9 >>> 13); d9 &= 0x1fff;\n d9 += h5 * r4;\n d9 += h6 * r3;\n d9 += h7 * r2;\n d9 += h8 * r1;\n d9 += h9 * r0;\n c += (d9 >>> 13); d9 &= 0x1fff;\n\n c = (((c << 2) + c)) | 0;\n c = (c + d0) | 0;\n d0 = c & 0x1fff;\n c = (c >>> 13);\n d1 += c;\n\n h0 = d0;\n h1 = d1;\n h2 = d2;\n h3 = d3;\n h4 = d4;\n h5 = d5;\n h6 = d6;\n h7 = d7;\n h8 = d8;\n h9 = d9;\n\n mpos += 16;\n bytes -= 16;\n }\n this.h[0] = h0;\n this.h[1] = h1;\n this.h[2] = h2;\n this.h[3] = h3;\n this.h[4] = h4;\n this.h[5] = h5;\n this.h[6] = h6;\n this.h[7] = h7;\n this.h[8] = h8;\n this.h[9] = h9;\n};\n\npoly1305.prototype.finish = function(mac, macpos) {\n var g = new Uint16Array(10);\n var c, mask, f, i;\n\n if (this.leftover) {\n i = this.leftover;\n this.buffer[i++] = 1;\n for (; i < 16; i++) this.buffer[i] = 0;\n this.fin = 1;\n this.blocks(this.buffer, 0, 16);\n }\n\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n for (i = 2; i < 10; i++) {\n this.h[i] += c;\n c = this.h[i] >>> 13;\n this.h[i] &= 0x1fff;\n }\n this.h[0] += (c * 5);\n c = this.h[0] >>> 13;\n this.h[0] &= 0x1fff;\n this.h[1] += c;\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n this.h[2] += c;\n\n g[0] = this.h[0] + 5;\n c = g[0] >>> 13;\n g[0] &= 0x1fff;\n for (i = 1; i < 10; i++) {\n g[i] = this.h[i] + c;\n c = g[i] >>> 13;\n g[i] &= 0x1fff;\n }\n g[9] -= (1 << 13);\n\n mask = (c ^ 1) - 1;\n for (i = 0; i < 10; i++) g[i] &= mask;\n mask = ~mask;\n for (i = 0; i < 10; i++) this.h[i] = (this.h[i] & mask) | g[i];\n\n this.h[0] = ((this.h[0] ) | (this.h[1] << 13) ) & 0xffff;\n this.h[1] = ((this.h[1] >>> 3) | (this.h[2] << 10) ) & 0xffff;\n this.h[2] = ((this.h[2] >>> 6) | (this.h[3] << 7) ) & 0xffff;\n this.h[3] = ((this.h[3] >>> 9) | (this.h[4] << 4) ) & 0xffff;\n this.h[4] = ((this.h[4] >>> 12) | (this.h[5] << 1) | (this.h[6] << 14)) & 0xffff;\n this.h[5] = ((this.h[6] >>> 2) | (this.h[7] << 11) ) & 0xffff;\n this.h[6] = ((this.h[7] >>> 5) | (this.h[8] << 8) ) & 0xffff;\n this.h[7] = ((this.h[8] >>> 8) | (this.h[9] << 5) ) & 0xffff;\n\n f = this.h[0] + this.pad[0];\n this.h[0] = f & 0xffff;\n for (i = 1; i < 8; i++) {\n f = (((this.h[i] + this.pad[i]) | 0) + (f >>> 16)) | 0;\n this.h[i] = f & 0xffff;\n }\n\n mac[macpos+ 0] = (this.h[0] >>> 0) & 0xff;\n mac[macpos+ 1] = (this.h[0] >>> 8) & 0xff;\n mac[macpos+ 2] = (this.h[1] >>> 0) & 0xff;\n mac[macpos+ 3] = (this.h[1] >>> 8) & 0xff;\n mac[macpos+ 4] = (this.h[2] >>> 0) & 0xff;\n mac[macpos+ 5] = (this.h[2] >>> 8) & 0xff;\n mac[macpos+ 6] = (this.h[3] >>> 0) & 0xff;\n mac[macpos+ 7] = (this.h[3] >>> 8) & 0xff;\n mac[macpos+ 8] = (this.h[4] >>> 0) & 0xff;\n mac[macpos+ 9] = (this.h[4] >>> 8) & 0xff;\n mac[macpos+10] = (this.h[5] >>> 0) & 0xff;\n mac[macpos+11] = (this.h[5] >>> 8) & 0xff;\n mac[macpos+12] = (this.h[6] >>> 0) & 0xff;\n mac[macpos+13] = (this.h[6] >>> 8) & 0xff;\n mac[macpos+14] = (this.h[7] >>> 0) & 0xff;\n mac[macpos+15] = (this.h[7] >>> 8) & 0xff;\n};\n\npoly1305.prototype.update = function(m, mpos, bytes) {\n var i, want;\n\n if (this.leftover) {\n want = (16 - this.leftover);\n if (want > bytes)\n want = bytes;\n for (i = 0; i < want; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n bytes -= want;\n mpos += want;\n this.leftover += want;\n if (this.leftover < 16)\n return;\n this.blocks(this.buffer, 0, 16);\n this.leftover = 0;\n }\n\n if (bytes >= 16) {\n want = bytes - (bytes % 16);\n this.blocks(m, mpos, want);\n mpos += want;\n bytes -= want;\n }\n\n if (bytes) {\n for (i = 0; i < bytes; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n this.leftover += bytes;\n }\n};\n\nfunction crypto_onetimeauth(out, outpos, m, mpos, n, k) {\n var s = new poly1305(k);\n s.update(m, mpos, n);\n s.finish(out, outpos);\n return 0;\n}\n\nfunction crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) {\n var x = new Uint8Array(16);\n crypto_onetimeauth(x,0,m,mpos,n,k);\n return crypto_verify_16(h,hpos,x,0);\n}\n\nfunction crypto_secretbox(c,m,d,n,k) {\n var i;\n if (d < 32) return -1;\n crypto_stream_xor(c,0,m,0,d,n,k);\n crypto_onetimeauth(c, 16, c, 32, d - 32, c);\n for (i = 0; i < 16; i++) c[i] = 0;\n return 0;\n}\n\nfunction crypto_secretbox_open(m,c,d,n,k) {\n var i;\n var x = new Uint8Array(32);\n if (d < 32) return -1;\n crypto_stream(x,0,32,n,k);\n if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) !== 0) return -1;\n crypto_stream_xor(m,0,c,0,d,n,k);\n for (i = 0; i < 32; i++) m[i] = 0;\n return 0;\n}\n\nfunction set25519(r, a) {\n var i;\n for (i = 0; i < 16; i++) r[i] = a[i]|0;\n}\n\nfunction car25519(o) {\n var i, v, c = 1;\n for (i = 0; i < 16; i++) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c-1 + 37 * (c-1);\n}\n\nfunction sel25519(p, q, b) {\n var t, c = ~(b-1);\n for (var i = 0; i < 16; i++) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction pack25519(o, n) {\n var i, j, b;\n var m = gf(), t = gf();\n for (i = 0; i < 16; i++) t[i] = n[i];\n car25519(t);\n car25519(t);\n car25519(t);\n for (j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);\n m[i-1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);\n b = (m[15]>>16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1-b);\n }\n for (i = 0; i < 16; i++) {\n o[2*i] = t[i] & 0xff;\n o[2*i+1] = t[i]>>8;\n }\n}\n\nfunction neq25519(a, b) {\n var c = new Uint8Array(32), d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction par25519(a) {\n var d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction unpack25519(o, n) {\n var i;\n for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);\n o[15] &= 0x7fff;\n}\n\nfunction A(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];\n}\n\nfunction Z(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];\n}\n\nfunction M(o, a, b) {\n var v, c,\n t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,\n t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n // second car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n o[ 0] = t0;\n o[ 1] = t1;\n o[ 2] = t2;\n o[ 3] = t3;\n o[ 4] = t4;\n o[ 5] = t5;\n o[ 6] = t6;\n o[ 7] = t7;\n o[ 8] = t8;\n o[ 9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n\nfunction S(o, a) {\n M(o, a, a);\n}\n\nfunction inv25519(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 253; a >= 0; a--) {\n S(c, c);\n if(a !== 2 && a !== 4) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction pow2523(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 250; a >= 0; a--) {\n S(c, c);\n if(a !== 1) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction crypto_scalarmult(q, n, p) {\n var z = new Uint8Array(32);\n var x = new Float64Array(80), r, i;\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf();\n for (i = 0; i < 31; i++) z[i] = n[i];\n z[31]=(n[31]&127)|64;\n z[0]&=248;\n unpack25519(x,p);\n for (i = 0; i < 16; i++) {\n b[i]=x[i];\n d[i]=a[i]=c[i]=0;\n }\n a[0]=d[0]=1;\n for (i=254; i>=0; --i) {\n r=(z[i>>>3]>>>(i&7))&1;\n sel25519(a,b,r);\n sel25519(c,d,r);\n A(e,a,c);\n Z(a,a,c);\n A(c,b,d);\n Z(b,b,d);\n S(d,e);\n S(f,a);\n M(a,c,a);\n M(c,b,e);\n A(e,a,c);\n Z(a,a,c);\n S(b,a);\n Z(c,d,f);\n M(a,c,_121665);\n A(a,a,d);\n M(c,c,a);\n M(a,d,f);\n M(d,b,x);\n S(b,e);\n sel25519(a,b,r);\n sel25519(c,d,r);\n }\n for (i = 0; i < 16; i++) {\n x[i+16]=a[i];\n x[i+32]=c[i];\n x[i+48]=b[i];\n x[i+64]=d[i];\n }\n var x32 = x.subarray(32);\n var x16 = x.subarray(16);\n inv25519(x32,x32);\n M(x16,x16,x32);\n pack25519(q,x16);\n return 0;\n}\n\nfunction crypto_scalarmult_base(q, n) {\n return crypto_scalarmult(q, n, _9);\n}\n\nfunction crypto_box_keypair(y, x) {\n randombytes(x, 32);\n return crypto_scalarmult_base(y, x);\n}\n\nfunction crypto_box_beforenm(k, y, x) {\n var s = new Uint8Array(32);\n crypto_scalarmult(s, x, y);\n return crypto_core_hsalsa20(k, _0, s, sigma);\n}\n\nvar crypto_box_afternm = crypto_secretbox;\nvar crypto_box_open_afternm = crypto_secretbox_open;\n\nfunction crypto_box(c, m, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_afternm(c, m, d, n, k);\n}\n\nfunction crypto_box_open(m, c, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_open_afternm(m, c, d, n, k);\n}\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction crypto_hashblocks_hl(hh, hl, m, n) {\n var wh = new Int32Array(16), wl = new Int32Array(16),\n bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7,\n bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7,\n th, tl, i, j, h, l, a, b, c, d;\n\n var ah0 = hh[0],\n ah1 = hh[1],\n ah2 = hh[2],\n ah3 = hh[3],\n ah4 = hh[4],\n ah5 = hh[5],\n ah6 = hh[6],\n ah7 = hh[7],\n\n al0 = hl[0],\n al1 = hl[1],\n al2 = hl[2],\n al3 = hl[3],\n al4 = hl[4],\n al5 = hl[5],\n al6 = hl[6],\n al7 = hl[7];\n\n var pos = 0;\n while (n >= 128) {\n for (i = 0; i < 16; i++) {\n j = 8 * i + pos;\n wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3];\n wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7];\n }\n for (i = 0; i < 80; i++) {\n bh0 = ah0;\n bh1 = ah1;\n bh2 = ah2;\n bh3 = ah3;\n bh4 = ah4;\n bh5 = ah5;\n bh6 = ah6;\n bh7 = ah7;\n\n bl0 = al0;\n bl1 = al1;\n bl2 = al2;\n bl3 = al3;\n bl4 = al4;\n bl5 = al5;\n bl6 = al6;\n bl7 = al7;\n\n // add\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma1\n h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32))));\n l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // K\n h = K[i*2];\n l = K[i*2+1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // w\n h = wh[i%16];\n l = wl[i%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n th = c & 0xffff | d << 16;\n tl = a & 0xffff | b << 16;\n\n // add\n h = th;\n l = tl;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma0\n h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32))));\n l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n\n // add\n h = bh3;\n l = bl3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = th;\n l = tl;\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n\n if (i%16 === 15) {\n for (j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = wh[(j+9)%16];\n l = wl[(j+9)%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma0\n th = wh[(j+1)%16];\n tl = wl[(j+1)%16];\n h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma1\n th = wh[(j+14)%16];\n tl = wl[(j+14)%16];\n h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6);\n l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n\n // add\n h = ah0;\n l = al0;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[0];\n l = hl[0];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n h = ah1;\n l = al1;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[1];\n l = hl[1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n h = ah2;\n l = al2;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[2];\n l = hl[2];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n h = ah3;\n l = al3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[3];\n l = hl[3];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n h = ah4;\n l = al4;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[4];\n l = hl[4];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n h = ah5;\n l = al5;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[5];\n l = hl[5];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n h = ah6;\n l = al6;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[6];\n l = hl[6];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[7];\n l = hl[7];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n pos += 128;\n n -= 128;\n }\n\n return n;\n}\n\nfunction crypto_hash(out, m, n) {\n var hh = new Int32Array(8),\n hl = new Int32Array(8),\n x = new Uint8Array(256),\n i, b = n;\n\n hh[0] = 0x6a09e667;\n hh[1] = 0xbb67ae85;\n hh[2] = 0x3c6ef372;\n hh[3] = 0xa54ff53a;\n hh[4] = 0x510e527f;\n hh[5] = 0x9b05688c;\n hh[6] = 0x1f83d9ab;\n hh[7] = 0x5be0cd19;\n\n hl[0] = 0xf3bcc908;\n hl[1] = 0x84caa73b;\n hl[2] = 0xfe94f82b;\n hl[3] = 0x5f1d36f1;\n hl[4] = 0xade682d1;\n hl[5] = 0x2b3e6c1f;\n hl[6] = 0xfb41bd6b;\n hl[7] = 0x137e2179;\n\n crypto_hashblocks_hl(hh, hl, m, n);\n n %= 128;\n\n for (i = 0; i < n; i++) x[i] = m[b-n+i];\n x[n] = 128;\n\n n = 256-128*(n<112?1:0);\n x[n-9] = 0;\n ts64(x, n-8, (b / 0x20000000) | 0, b << 3);\n crypto_hashblocks_hl(hh, hl, x, n);\n\n for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]);\n\n return 0;\n}\n\nfunction add(p, q) {\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf(),\n g = gf(), h = gf(), t = gf();\n\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\n\nfunction cswap(p, q, b) {\n var i;\n for (i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r, p) {\n var tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\nfunction scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (i = 255; i >= 0; --i) {\n b = (s[(i/8)|0] >> (i&7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p, s) {\n var q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nfunction crypto_sign_keypair(pk, sk, seeded) {\n var d = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()];\n var i;\n\n if (!seeded) randombytes(sk, 32);\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n for (i = 0; i < 32; i++) sk[i+32] = pk[i];\n return 0;\n}\n\nvar L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\n\nfunction modL(r, x) {\n var carry, i, j, k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = Math.floor((x[j] + 128) / 256);\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n for (i = 0; i < 32; i++) {\n x[i+1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\n\nfunction reduce(r) {\n var x = new Float64Array(64), i;\n for (i = 0; i < 64; i++) x[i] = r[i];\n for (i = 0; i < 64; i++) r[i] = 0;\n modL(r, x);\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(sm, m, n, sk) {\n var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n var smlen = n + 64;\n for (i = 0; i < n; i++) sm[64 + i] = m[i];\n for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n crypto_hash(r, sm.subarray(32), n+32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for (i = 32; i < 64; i++) sm[i] = sk[i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n\n for (i = 0; i < 64; i++) x[i] = 0;\n for (i = 0; i < 32; i++) x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i+j] += h[i] * d[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return smlen;\n}\n\nfunction unpackneg(r, p) {\n var t = gf(), chk = gf(), num = gf(),\n den = gf(), den2 = gf(), den4 = gf(),\n den6 = gf();\n\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) M(r[0], r[0], I);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) return -1;\n\n if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);\n\n M(r[3], r[0], r[1]);\n return 0;\n}\n\nfunction crypto_sign_open(m, sm, n, pk) {\n var i;\n var t = new Uint8Array(32), h = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()],\n q = [gf(), gf(), gf(), gf()];\n\n if (n < 64) return -1;\n\n if (unpackneg(q, pk)) return -1;\n\n for (i = 0; i < n; i++) m[i] = sm[i];\n for (i = 0; i < 32; i++) m[i+32] = pk[i];\n crypto_hash(h, m, n);\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n\n n -= 64;\n if (crypto_verify_32(sm, 0, t, 0)) {\n for (i = 0; i < n; i++) m[i] = 0;\n return -1;\n }\n\n for (i = 0; i < n; i++) m[i] = sm[i + 64];\n return n;\n}\n\nvar crypto_secretbox_KEYBYTES = 32,\n crypto_secretbox_NONCEBYTES = 24,\n crypto_secretbox_ZEROBYTES = 32,\n crypto_secretbox_BOXZEROBYTES = 16,\n crypto_scalarmult_BYTES = 32,\n crypto_scalarmult_SCALARBYTES = 32,\n crypto_box_PUBLICKEYBYTES = 32,\n crypto_box_SECRETKEYBYTES = 32,\n crypto_box_BEFORENMBYTES = 32,\n crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES,\n crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES,\n crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES,\n crypto_sign_BYTES = 64,\n crypto_sign_PUBLICKEYBYTES = 32,\n crypto_sign_SECRETKEYBYTES = 64,\n crypto_sign_SEEDBYTES = 32,\n crypto_hash_BYTES = 64;\n\nnacl.lowlevel = {\n crypto_core_hsalsa20: crypto_core_hsalsa20,\n crypto_stream_xor: crypto_stream_xor,\n crypto_stream: crypto_stream,\n crypto_stream_salsa20_xor: crypto_stream_salsa20_xor,\n crypto_stream_salsa20: crypto_stream_salsa20,\n crypto_onetimeauth: crypto_onetimeauth,\n crypto_onetimeauth_verify: crypto_onetimeauth_verify,\n crypto_verify_16: crypto_verify_16,\n crypto_verify_32: crypto_verify_32,\n crypto_secretbox: crypto_secretbox,\n crypto_secretbox_open: crypto_secretbox_open,\n crypto_scalarmult: crypto_scalarmult,\n crypto_scalarmult_base: crypto_scalarmult_base,\n crypto_box_beforenm: crypto_box_beforenm,\n crypto_box_afternm: crypto_box_afternm,\n crypto_box: crypto_box,\n crypto_box_open: crypto_box_open,\n crypto_box_keypair: crypto_box_keypair,\n crypto_hash: crypto_hash,\n crypto_sign: crypto_sign,\n crypto_sign_keypair: crypto_sign_keypair,\n crypto_sign_open: crypto_sign_open,\n\n crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES,\n crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES,\n crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES,\n crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES,\n crypto_scalarmult_BYTES: crypto_scalarmult_BYTES,\n crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES,\n crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES,\n crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES,\n crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES,\n crypto_box_NONCEBYTES: crypto_box_NONCEBYTES,\n crypto_box_ZEROBYTES: crypto_box_ZEROBYTES,\n crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES,\n crypto_sign_BYTES: crypto_sign_BYTES,\n crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES,\n crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES,\n crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES,\n crypto_hash_BYTES: crypto_hash_BYTES,\n\n gf: gf,\n D: D,\n L: L,\n pack25519: pack25519,\n unpack25519: unpack25519,\n M: M,\n A: A,\n S: S,\n Z: Z,\n pow2523: pow2523,\n add: add,\n set25519: set25519,\n modL: modL,\n scalarmult: scalarmult,\n scalarbase: scalarbase,\n};\n\n/* High-level API */\n\nfunction checkLengths(k, n) {\n if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size');\n if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size');\n}\n\nfunction checkBoxLengths(pk, sk) {\n if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size');\n if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size');\n}\n\nfunction checkArrayTypes() {\n for (var i = 0; i < arguments.length; i++) {\n if (!(arguments[i] instanceof Uint8Array))\n throw new TypeError('unexpected type, use Uint8Array');\n }\n}\n\nfunction cleanup(arr) {\n for (var i = 0; i < arr.length; i++) arr[i] = 0;\n}\n\nnacl.randomBytes = function(n) {\n var b = new Uint8Array(n);\n randombytes(b, n);\n return b;\n};\n\nnacl.secretbox = function(msg, nonce, key) {\n checkArrayTypes(msg, nonce, key);\n checkLengths(key, nonce);\n var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);\n var c = new Uint8Array(m.length);\n for (var i = 0; i < msg.length; i++) m[i+crypto_secretbox_ZEROBYTES] = msg[i];\n crypto_secretbox(c, m, m.length, nonce, key);\n return c.subarray(crypto_secretbox_BOXZEROBYTES);\n};\n\nnacl.secretbox.open = function(box, nonce, key) {\n checkArrayTypes(box, nonce, key);\n checkLengths(key, nonce);\n var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);\n var m = new Uint8Array(c.length);\n for (var i = 0; i < box.length; i++) c[i+crypto_secretbox_BOXZEROBYTES] = box[i];\n if (c.length < 32) return null;\n if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return null;\n return m.subarray(crypto_secretbox_ZEROBYTES);\n};\n\nnacl.secretbox.keyLength = crypto_secretbox_KEYBYTES;\nnacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES;\nnacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES;\n\nnacl.scalarMult = function(n, p) {\n checkArrayTypes(n, p);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult(q, n, p);\n return q;\n};\n\nnacl.scalarMult.base = function(n) {\n checkArrayTypes(n);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult_base(q, n);\n return q;\n};\n\nnacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES;\nnacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES;\n\nnacl.box = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox(msg, nonce, k);\n};\n\nnacl.box.before = function(publicKey, secretKey) {\n checkArrayTypes(publicKey, secretKey);\n checkBoxLengths(publicKey, secretKey);\n var k = new Uint8Array(crypto_box_BEFORENMBYTES);\n crypto_box_beforenm(k, publicKey, secretKey);\n return k;\n};\n\nnacl.box.after = nacl.secretbox;\n\nnacl.box.open = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox.open(msg, nonce, k);\n};\n\nnacl.box.open.after = nacl.secretbox.open;\n\nnacl.box.keyPair = function() {\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);\n crypto_box_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.box.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_box_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n crypto_scalarmult_base(pk, secretKey);\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES;\nnacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES;\nnacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES;\nnacl.box.nonceLength = crypto_box_NONCEBYTES;\nnacl.box.overheadLength = nacl.secretbox.overheadLength;\n\nnacl.sign = function(msg, secretKey) {\n checkArrayTypes(msg, secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);\n crypto_sign(signedMsg, msg, msg.length, secretKey);\n return signedMsg;\n};\n\nnacl.sign.open = function(signedMsg, publicKey) {\n checkArrayTypes(signedMsg, publicKey);\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var tmp = new Uint8Array(signedMsg.length);\n var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);\n if (mlen < 0) return null;\n var m = new Uint8Array(mlen);\n for (var i = 0; i < m.length; i++) m[i] = tmp[i];\n return m;\n};\n\nnacl.sign.detached = function(msg, secretKey) {\n var signedMsg = nacl.sign(msg, secretKey);\n var sig = new Uint8Array(crypto_sign_BYTES);\n for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n return sig;\n};\n\nnacl.sign.detached.verify = function(msg, sig, publicKey) {\n checkArrayTypes(msg, sig, publicKey);\n if (sig.length !== crypto_sign_BYTES)\n throw new Error('bad signature size');\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n var m = new Uint8Array(crypto_sign_BYTES + msg.length);\n var i;\n for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];\n return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n};\n\nnacl.sign.keyPair = function() {\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n crypto_sign_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign.keyPair.fromSeed = function(seed) {\n checkArrayTypes(seed);\n if (seed.length !== crypto_sign_SEEDBYTES)\n throw new Error('bad seed size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n for (var i = 0; i < 32; i++) sk[i] = seed[i];\n crypto_sign_keypair(pk, sk, true);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES;\nnacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES;\nnacl.sign.seedLength = crypto_sign_SEEDBYTES;\nnacl.sign.signatureLength = crypto_sign_BYTES;\n\nnacl.hash = function(msg) {\n checkArrayTypes(msg);\n var h = new Uint8Array(crypto_hash_BYTES);\n crypto_hash(h, msg, msg.length);\n return h;\n};\n\nnacl.hash.hashLength = crypto_hash_BYTES;\n\nnacl.verify = function(x, y) {\n checkArrayTypes(x, y);\n // Zero length arguments are considered not equal.\n if (x.length === 0 || y.length === 0) return false;\n if (x.length !== y.length) return false;\n return (vn(x, 0, y, 0, x.length) === 0) ? true : false;\n};\n\nnacl.setPRNG = function(fn) {\n randombytes = fn;\n};\n\n(function() {\n // Initialize PRNG if environment provides CSPRNG.\n // If not, methods calling randombytes will throw.\n var crypto = typeof self !== 'undefined' ? (self.crypto || self.msCrypto) : null;\n if (crypto && crypto.getRandomValues) {\n // Browsers.\n var QUOTA = 65536;\n nacl.setPRNG(function(x, n) {\n var i, v = new Uint8Array(n);\n for (i = 0; i < n; i += QUOTA) {\n crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n }\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n } else if (typeof require !== 'undefined') {\n // Node.js.\n crypto = require('crypto');\n if (crypto && crypto.randomBytes) {\n nacl.setPRNG(function(x, n) {\n var i, v = crypto.randomBytes(n);\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n }\n }\n})();\n\n})(typeof module !== 'undefined' && module.exports ? module.exports : (self.nacl = self.nacl || {}));\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { Principal } from '@dfinity/principal';\nimport { RequestId } from '../request_id';\nimport { JsonObject } from '@dfinity/candid';\nimport { Identity } from '../auth';\n\n/**\n * Codes used by the replica for rejecting a message.\n * See {@link https://sdk.dfinity.org/docs/interface-spec/#reject-codes | the interface spec}.\n */\nexport enum ReplicaRejectCode {\n SysFatal = 1,\n SysTransient = 2,\n DestinationInvalid = 3,\n CanisterReject = 4,\n CanisterError = 5,\n}\n\n/**\n * Options when doing a {@link Agent.readState} call.\n */\nexport interface ReadStateOptions {\n /**\n * A list of paths to read the state of.\n */\n paths: ArrayBuffer[][];\n}\n\n/**\n *\n */\nexport type QueryResponse = QueryResponseReplied | QueryResponseRejected;\n\nexport const enum QueryResponseStatus {\n Replied = 'replied',\n Rejected = 'rejected',\n}\n\nexport interface QueryResponseBase {\n status: QueryResponseStatus;\n}\n\nexport interface QueryResponseReplied extends QueryResponseBase {\n status: QueryResponseStatus.Replied;\n reply: { arg: ArrayBuffer };\n}\n\nexport interface QueryResponseRejected extends QueryResponseBase {\n status: QueryResponseStatus.Rejected;\n reject_code: ReplicaRejectCode;\n reject_message: string;\n}\n\n/**\n * Options when doing a {@link Agent.query} call.\n */\nexport interface QueryFields {\n /**\n * The method name to call.\n */\n methodName: string;\n\n /**\n * A binary encoded argument. This is already encoded and will be sent as is.\n */\n arg: ArrayBuffer;\n}\n\n/**\n * Options when doing a {@link Agent.call} call.\n */\nexport interface CallOptions {\n /**\n * The method name to call.\n */\n methodName: string;\n\n /**\n * A binary encoded argument. This is already encoded and will be sent as is.\n */\n arg: ArrayBuffer;\n\n /**\n * An effective canister ID, used for routing. This should only be mentioned if\n * it's different from the canister ID.\n */\n effectiveCanisterId: Principal | string;\n}\n\nexport interface ReadStateResponse {\n certificate: ArrayBuffer;\n}\n\nexport interface SubmitResponse {\n requestId: RequestId;\n response: {\n ok: boolean;\n status: number;\n statusText: string;\n };\n}\n\n/**\n * An Agent able to make calls and queries to a Replica.\n */\nexport interface Agent {\n readonly rootKey: ArrayBuffer | null;\n /**\n * Returns the principal ID associated with this agent (by default). It only shows\n * the principal of the default identity in the agent, which is the principal used\n * when calls don't specify it.\n */\n getPrincipal(): Promise;\n\n /**\n * Create the request for the read state call.\n * `readState` uses this internally.\n * Useful to avoid signing the same request multiple times.\n */\n createReadStateRequest?(\n options: ReadStateOptions,\n identity?: Identity,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): Promise;\n\n /**\n * Send a read state query to the replica. This includes a list of paths to return,\n * and will return a Certificate. This will only reject on communication errors,\n * but the certificate might contain less information than requested.\n * @param effectiveCanisterId A Canister ID related to this call.\n * @param options The options for this call.\n * @param identity Identity for the call. If not specified, uses the instance identity.\n * @param request The request to send in case it has already been created.\n */\n readState(\n effectiveCanisterId: Principal | string,\n options: ReadStateOptions,\n identity?: Identity,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n request?: any,\n ): Promise;\n\n call(canisterId: Principal | string, fields: CallOptions): Promise;\n\n /**\n * Query the status endpoint of the replica. This normally has a few fields that\n * corresponds to the version of the replica, its root public key, and any other\n * information made public.\n * @returns A JsonObject that is essentially a record of fields from the status\n * endpoint.\n */\n status(): Promise;\n\n /**\n * Send a query call to a canister. See\n * {@link https://sdk.dfinity.org/docs/interface-spec/#http-query | the interface spec}.\n * @param canisterId The Principal of the Canister to send the query to. Sending a query to\n * the management canister is not supported (as it has no meaning from an agent).\n * @param options Options to use to create and send the query.\n * @returns The response from the replica. The Promise will only reject when the communication\n * failed. If the query itself failed but no protocol errors happened, the response will\n * be of type QueryResponseRejected.\n */\n query(canisterId: Principal | string, options: QueryFields): Promise;\n\n /**\n * By default, the agent is configured to talk to the main Internet Computer,\n * and verifies responses using a hard-coded public key.\n *\n * This function will instruct the agent to ask the endpoint for its public\n * key, and use that instead. This is required when talking to a local test\n * instance, for example.\n *\n * Only use this when you are _not_ talking to the main Internet Computer,\n * otherwise you are prone to man-in-the-middle attacks! Do not call this\n * function by default.\n */\n fetchRootKey(): Promise;\n /**\n * If an application needs to invalidate an identity under certain conditions, an `Agent` may expose an `invalidateIdentity` method.\n * Invoking this method will set the inner identity used by the `Agent` to `null`.\n *\n * A use case for this would be - after a certain period of inactivity, a secure application chooses to invalidate the identity of any `HttpAgent` instances. An invalid identity can be replaced by `Agent.replaceIdentity`\n */\n invalidateIdentity?(): void;\n /**\n * If an application needs to replace an identity under certain conditions, an `Agent` may expose a `replaceIdentity` method.\n * Invoking this method will set the inner identity used by the `Agent` to a newly provided identity.\n *\n * A use case for this would be - after authenticating using `@dfinity/auth-client`, you can replace the `AnonymousIdentity` of your `Actor` with a `DelegationIdentity`.\n *\n * ```Actor.agentOf(defaultActor).replaceIdentity(await authClient.getIdentity());```\n */\n replaceIdentity?(identity: Identity): void;\n}\n","import { Principal } from '@dfinity/principal';\nimport { HttpAgentRequest } from './agent/http/types';\nimport { requestIdOf } from './request_id';\nimport { concat, toHex } from './utils/buffer';\n\nconst domainSeparator = new TextEncoder().encode('\\x0Aic-request');\n\n/**\n * A Key Pair, containing a secret and public key.\n */\nexport interface KeyPair {\n secretKey: ArrayBuffer;\n publicKey: PublicKey;\n}\n\n/**\n * A public key that is DER encoded. This is a branded ArrayBuffer.\n */\nexport type DerEncodedPublicKey = ArrayBuffer & { __derEncodedPublicKey__?: void };\n\n/**\n * A signature array buffer.\n */\nexport type Signature = ArrayBuffer & { __signature__: void };\n\n/**\n * A Public Key implementation.\n */\nexport interface PublicKey {\n // Get the public key bytes encoded with DER.\n toDer(): DerEncodedPublicKey;\n}\n\n/**\n * A General Identity object. This does not have to be a private key (for example,\n * the Anonymous identity), but it must be able to transform request.\n */\nexport interface Identity {\n /**\n * Get the principal represented by this identity. Normally should be a\n * `Principal.selfAuthenticating()`.\n */\n getPrincipal(): Principal;\n\n /**\n * Transform a request into a signed version of the request. This is done last\n * after the transforms on the body of a request. The returned object can be\n * anything, but must be serializable to CBOR.\n */\n transformRequest(request: HttpAgentRequest): Promise;\n}\n\n/**\n * An Identity that can sign blobs.\n */\nexport abstract class SignIdentity implements Identity {\n protected _principal: Principal | undefined;\n\n /**\n * Returns the public key that would match this identity's signature.\n */\n public abstract getPublicKey(): PublicKey;\n\n /**\n * Signs a blob of data, with this identity's private key.\n */\n public abstract sign(blob: ArrayBuffer): Promise;\n\n /**\n * Get the principal represented by this identity. Normally should be a\n * `Principal.selfAuthenticating()`.\n */\n public getPrincipal(): Principal {\n if (!this._principal) {\n this._principal = Principal.selfAuthenticating(new Uint8Array(this.getPublicKey().toDer()));\n }\n return this._principal;\n }\n\n /**\n * Transform a request into a signed version of the request. This is done last\n * after the transforms on the body of a request. The returned object can be\n * anything, but must be serializable to CBOR.\n * @param request - internet computer request to transform\n */\n public async transformRequest(request: HttpAgentRequest): Promise {\n const { body, ...fields } = request;\n const requestId = await requestIdOf(body);\n return {\n ...fields,\n body: {\n content: body,\n sender_pubkey: this.getPublicKey().toDer(),\n sender_sig: await this.sign(concat(domainSeparator, requestId)),\n },\n };\n }\n}\n\nexport class AnonymousIdentity implements Identity {\n public getPrincipal(): Principal {\n return Principal.anonymous();\n }\n\n public async transformRequest(request: HttpAgentRequest): Promise {\n return {\n ...request,\n body: { content: request.body },\n };\n }\n}\n\n/*\n * We need to communicate with other agents on the page about identities,\n * but those messages may need to go across boundaries where it's not possible to\n * serialize/deserialize object prototypes easily.\n * So these are lightweight, serializable objects that contain enough information to recreate\n * SignIdentities, but don't commit to having all methods of SignIdentity.\n *\n * Use Case:\n * * DOM Events that let differently-versioned components communicate to one another about\n * Identities, even if they're using slightly different versions of agent packages to\n * create/interpret them.\n */\nexport interface AnonymousIdentityDescriptor {\n type: 'AnonymousIdentity';\n}\nexport interface PublicKeyIdentityDescriptor {\n type: 'PublicKeyIdentity';\n publicKey: string;\n}\nexport type IdentityDescriptor = AnonymousIdentityDescriptor | PublicKeyIdentityDescriptor;\n\n/**\n * Create an IdentityDescriptor from a @dfinity/identity Identity\n * @param identity - identity describe in returned descriptor\n */\nexport function createIdentityDescriptor(\n identity: SignIdentity | AnonymousIdentity,\n): IdentityDescriptor {\n const identityIndicator: IdentityDescriptor =\n 'getPublicKey' in identity\n ? { type: 'PublicKeyIdentity', publicKey: toHex(identity.getPublicKey().toDer()) }\n : { type: 'AnonymousIdentity' };\n return identityIndicator;\n}\n","import type { Principal } from '@dfinity/principal';\nimport { Expiry } from './transforms';\nimport { lebEncode } from '@dfinity/candid';\n\n/**\n * @internal\n */\nexport const enum Endpoint {\n Query = 'read',\n ReadState = 'read_state',\n Call = 'call',\n}\n\n// An HttpAgent request, before it gets encoded and sent to the server.\n// We create an empty request that we will fill later.\nexport type HttpAgentRequest =\n | HttpAgentQueryRequest\n | HttpAgentSubmitRequest\n | HttpAgentReadStateRequest;\n\nexport interface HttpAgentBaseRequest {\n readonly endpoint: Endpoint;\n request: RequestInit;\n}\n\nexport interface HttpAgentSubmitRequest extends HttpAgentBaseRequest {\n readonly endpoint: Endpoint.Call;\n body: CallRequest;\n}\n\nexport interface HttpAgentQueryRequest extends HttpAgentBaseRequest {\n readonly endpoint: Endpoint.Query;\n body: ReadRequest;\n}\n\nexport interface HttpAgentReadStateRequest extends HttpAgentBaseRequest {\n readonly endpoint: Endpoint.ReadState;\n body: ReadRequest;\n}\n\nexport interface Signed {\n content: T;\n sender_pubkey: ArrayBuffer;\n sender_sig: ArrayBuffer;\n}\n\nexport interface UnSigned {\n content: T;\n}\n\nexport type Envelope = Signed | UnSigned;\n\nexport interface HttpAgentRequestTransformFn {\n (args: HttpAgentRequest): Promise;\n priority?: number;\n}\n\n// The fields in a \"call\" submit request.\n// tslint:disable:camel-case\nexport interface CallRequest extends Record {\n request_type: SubmitRequestType.Call;\n canister_id: Principal;\n method_name: string;\n arg: ArrayBuffer;\n sender: Uint8Array | Principal;\n ingress_expiry: Expiry;\n}\n// tslint:enable:camel-case\n\n// The types of values allowed in the `request_type` field for submit requests.\nexport enum SubmitRequestType {\n Call = 'call',\n}\n\n// The types of values allowed in the `request_type` field for read requests.\nexport const enum ReadRequestType {\n Query = 'query',\n ReadState = 'read_state',\n}\n\n// The fields in a \"query\" read request.\nexport interface QueryRequest extends Record {\n request_type: ReadRequestType.Query;\n canister_id: Principal;\n method_name: string;\n arg: ArrayBuffer;\n sender: Uint8Array | Principal;\n ingress_expiry: Expiry;\n}\n\nexport interface ReadStateRequest extends Record {\n request_type: ReadRequestType.ReadState;\n paths: ArrayBuffer[][];\n ingress_expiry: Expiry;\n sender: Uint8Array | Principal;\n}\n\nexport type ReadRequest = QueryRequest | ReadStateRequest;\n\n// A Nonce that can be used for calls.\nexport type Nonce = Uint8Array & { __nonce__: void };\n\n/**\n * Create a random Nonce, based on date and a random suffix.\n */\nexport function makeNonce(): Nonce {\n // Encode 128 bits.\n const buffer = new ArrayBuffer(16);\n const view = new DataView(buffer);\n const now = BigInt(+Date.now());\n const randHi = Math.floor(Math.random() * 0xffffffff);\n const randLo = Math.floor(Math.random() * 0xffffffff);\n // Fix for IOS < 14.8 setBigUint64 absence\n if (typeof view.setBigUint64 === 'function') {\n view.setBigUint64(0, now);\n } else {\n const TWO_TO_THE_32 = BigInt(1) << BigInt(32);\n view.setUint32(0, Number(now >> BigInt(32)));\n view.setUint32(4, Number(now % TWO_TO_THE_32));\n }\n view.setUint32(8, randHi);\n view.setUint32(12, randLo);\n\n return buffer as Nonce;\n}\n","import { lebEncode } from '@dfinity/candid';\nimport * as cbor from 'simple-cbor';\nimport { Endpoint, HttpAgentRequest, HttpAgentRequestTransformFn, makeNonce, Nonce } from './types';\nimport { toHex } from '../../utils/buffer';\n\nconst NANOSECONDS_PER_MILLISECONDS = BigInt(1_000_000);\n\nconst REPLICA_PERMITTED_DRIFT_MILLISECONDS = BigInt(60 * 1000);\n\nexport class Expiry {\n private readonly _value: bigint;\n\n constructor(deltaInMSec: number) {\n // Use bigint because it can overflow the maximum number allowed in a double float.\n this._value =\n (BigInt(Date.now()) + BigInt(deltaInMSec) - REPLICA_PERMITTED_DRIFT_MILLISECONDS) *\n NANOSECONDS_PER_MILLISECONDS;\n }\n\n public toCBOR(): cbor.CborValue {\n // TODO: change this to take the minimum amount of space (it always takes 8 bytes now).\n return cbor.value.u64(this._value.toString(16), 16);\n }\n\n public toHash(): ArrayBuffer {\n return lebEncode(this._value);\n }\n}\n\n/**\n * Create a Nonce transform, which takes a function that returns a Buffer, and adds it\n * as the nonce to every call requests.\n * @param nonceFn A function that returns a buffer. By default uses a semi-random method.\n */\nexport function makeNonceTransform(nonceFn: () => Nonce = makeNonce): HttpAgentRequestTransformFn {\n return async (request: HttpAgentRequest) => {\n const nonce = nonceFn();\n // Nonce needs to be inserted into the header for all requests, to enable logs to be correlated with requests.\n const headers = request.request.headers ? new Headers(request.request.headers) : new Headers();\n // TODO: uncomment this when the http proxy supports it.\n // headers.set('X-IC-Request-ID', toHex(new Uint8Array(nonce)));\n request.request.headers = headers;\n\n // Nonce only needs to be inserted into the body for async calls, to prevent replay attacks.\n if (request.endpoint === Endpoint.Call) {\n request.body.nonce = nonceFn();\n }\n };\n}\n\n/**\n * Create a transform that adds a delay (by default 5 minutes) to the expiry.\n *\n * @param delayInMilliseconds The delay to add to the call time, in milliseconds.\n */\nexport function makeExpiryTransform(delayInMilliseconds: number): HttpAgentRequestTransformFn {\n return async (request: HttpAgentRequest) => {\n request.body.ingress_expiry = new Expiry(delayInMilliseconds);\n };\n}\n","import { JsonObject } from '@dfinity/candid';\nimport { Principal } from '@dfinity/principal';\nimport { AgentError } from '../../errors';\nimport { AnonymousIdentity, Identity } from '../../auth';\nimport * as cbor from '../../cbor';\nimport { RequestId, requestIdOf } from '../../request_id';\nimport { fromHex } from '../../utils/buffer';\nimport {\n Agent,\n QueryFields,\n QueryResponse,\n ReadStateOptions,\n ReadStateResponse,\n SubmitResponse,\n} from '../api';\nimport { Expiry, makeNonceTransform } from './transforms';\nimport {\n CallRequest,\n Endpoint,\n HttpAgentRequest,\n HttpAgentRequestTransformFn,\n HttpAgentSubmitRequest,\n makeNonce,\n QueryRequest,\n ReadRequestType,\n SubmitRequestType,\n} from './types';\n\nexport * from './transforms';\nexport { Nonce, makeNonce } from './types';\n\nexport enum RequestStatusResponseStatus {\n Received = 'received',\n Processing = 'processing',\n Replied = 'replied',\n Rejected = 'rejected',\n Unknown = 'unknown',\n Done = 'done',\n}\n\n// Default delta for ingress expiry is 5 minutes.\nconst DEFAULT_INGRESS_EXPIRY_DELTA_IN_MSECS = 5 * 60 * 1000;\n\n// Root public key for the IC, encoded as hex\nconst IC_ROOT_KEY =\n '308182301d060d2b0601040182dc7c0503010201060c2b0601040182dc7c05030201036100814' +\n 'c0e6ec71fab583b08bd81373c255c3c371b2e84863c98a4f1e08b74235d14fb5d9c0cd546d968' +\n '5f913a0c0b2cc5341583bf4b4392e467db96d65b9bb4cb717112f8472e0d5a4d14505ffd7484' +\n 'b01291091c5f87b98883463f98091a0baaae';\n\n// IC0 domain info\nconst IC0_DOMAIN = 'ic0.app';\nconst IC0_SUB_DOMAIN = '.ic0.app';\n\nconst ICP0_DOMAIN = 'icp0.io';\nconst ICP0_SUB_DOMAIN = '.icp0.io';\n\nconst ICP_API_DOMAIN = 'icp-api.io';\nconst ICP_API_SUB_DOMAIN = '.icp-api.io';\n\nclass HttpDefaultFetchError extends AgentError {\n constructor(public readonly message: string) {\n super(message);\n }\n}\nexport class IdentityInvalidError extends AgentError {\n constructor(public readonly message: string) {\n super(message);\n }\n}\n\n// HttpAgent options that can be used at construction.\nexport interface HttpAgentOptions {\n // Another HttpAgent to inherit configuration (pipeline and fetch) of. This\n // is only used at construction.\n source?: HttpAgent;\n\n // A surrogate to the global fetch function. Useful for testing.\n fetch?: typeof fetch;\n\n // Additional options to pass along to fetch. Will not override fields that\n // the agent already needs to set\n // Should follow the RequestInit interface, but we intentially support non-standard fields\n fetchOptions?: Record;\n\n // Additional options to pass along to fetch for the call API.\n callOptions?: Record;\n\n // The host to use for the client. By default, uses the same host as\n // the current page.\n host?: string;\n\n // The principal used to send messages. This cannot be empty at the request\n // time (will throw).\n identity?: Identity | Promise;\n\n credentials?: {\n name: string;\n password?: string;\n };\n /**\n * Prevents the agent from providing a unique {@link Nonce} with each call.\n * Enabling may cause rate limiting of identical requests\n * at the boundary nodes.\n *\n * To add your own nonce generation logic, you can use the following:\n * @example\n * import {makeNonceTransform, makeNonce} from '@dfinity/agent';\n * const agent = new HttpAgent({ disableNonce: true });\n * agent.addTransform(makeNonceTransform(makeNonce);\n * @default false\n */\n disableNonce?: boolean;\n /**\n * Number of times to retry requests before throwing an error\n * @default 3\n */\n retryTimes?: number;\n}\n\nfunction getDefaultFetch(): typeof fetch {\n let defaultFetch;\n\n if (typeof window !== 'undefined') {\n // Browser context\n if (window.fetch) {\n defaultFetch = window.fetch.bind(window);\n } else {\n throw new HttpDefaultFetchError(\n 'Fetch implementation was not available. You appear to be in a browser context, but window.fetch was not present.',\n );\n }\n } else if (typeof global !== 'undefined') {\n // Node context\n if (global.fetch) {\n defaultFetch = global.fetch.bind(global);\n } else {\n throw new HttpDefaultFetchError(\n 'Fetch implementation was not available. You appear to be in a Node.js context, but global.fetch was not available.',\n );\n }\n } else if (typeof self !== 'undefined') {\n if (self.fetch) {\n defaultFetch = self.fetch.bind(self);\n }\n }\n\n if (defaultFetch) {\n return defaultFetch;\n }\n throw new HttpDefaultFetchError(\n 'Fetch implementation was not available. Please provide fetch to the HttpAgent constructor, or ensure it is available in the window or global context.',\n );\n}\n\ntype _RequestResponse = {\n requestId: RequestId;\n response: {\n ok: Response['ok'];\n status: Response['status'];\n statusText: Response['statusText'];\n };\n};\n\n// A HTTP agent allows users to interact with a client of the internet computer\n// using the available methods. It exposes an API that closely follows the\n// public view of the internet computer, and is not intended to be exposed\n// directly to the majority of users due to its low-level interface.\n//\n// There is a pipeline to apply transformations to the request before sending\n// it to the client. This is to decouple signature, nonce generation and\n// other computations so that this class can stay as simple as possible while\n// allowing extensions.\nexport class HttpAgent implements Agent {\n public rootKey = fromHex(IC_ROOT_KEY);\n private readonly _pipeline: HttpAgentRequestTransformFn[] = [];\n private _identity: Promise | null;\n private readonly _fetch: typeof fetch;\n private readonly _fetchOptions?: Record;\n private readonly _callOptions?: Record;\n private _timeDiffMsecs = 0;\n private readonly _host: URL;\n private readonly _credentials: string | undefined;\n private _rootKeyFetched = false;\n private _retryTimes = 3; // Retry requests 3 times before erroring by default\n public readonly _isAgent = true;\n\n constructor(options: HttpAgentOptions = {}) {\n if (options.source) {\n if (!(options.source instanceof HttpAgent)) {\n throw new Error(\"An Agent's source can only be another HttpAgent\");\n }\n this._pipeline = [...options.source._pipeline];\n this._identity = options.source._identity;\n this._fetch = options.source._fetch;\n this._host = options.source._host;\n this._credentials = options.source._credentials;\n } else {\n this._fetch = options.fetch || getDefaultFetch() || fetch.bind(global);\n this._fetchOptions = options.fetchOptions;\n this._callOptions = options.callOptions;\n }\n if (options.host !== undefined) {\n if (!options.host.match(/^[a-z]+:/) && typeof window !== 'undefined') {\n this._host = new URL(window.location.protocol + '//' + options.host);\n } else {\n this._host = new URL(options.host);\n }\n } else if (options.source !== undefined) {\n // Safe to ignore here.\n this._host = options.source._host;\n } else {\n const location = typeof window !== 'undefined' ? window.location : undefined;\n if (!location) {\n throw new Error('Must specify a host to connect to.');\n }\n this._host = new URL(location + '');\n }\n // Default is 3, only set if option is provided\n if (options.retryTimes !== undefined) {\n this._retryTimes = options.retryTimes;\n }\n // Rewrite to avoid redirects\n if (this._host.hostname.endsWith(IC0_SUB_DOMAIN)) {\n this._host.hostname = IC0_DOMAIN;\n } else if (this._host.hostname.endsWith(ICP0_SUB_DOMAIN)) {\n this._host.hostname = ICP0_DOMAIN;\n } else if (this._host.hostname.endsWith(ICP_API_SUB_DOMAIN)) {\n this._host.hostname = ICP_API_DOMAIN;\n }\n\n if (options.credentials) {\n const { name, password } = options.credentials;\n this._credentials = `${name}${password ? ':' + password : ''}`;\n }\n this._identity = Promise.resolve(options.identity || new AnonymousIdentity());\n\n // Add a nonce transform to ensure calls are unique\n if (!options.disableNonce) {\n this.addTransform(makeNonceTransform(makeNonce));\n }\n }\n\n public isLocal(): boolean {\n const hostname = this._host.hostname;\n return hostname === '127.0.0.1' || hostname.endsWith('localhost');\n }\n\n public addTransform(fn: HttpAgentRequestTransformFn, priority = fn.priority || 0): void {\n // Keep the pipeline sorted at all time, by priority.\n const i = this._pipeline.findIndex(x => (x.priority || 0) < priority);\n this._pipeline.splice(i >= 0 ? i : this._pipeline.length, 0, Object.assign(fn, { priority }));\n }\n\n public async getPrincipal(): Promise {\n if (!this._identity) {\n throw new IdentityInvalidError(\n \"This identity has expired due this application's security policy. Please refresh your authentication.\",\n );\n }\n return (await this._identity).getPrincipal();\n }\n\n public async call(\n canisterId: Principal | string,\n options: {\n methodName: string;\n arg: ArrayBuffer;\n effectiveCanisterId?: Principal | string;\n },\n identity?: Identity | Promise,\n ): Promise {\n const id = await (identity !== undefined ? await identity : await this._identity);\n if (!id) {\n throw new IdentityInvalidError(\n \"This identity has expired due this application's security policy. Please refresh your authentication.\",\n );\n }\n const canister = Principal.from(canisterId);\n const ecid = options.effectiveCanisterId\n ? Principal.from(options.effectiveCanisterId)\n : canister;\n\n const sender: Principal = id.getPrincipal() || Principal.anonymous();\n\n let ingress_expiry = new Expiry(DEFAULT_INGRESS_EXPIRY_DELTA_IN_MSECS);\n\n // If the value is off by more than 30 seconds, reconcile system time with the network\n if (Math.abs(this._timeDiffMsecs) > 1_000 * 30) {\n ingress_expiry = new Expiry(DEFAULT_INGRESS_EXPIRY_DELTA_IN_MSECS + this._timeDiffMsecs);\n }\n\n const submit: CallRequest = {\n request_type: SubmitRequestType.Call,\n canister_id: canister,\n method_name: options.methodName,\n arg: options.arg,\n sender,\n ingress_expiry,\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let transformedRequest: any = (await this._transform({\n request: {\n body: null,\n method: 'POST',\n headers: new Headers({\n 'Content-Type': 'application/cbor',\n ...(this._credentials ? { Authorization: 'Basic ' + btoa(this._credentials) } : {}),\n }),\n },\n endpoint: Endpoint.Call,\n body: submit,\n })) as HttpAgentSubmitRequest;\n\n // Apply transform for identity.\n transformedRequest = await id.transformRequest(transformedRequest);\n\n const body = cbor.encode(transformedRequest.body);\n\n // Run both in parallel. The fetch is quite expensive, so we have plenty of time to\n // calculate the requestId locally.\n\n const request = this._requestAndRetry(() =>\n this._fetch('' + new URL(`/api/v2/canister/${ecid.toText()}/call`, this._host), {\n ...this._callOptions,\n ...transformedRequest.request,\n body,\n }),\n );\n\n const [response, requestId] = await Promise.all([request, requestIdOf(submit)]);\n\n return {\n requestId,\n response: {\n ok: response.ok,\n status: response.status,\n statusText: response.statusText,\n },\n };\n }\n\n private async _requestAndRetry(request: () => Promise, tries = 0): Promise {\n if (tries > this._retryTimes && this._retryTimes !== 0) {\n throw new Error(\n `AgentError: Exceeded configured limit of ${this._retryTimes} retry attempts. Please check your network connection or try again in a few moments`,\n );\n }\n const response = await request();\n if (!response.ok) {\n const responseText = await response.clone().text();\n const errorMessage =\n `Server returned an error:\\n` +\n ` Code: ${response.status} (${response.statusText})\\n` +\n ` Body: ${responseText}\\n`;\n if (this._retryTimes > tries) {\n console.warn(errorMessage + ` Retrying request.`);\n return await this._requestAndRetry(request, tries + 1);\n } else {\n throw new Error(errorMessage);\n }\n }\n\n return response;\n }\n\n public async query(\n canisterId: Principal | string,\n fields: QueryFields,\n identity?: Identity | Promise,\n ): Promise {\n const id = await (identity !== undefined ? await identity : await this._identity);\n if (!id) {\n throw new IdentityInvalidError(\n \"This identity has expired due this application's security policy. Please refresh your authentication.\",\n );\n }\n\n const canister = typeof canisterId === 'string' ? Principal.fromText(canisterId) : canisterId;\n const sender = id?.getPrincipal() || Principal.anonymous();\n\n const request: QueryRequest = {\n request_type: ReadRequestType.Query,\n canister_id: canister,\n method_name: fields.methodName,\n arg: fields.arg,\n sender,\n ingress_expiry: new Expiry(DEFAULT_INGRESS_EXPIRY_DELTA_IN_MSECS),\n };\n\n // TODO: remove this any. This can be a Signed or UnSigned request.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let transformedRequest: any = await this._transform({\n request: {\n method: 'POST',\n headers: new Headers({\n 'Content-Type': 'application/cbor',\n ...(this._credentials ? { Authorization: 'Basic ' + btoa(this._credentials) } : {}),\n }),\n },\n endpoint: Endpoint.Query,\n body: request,\n });\n\n // Apply transform for identity.\n transformedRequest = await id?.transformRequest(transformedRequest);\n\n const body = cbor.encode(transformedRequest.body);\n const response = await this._requestAndRetry(() =>\n this._fetch('' + new URL(`/api/v2/canister/${canister.toText()}/query`, this._host), {\n ...this._fetchOptions,\n ...transformedRequest.request,\n body,\n }),\n );\n\n return cbor.decode(await response.arrayBuffer());\n }\n\n public async createReadStateRequest(\n fields: ReadStateOptions,\n identity?: Identity | Promise,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): Promise {\n const id = await (identity !== undefined ? await identity : await this._identity);\n if (!id) {\n throw new IdentityInvalidError(\n \"This identity has expired due this application's security policy. Please refresh your authentication.\",\n );\n }\n const sender = id?.getPrincipal() || Principal.anonymous();\n\n // TODO: remove this any. This can be a Signed or UnSigned request.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const transformedRequest: any = await this._transform({\n request: {\n method: 'POST',\n headers: new Headers({\n 'Content-Type': 'application/cbor',\n ...(this._credentials ? { Authorization: 'Basic ' + btoa(this._credentials) } : {}),\n }),\n },\n endpoint: Endpoint.ReadState,\n body: {\n request_type: ReadRequestType.ReadState,\n paths: fields.paths,\n sender,\n ingress_expiry: new Expiry(DEFAULT_INGRESS_EXPIRY_DELTA_IN_MSECS),\n },\n });\n\n // Apply transform for identity.\n return id?.transformRequest(transformedRequest);\n }\n\n public async readState(\n canisterId: Principal | string,\n fields: ReadStateOptions,\n identity?: Identity | Promise,\n // eslint-disable-next-line\n request?: any,\n ): Promise {\n const canister = typeof canisterId === 'string' ? Principal.fromText(canisterId) : canisterId;\n\n const transformedRequest = request ?? (await this.createReadStateRequest(fields, identity));\n const body = cbor.encode(transformedRequest.body);\n\n // TODO - https://dfinity.atlassian.net/browse/SDK-1092\n const response = await this._requestAndRetry(() =>\n this._fetch('' + new URL(`/api/v2/canister/${canister}/read_state`, this._host), {\n ...this._fetchOptions,\n ...transformedRequest.request,\n body,\n }),\n );\n\n if (!response.ok) {\n throw new Error(\n `Server returned an error:\\n` +\n ` Code: ${response.status} (${response.statusText})\\n` +\n ` Body: ${await response.text()}\\n`,\n );\n }\n return cbor.decode(await response.arrayBuffer());\n }\n\n /**\n * Allows agent to sync its time with the network. Can be called during intialization or mid-lifecycle if the device's clock has drifted away from the network time. This is necessary to set the Expiry for a request\n * @param {PrincipalLike} canisterId - Pass a canister ID if you need to sync the time with a particular replica. Uses the management canister by default\n */\n public async syncTime(canisterId?: Principal): Promise {\n const CanisterStatus = await import('../../canisterStatus');\n const callTime = Date.now();\n try {\n if (!canisterId) {\n console.log(\n 'Syncing time with the IC. No canisterId provided, so falling back to ryjl3-tyaaa-aaaaa-aaaba-cai',\n );\n }\n const status = await CanisterStatus.request({\n // Fall back with canisterId of the ICP Ledger\n canisterId: canisterId ?? Principal.from('ryjl3-tyaaa-aaaaa-aaaba-cai'),\n agent: this,\n paths: ['time'],\n });\n\n const replicaTime = status.get('time');\n if (replicaTime) {\n this._timeDiffMsecs = Number(replicaTime as any) - Number(callTime);\n }\n } catch (error) {\n console.error('Caught exception while attempting to sync time:', error);\n }\n }\n\n public async status(): Promise {\n const headers: Record = this._credentials\n ? {\n Authorization: 'Basic ' + btoa(this._credentials),\n }\n : {};\n\n const response = await this._requestAndRetry(() =>\n this._fetch('' + new URL(`/api/v2/status`, this._host), { headers, ...this._fetchOptions }),\n );\n\n return cbor.decode(await response.arrayBuffer());\n }\n\n public async fetchRootKey(): Promise {\n if (!this._rootKeyFetched) {\n // Hex-encoded version of the replica root key\n this.rootKey = ((await this.status()) as any).root_key;\n this._rootKeyFetched = true;\n }\n return this.rootKey;\n }\n\n public invalidateIdentity(): void {\n this._identity = null;\n }\n\n public replaceIdentity(identity: Identity): void {\n this._identity = Promise.resolve(identity);\n }\n\n protected _transform(request: HttpAgentRequest): Promise {\n let p = Promise.resolve(request);\n\n for (const fn of this._pipeline) {\n p = p.then(r => fn(r).then(r2 => r2 || r));\n }\n\n return p;\n }\n}\n","import { JsonObject } from '@dfinity/candid';\nimport {\n Agent,\n CallOptions,\n QueryFields,\n QueryResponse,\n ReadStateOptions,\n ReadStateResponse,\n SubmitResponse,\n} from './api';\nimport { Principal } from '@dfinity/principal';\n\nexport enum ProxyMessageKind {\n Error = 'err',\n GetPrincipal = 'gp',\n GetPrincipalResponse = 'gpr',\n Query = 'q',\n QueryResponse = 'qr',\n Call = 'c',\n CallResponse = 'cr',\n ReadState = 'rs',\n ReadStateResponse = 'rsr',\n Status = 's',\n StatusResponse = 'sr',\n}\n\nexport interface ProxyMessageBase {\n id: number;\n type: ProxyMessageKind;\n}\n\nexport interface ProxyMessageError extends ProxyMessageBase {\n type: ProxyMessageKind.Error;\n error: any;\n}\n\nexport interface ProxyMessageGetPrincipal extends ProxyMessageBase {\n type: ProxyMessageKind.GetPrincipal;\n}\n\nexport interface ProxyMessageGetPrincipalResponse extends ProxyMessageBase {\n type: ProxyMessageKind.GetPrincipalResponse;\n response: string;\n}\n\nexport interface ProxyMessageQuery extends ProxyMessageBase {\n type: ProxyMessageKind.Query;\n args: [string, QueryFields];\n}\n\nexport interface ProxyMessageQueryResponse extends ProxyMessageBase {\n type: ProxyMessageKind.QueryResponse;\n response: QueryResponse;\n}\n\nexport interface ProxyMessageCall extends ProxyMessageBase {\n type: ProxyMessageKind.Call;\n args: [string, CallOptions];\n}\n\nexport interface ProxyMessageCallResponse extends ProxyMessageBase {\n type: ProxyMessageKind.CallResponse;\n response: SubmitResponse;\n}\n\nexport interface ProxyMessageReadState extends ProxyMessageBase {\n type: ProxyMessageKind.ReadState;\n args: [string, ReadStateOptions];\n}\n\nexport interface ProxyMessageReadStateResponse extends ProxyMessageBase {\n type: ProxyMessageKind.ReadStateResponse;\n response: ReadStateResponse;\n}\n\nexport interface ProxyMessageStatus extends ProxyMessageBase {\n type: ProxyMessageKind.Status;\n}\n\nexport interface ProxyMessageStatusResponse extends ProxyMessageBase {\n type: ProxyMessageKind.StatusResponse;\n response: JsonObject;\n}\n\nexport type ProxyMessage =\n | ProxyMessageError\n | ProxyMessageGetPrincipal\n | ProxyMessageGetPrincipalResponse\n | ProxyMessageQuery\n | ProxyMessageQueryResponse\n | ProxyMessageCall\n | ProxyMessageReadState\n | ProxyMessageReadStateResponse\n | ProxyMessageCallResponse\n | ProxyMessageStatus\n | ProxyMessageStatusResponse;\n\n// A Stub Agent that forwards calls to another Agent implementation.\nexport class ProxyStubAgent {\n constructor(private _frontend: (msg: ProxyMessage) => void, private _agent: Agent) {}\n\n public onmessage(msg: ProxyMessage): void {\n switch (msg.type) {\n case ProxyMessageKind.GetPrincipal:\n this._agent.getPrincipal().then(response => {\n this._frontend({\n id: msg.id,\n type: ProxyMessageKind.GetPrincipalResponse,\n response: response.toText(),\n });\n });\n break;\n case ProxyMessageKind.Query:\n this._agent.query(...msg.args).then(response => {\n this._frontend({\n id: msg.id,\n type: ProxyMessageKind.QueryResponse,\n response,\n });\n });\n break;\n case ProxyMessageKind.Call:\n this._agent.call(...msg.args).then(response => {\n this._frontend({\n id: msg.id,\n type: ProxyMessageKind.CallResponse,\n response,\n });\n });\n break;\n case ProxyMessageKind.ReadState:\n this._agent.readState(...msg.args).then(response => {\n this._frontend({\n id: msg.id,\n type: ProxyMessageKind.ReadStateResponse,\n response,\n });\n });\n break;\n case ProxyMessageKind.Status:\n this._agent.status().then(response => {\n this._frontend({\n id: msg.id,\n type: ProxyMessageKind.StatusResponse,\n response,\n });\n });\n break;\n\n default:\n throw new Error(`Invalid message received: ${JSON.stringify(msg)}`);\n }\n }\n}\n\n// An Agent that forwards calls to a backend. The calls are serialized\nexport class ProxyAgent implements Agent {\n private _nextId = 0;\n private _pendingCalls = new Map void, (reject: any) => void]>();\n public rootKey = null;\n\n constructor(private _backend: (msg: ProxyMessage) => void) {}\n\n public onmessage(msg: ProxyMessage): void {\n const id = msg.id;\n\n const maybePromise = this._pendingCalls.get(id);\n if (!maybePromise) {\n throw new Error('A proxy get the same message twice...');\n }\n\n this._pendingCalls.delete(id);\n const [resolve, reject] = maybePromise;\n\n switch (msg.type) {\n case ProxyMessageKind.Error:\n return reject(msg.error);\n case ProxyMessageKind.GetPrincipalResponse:\n case ProxyMessageKind.CallResponse:\n case ProxyMessageKind.QueryResponse:\n case ProxyMessageKind.ReadStateResponse:\n case ProxyMessageKind.StatusResponse:\n return resolve(msg.response);\n default:\n throw new Error(`Invalid message being sent to ProxyAgent: ${JSON.stringify(msg)}`);\n }\n }\n\n public async getPrincipal(): Promise {\n return this._sendAndWait({\n id: this._nextId++,\n type: ProxyMessageKind.GetPrincipal,\n }).then(principal => {\n if (typeof principal !== 'string') {\n throw new Error('Invalid principal received.');\n }\n return Principal.fromText(principal);\n });\n }\n\n public readState(\n canisterId: Principal | string,\n fields: ReadStateOptions,\n ): Promise {\n return this._sendAndWait({\n id: this._nextId++,\n type: ProxyMessageKind.ReadState,\n args: [canisterId.toString(), fields],\n }) as Promise;\n }\n\n public call(canisterId: Principal | string, fields: CallOptions): Promise {\n return this._sendAndWait({\n id: this._nextId++,\n type: ProxyMessageKind.Call,\n args: [canisterId.toString(), fields],\n }) as Promise;\n }\n\n public status(): Promise {\n return this._sendAndWait({\n id: this._nextId++,\n type: ProxyMessageKind.Status,\n }) as Promise;\n }\n\n public query(canisterId: Principal | string, fields: QueryFields): Promise {\n return this._sendAndWait({\n id: this._nextId++,\n type: ProxyMessageKind.Query,\n args: [canisterId.toString(), fields],\n }) as Promise;\n }\n\n private async _sendAndWait(msg: ProxyMessage): Promise {\n return new Promise((resolve, reject) => {\n this._pendingCalls.set(msg.id, [resolve, reject]);\n\n this._backend(msg);\n });\n }\n\n public async fetchRootKey(): Promise {\n // Hex-encoded version of the replica root key\n const rootKey = ((await this.status()) as any).root_key;\n this.rootKey = rootKey;\n return rootKey;\n }\n}\n","import { GlobalInternetComputer } from '../index';\nimport { Agent } from './api';\n\nexport * from './api';\nexport * from './http';\nexport * from './proxy';\n\ndeclare const window: GlobalInternetComputer;\ndeclare const global: GlobalInternetComputer;\ndeclare const self: GlobalInternetComputer;\n\nexport function getDefaultAgent(): Agent {\n const agent =\n typeof window === 'undefined'\n ? typeof global === 'undefined'\n ? typeof self === 'undefined'\n ? undefined\n : self.ic.agent\n : global.ic.agent\n : window.ic.agent;\n\n if (!agent) {\n throw new Error('No Agent could be found.');\n }\n\n return agent;\n}\n","import { Principal } from '@dfinity/principal';\nimport { Agent, RequestStatusResponseStatus } from '../agent';\nimport { Certificate, CreateCertificateOptions } from '../certificate';\nimport { RequestId } from '../request_id';\nimport { toHex } from '../utils/buffer';\n\nexport * as strategy from './strategy';\nexport { defaultStrategy } from './strategy';\nexport type PollStrategy = (\n canisterId: Principal,\n requestId: RequestId,\n status: RequestStatusResponseStatus,\n) => Promise;\nexport type PollStrategyFactory = () => PollStrategy;\n\n/**\n * Polls the IC to check the status of the given request then\n * returns the response bytes once the request has been processed.\n * @param agent The agent to use to poll read_state.\n * @param canisterId The effective canister ID.\n * @param requestId The Request ID to poll status for.\n * @param strategy A polling strategy.\n * @param request Request for the readState call.\n */\nexport async function pollForResponse(\n agent: Agent,\n canisterId: Principal,\n requestId: RequestId,\n strategy: PollStrategy,\n // eslint-disable-next-line\n request?: any,\n blsVerify?: CreateCertificateOptions['blsVerify'],\n): Promise {\n const path = [new TextEncoder().encode('request_status'), requestId];\n const currentRequest = request ?? (await agent.createReadStateRequest?.({ paths: [path] }));\n const state = await agent.readState(canisterId, { paths: [path] }, undefined, currentRequest);\n if (agent.rootKey == null) throw new Error('Agent root key not initialized before polling');\n const cert = await Certificate.create({\n certificate: state.certificate,\n rootKey: agent.rootKey,\n canisterId: canisterId,\n blsVerify,\n });\n const maybeBuf = cert.lookup([...path, new TextEncoder().encode('status')]);\n let status;\n if (typeof maybeBuf === 'undefined') {\n // Missing requestId means we need to wait\n status = RequestStatusResponseStatus.Unknown;\n } else {\n status = new TextDecoder().decode(maybeBuf);\n }\n\n switch (status) {\n case RequestStatusResponseStatus.Replied: {\n return cert.lookup([...path, 'reply'])!;\n }\n\n case RequestStatusResponseStatus.Received:\n case RequestStatusResponseStatus.Unknown:\n case RequestStatusResponseStatus.Processing:\n // Execute the polling strategy, then retry.\n await strategy(canisterId, requestId, status);\n return pollForResponse(agent, canisterId, requestId, strategy, currentRequest);\n\n case RequestStatusResponseStatus.Rejected: {\n const rejectCode = new Uint8Array(cert.lookup([...path, 'reject_code'])!)[0];\n const rejectMessage = new TextDecoder().decode(cert.lookup([...path, 'reject_message'])!);\n throw new Error(\n `Call was rejected:\\n` +\n ` Request ID: ${toHex(requestId)}\\n` +\n ` Reject code: ${rejectCode}\\n` +\n ` Reject text: ${rejectMessage}\\n`,\n );\n }\n\n case RequestStatusResponseStatus.Done:\n // This is _technically_ not an error, but we still didn't see the `Replied` status so\n // we don't know the result and cannot decode it.\n throw new Error(\n `Call was marked as done but we never saw the reply:\\n` +\n ` Request ID: ${toHex(requestId)}\\n`,\n );\n }\n throw new Error('unreachable');\n}\n","/**\n * This file is generated from the candid for asset management.\n */\n/* tslint:disable */\n// @ts-ignore\nexport default ({ IDL }) => {\n const canister_id = IDL.Principal;\n const definite_canister_settings = IDL.Record({\n controllers: IDL.Vec(IDL.Principal),\n freezing_threshold: IDL.Nat,\n memory_allocation: IDL.Nat,\n compute_allocation: IDL.Nat,\n });\n const canister_settings = IDL.Record({\n controllers: IDL.Opt(IDL.Vec(IDL.Principal)),\n freezing_threshold: IDL.Opt(IDL.Nat),\n memory_allocation: IDL.Opt(IDL.Nat),\n compute_allocation: IDL.Opt(IDL.Nat),\n });\n const wasm_module = IDL.Vec(IDL.Nat8);\n return IDL.Service({\n canister_status: IDL.Func(\n [IDL.Record({ canister_id: canister_id })],\n [\n IDL.Record({\n status: IDL.Variant({\n stopped: IDL.Null,\n stopping: IDL.Null,\n running: IDL.Null,\n }),\n memory_size: IDL.Nat,\n cycles: IDL.Nat,\n settings: definite_canister_settings,\n module_hash: IDL.Opt(IDL.Vec(IDL.Nat8)),\n }),\n ],\n [],\n ),\n create_canister: IDL.Func(\n [IDL.Record({ settings: IDL.Opt(canister_settings) })],\n [IDL.Record({ canister_id: canister_id })],\n [],\n ),\n delete_canister: IDL.Func([IDL.Record({ canister_id: canister_id })], [], []),\n deposit_cycles: IDL.Func([IDL.Record({ canister_id: canister_id })], [], []),\n install_code: IDL.Func(\n [\n IDL.Record({\n arg: IDL.Vec(IDL.Nat8),\n wasm_module: wasm_module,\n mode: IDL.Variant({\n reinstall: IDL.Null,\n upgrade: IDL.Null,\n install: IDL.Null,\n }),\n canister_id: canister_id,\n }),\n ],\n [],\n [],\n ),\n provisional_create_canister_with_cycles: IDL.Func(\n [\n IDL.Record({\n settings: IDL.Opt(canister_settings),\n amount: IDL.Opt(IDL.Nat),\n }),\n ],\n [IDL.Record({ canister_id: canister_id })],\n [],\n ),\n provisional_top_up_canister: IDL.Func(\n [IDL.Record({ canister_id: canister_id, amount: IDL.Nat })],\n [],\n [],\n ),\n raw_rand: IDL.Func([], [IDL.Vec(IDL.Nat8)], []),\n start_canister: IDL.Func([IDL.Record({ canister_id: canister_id })], [], []),\n stop_canister: IDL.Func([IDL.Record({ canister_id: canister_id })], [], []),\n uninstall_code: IDL.Func([IDL.Record({ canister_id: canister_id })], [], []),\n update_settings: IDL.Func(\n [\n IDL.Record({\n canister_id: IDL.Principal,\n settings: canister_settings,\n }),\n ],\n [],\n [],\n ),\n });\n};\n","import { Buffer } from 'buffer/';\nimport {\n Agent,\n getDefaultAgent,\n QueryResponseRejected,\n QueryResponseStatus,\n ReplicaRejectCode,\n SubmitResponse,\n} from './agent';\nimport { AgentError } from './errors';\nimport { IDL } from '@dfinity/candid';\nimport { pollForResponse, PollStrategyFactory, strategy } from './polling';\nimport { Principal } from '@dfinity/principal';\nimport { RequestId } from './request_id';\nimport { toHex } from './utils/buffer';\nimport { CreateCertificateOptions } from './certificate';\nimport managementCanisterIdl from './canisters/management_idl';\nimport _SERVICE from './canisters/management_service';\n\nexport class ActorCallError extends AgentError {\n constructor(\n public readonly canisterId: Principal,\n public readonly methodName: string,\n public readonly type: 'query' | 'update',\n public readonly props: Record,\n ) {\n super(\n [\n `Call failed:`,\n ` Canister: ${canisterId.toText()}`,\n ` Method: ${methodName} (${type})`,\n ...Object.getOwnPropertyNames(props).map(n => ` \"${n}\": ${JSON.stringify(props[n])}`),\n ].join('\\n'),\n );\n }\n}\n\nexport class QueryCallRejectedError extends ActorCallError {\n constructor(\n canisterId: Principal,\n methodName: string,\n public readonly result: QueryResponseRejected,\n ) {\n super(canisterId, methodName, 'query', {\n Status: result.status,\n Code: ReplicaRejectCode[result.reject_code] ?? `Unknown Code \"${result.reject_code}\"`,\n Message: result.reject_message,\n });\n }\n}\n\nexport class UpdateCallRejectedError extends ActorCallError {\n constructor(\n canisterId: Principal,\n methodName: string,\n public readonly requestId: RequestId,\n public readonly response: SubmitResponse['response'],\n ) {\n super(canisterId, methodName, 'update', {\n 'Request ID': toHex(requestId),\n 'HTTP status code': response.status.toString(),\n 'HTTP status text': response.statusText,\n });\n }\n}\n\n/**\n * Configuration to make calls to the Replica.\n */\nexport interface CallConfig {\n /**\n * An agent to use in this call, otherwise the actor or call will try to discover the\n * agent to use.\n */\n agent?: Agent;\n\n /**\n * A polling strategy factory that dictates how much and often we should poll the\n * read_state endpoint to get the result of an update call.\n */\n pollingStrategyFactory?: PollStrategyFactory;\n\n /**\n * The canister ID of this Actor.\n */\n canisterId?: string | Principal;\n\n /**\n * The effective canister ID. This should almost always be ignored.\n */\n effectiveCanisterId?: Principal;\n}\n\n/**\n * Configuration that can be passed to customize the Actor behaviour.\n */\nexport interface ActorConfig extends CallConfig {\n /**\n * The Canister ID of this Actor. This is required for an Actor.\n */\n canisterId: string | Principal;\n\n /**\n * An override function for update calls' CallConfig. This will be called on every calls.\n */\n callTransform?(\n methodName: string,\n args: unknown[],\n callConfig: CallConfig,\n ): Partial | void;\n\n /**\n * An override function for query calls' CallConfig. This will be called on every query.\n */\n queryTransform?(\n methodName: string,\n args: unknown[],\n callConfig: CallConfig,\n ): Partial | void;\n\n /**\n * Polyfill for BLS Certificate verification in case wasm is not supported\n */\n blsVerify?: CreateCertificateOptions['blsVerify'];\n}\n\n// TODO: move this to proper typing when Candid support TypeScript.\n/**\n * A subclass of an actor. Actor class itself is meant to be a based class.\n */\nexport type ActorSubclass> = Actor & T;\n\n/**\n * An actor method type, defined for each methods of the actor service.\n */\nexport interface ActorMethod {\n (...args: Args): Promise;\n withOptions(options: CallConfig): (...args: Args) => Promise;\n}\n\n/**\n * The mode used when installing a canister.\n */\nexport enum CanisterInstallMode {\n Install = 'install',\n Reinstall = 'reinstall',\n Upgrade = 'upgrade',\n}\n\n/**\n * Internal metadata for actors. It's an enhanced version of ActorConfig with\n * some fields marked as required (as they are defaulted) and canisterId as\n * a Principal type.\n */\ninterface ActorMetadata {\n service: IDL.ServiceClass;\n agent?: Agent;\n config: ActorConfig;\n}\n\nconst metadataSymbol = Symbol.for('ic-agent-metadata');\n\n/**\n * An actor base class. An actor is an object containing only functions that will\n * return a promise. These functions are derived from the IDL definition.\n */\nexport class Actor {\n /**\n * Get the Agent class this Actor would call, or undefined if the Actor would use\n * the default agent (global.ic.agent).\n * @param actor The actor to get the agent of.\n */\n public static agentOf(actor: Actor): Agent | undefined {\n return actor[metadataSymbol].config.agent;\n }\n\n /**\n * Get the interface of an actor, in the form of an instance of a Service.\n * @param actor The actor to get the interface of.\n */\n public static interfaceOf(actor: Actor): IDL.ServiceClass {\n return actor[metadataSymbol].service;\n }\n\n public static canisterIdOf(actor: Actor): Principal {\n return Principal.from(actor[metadataSymbol].config.canisterId);\n }\n\n public static async install(\n fields: {\n module: ArrayBuffer;\n mode?: CanisterInstallMode;\n arg?: ArrayBuffer;\n },\n config: ActorConfig,\n ): Promise {\n const mode = fields.mode === undefined ? CanisterInstallMode.Install : fields.mode;\n // Need to transform the arg into a number array.\n const arg = fields.arg ? [...new Uint8Array(fields.arg)] : [];\n // Same for module.\n const wasmModule = [...new Uint8Array(fields.module)];\n const canisterId =\n typeof config.canisterId === 'string'\n ? Principal.fromText(config.canisterId)\n : config.canisterId;\n\n await getManagementCanister(config).install_code({\n mode: { [mode]: null } as any,\n arg,\n wasm_module: wasmModule,\n canister_id: canisterId,\n });\n }\n\n public static async createCanister(config?: CallConfig): Promise {\n const { canister_id: canisterId } = await getManagementCanister(\n config || {},\n ).provisional_create_canister_with_cycles({ amount: [], settings: [] });\n\n return canisterId;\n }\n\n public static async createAndInstallCanister(\n interfaceFactory: IDL.InterfaceFactory,\n fields: {\n module: ArrayBuffer;\n arg?: ArrayBuffer;\n },\n config?: CallConfig,\n ): Promise {\n const canisterId = await this.createCanister(config);\n await this.install(\n {\n ...fields,\n },\n { ...config, canisterId },\n );\n\n return this.createActor(interfaceFactory, { ...config, canisterId });\n }\n\n public static createActorClass(interfaceFactory: IDL.InterfaceFactory): ActorConstructor {\n const service = interfaceFactory({ IDL });\n\n class CanisterActor extends Actor {\n [x: string]: ActorMethod;\n\n constructor(config: ActorConfig) {\n const canisterId =\n typeof config.canisterId === 'string'\n ? Principal.fromText(config.canisterId)\n : config.canisterId;\n\n super({\n config: {\n ...DEFAULT_ACTOR_CONFIG,\n ...config,\n canisterId,\n },\n service,\n });\n\n for (const [methodName, func] of service._fields) {\n this[methodName] = _createActorMethod(this, methodName, func, config.blsVerify);\n }\n }\n }\n\n return CanisterActor;\n }\n\n public static createActor>(\n interfaceFactory: IDL.InterfaceFactory,\n configuration: ActorConfig,\n ): ActorSubclass {\n return new (this.createActorClass(interfaceFactory))(\n configuration,\n ) as unknown as ActorSubclass;\n }\n\n private [metadataSymbol]: ActorMetadata;\n\n protected constructor(metadata: ActorMetadata) {\n this[metadataSymbol] = Object.freeze(metadata);\n }\n}\n\n// IDL functions can have multiple return values, so decoding always\n// produces an array. Ensure that functions with single or zero return\n// values behave as expected.\nfunction decodeReturnValue(types: IDL.Type[], msg: ArrayBuffer) {\n const returnValues = IDL.decode(types, Buffer.from(msg));\n switch (returnValues.length) {\n case 0:\n return undefined;\n case 1:\n return returnValues[0];\n default:\n return returnValues;\n }\n}\n\nconst DEFAULT_ACTOR_CONFIG = {\n pollingStrategyFactory: strategy.defaultStrategy,\n};\n\nexport type ActorConstructor = new (config: ActorConfig) => ActorSubclass;\n\nfunction _createActorMethod(\n actor: Actor,\n methodName: string,\n func: IDL.FuncClass,\n blsVerify?: CreateCertificateOptions['blsVerify'],\n): ActorMethod {\n let caller: (options: CallConfig, ...args: unknown[]) => Promise;\n if (func.annotations.includes('query')) {\n caller = async (options, ...args) => {\n // First, if there's a config transformation, call it.\n options = {\n ...options,\n ...actor[metadataSymbol].config.queryTransform?.(methodName, args, {\n ...actor[metadataSymbol].config,\n ...options,\n }),\n };\n\n const agent = options.agent || actor[metadataSymbol].config.agent || getDefaultAgent();\n const cid = Principal.from(options.canisterId || actor[metadataSymbol].config.canisterId);\n const arg = IDL.encode(func.argTypes, args);\n\n const result = await agent.query(cid, { methodName, arg });\n\n switch (result.status) {\n case QueryResponseStatus.Rejected:\n throw new QueryCallRejectedError(cid, methodName, result);\n\n case QueryResponseStatus.Replied:\n return decodeReturnValue(func.retTypes, result.reply.arg);\n }\n };\n } else {\n caller = async (options, ...args) => {\n // First, if there's a config transformation, call it.\n options = {\n ...options,\n ...actor[metadataSymbol].config.callTransform?.(methodName, args, {\n ...actor[metadataSymbol].config,\n ...options,\n }),\n };\n\n const agent = options.agent || actor[metadataSymbol].config.agent || getDefaultAgent();\n const { canisterId, effectiveCanisterId, pollingStrategyFactory } = {\n ...DEFAULT_ACTOR_CONFIG,\n ...actor[metadataSymbol].config,\n ...options,\n };\n const cid = Principal.from(canisterId);\n const ecid = effectiveCanisterId !== undefined ? Principal.from(effectiveCanisterId) : cid;\n const arg = IDL.encode(func.argTypes, args);\n const { requestId, response } = await agent.call(cid, {\n methodName,\n arg,\n effectiveCanisterId: ecid,\n });\n\n if (!response.ok) {\n throw new UpdateCallRejectedError(cid, methodName, requestId, response);\n }\n\n const pollStrategy = pollingStrategyFactory();\n const responseBytes = await pollForResponse(agent, ecid, requestId, pollStrategy, blsVerify);\n\n if (responseBytes !== undefined) {\n return decodeReturnValue(func.retTypes, responseBytes);\n } else if (func.retTypes.length === 0) {\n return undefined;\n } else {\n throw new Error(`Call was returned undefined, but type [${func.retTypes.join(',')}].`);\n }\n };\n }\n\n const handler = (...args: unknown[]) => caller({}, ...args);\n handler.withOptions =\n (options: CallConfig) =>\n (...args: unknown[]) =>\n caller(options, ...args);\n return handler as ActorMethod;\n}\n\nexport type ManagementCanisterRecord = _SERVICE;\n\n/**\n * Create a management canister actor\n * @param config\n */\nexport function getManagementCanister(config: CallConfig): ActorSubclass {\n function transform(_methodName: string, args: unknown[], _callConfig: CallConfig) {\n const first = args[0] as any;\n let effectiveCanisterId = Principal.fromHex('');\n if (first && typeof first === 'object' && first.canister_id) {\n effectiveCanisterId = Principal.from(first.canister_id as unknown);\n }\n return { effectiveCanisterId };\n }\n\n return Actor.createActor(managementCanisterIdl, {\n ...config,\n canisterId: Principal.fromHex(''),\n ...{\n callTransform: transform,\n queryTransform: transform,\n },\n });\n}\n","import { Principal } from '@dfinity/principal';\nimport { RequestStatusResponseStatus } from '../agent';\nimport { toHex } from '../utils/buffer';\nimport { PollStrategy } from './index';\nimport { RequestId } from '../request_id';\n\nexport type Predicate = (\n canisterId: Principal,\n requestId: RequestId,\n status: RequestStatusResponseStatus,\n) => Promise;\n\nconst FIVE_MINUTES_IN_MSEC = 5 * 60 * 1000;\n\n/**\n * A best practices polling strategy: wait 2 seconds before the first poll, then 1 second\n * with an exponential backoff factor of 1.2. Timeout after 5 minutes.\n */\nexport function defaultStrategy(): PollStrategy {\n return chain(conditionalDelay(once(), 1000), backoff(1000, 1.2), timeout(FIVE_MINUTES_IN_MSEC));\n}\n\n/**\n * Predicate that returns true once.\n */\nexport function once(): Predicate {\n let first = true;\n return async () => {\n if (first) {\n first = false;\n return true;\n }\n return false;\n };\n}\n\n/**\n * Delay the polling once.\n * @param condition A predicate that indicates when to delay.\n * @param timeInMsec The amount of time to delay.\n */\nexport function conditionalDelay(condition: Predicate, timeInMsec: number): PollStrategy {\n return async (\n canisterId: Principal,\n requestId: RequestId,\n status: RequestStatusResponseStatus,\n ) => {\n if (await condition(canisterId, requestId, status)) {\n return new Promise(resolve => setTimeout(resolve, timeInMsec));\n }\n };\n}\n\n/**\n * Error out after a maximum number of polling has been done.\n * @param count The maximum attempts to poll.\n */\nexport function maxAttempts(count: number): PollStrategy {\n let attempts = count;\n return async (\n canisterId: Principal,\n requestId: RequestId,\n status: RequestStatusResponseStatus,\n ) => {\n if (--attempts <= 0) {\n throw new Error(\n `Failed to retrieve a reply for request after ${count} attempts:\\n` +\n ` Request ID: ${toHex(requestId)}\\n` +\n ` Request status: ${status}\\n`,\n );\n }\n };\n}\n\n/**\n * Throttle polling.\n * @param throttleInMsec Amount in millisecond to wait between each polling.\n */\nexport function throttle(throttleInMsec: number): PollStrategy {\n return () => new Promise(resolve => setTimeout(resolve, throttleInMsec));\n}\n\n/**\n * Reject a call after a certain amount of time.\n * @param timeInMsec Time in milliseconds before the polling should be rejected.\n */\nexport function timeout(timeInMsec: number): PollStrategy {\n const end = Date.now() + timeInMsec;\n return async (\n canisterId: Principal,\n requestId: RequestId,\n status: RequestStatusResponseStatus,\n ) => {\n if (Date.now() > end) {\n throw new Error(\n `Request timed out after ${timeInMsec} msec:\\n` +\n ` Request ID: ${toHex(requestId)}\\n` +\n ` Request status: ${status}\\n`,\n );\n }\n };\n}\n\n/**\n * A strategy that throttle, but using an exponential backoff strategy.\n * @param startingThrottleInMsec The throttle in milliseconds to start with.\n * @param backoffFactor The factor to multiple the throttle time between every poll. For\n * example if using 2, the throttle will double between every run.\n */\nexport function backoff(startingThrottleInMsec: number, backoffFactor: number): PollStrategy {\n let currentThrottling = startingThrottleInMsec;\n\n return () =>\n new Promise(resolve =>\n setTimeout(() => {\n currentThrottling *= backoffFactor;\n resolve();\n }, currentThrottling),\n );\n}\n\n/**\n * Chain multiple polling strategy. This _chains_ the strategies, so if you pass in,\n * say, two throttling strategy of 1 second, it will result in a throttle of 2 seconds.\n * @param strategies A strategy list to chain.\n */\nexport function chain(...strategies: PollStrategy[]): PollStrategy {\n return async (\n canisterId: Principal,\n requestId: RequestId,\n status: RequestStatusResponseStatus,\n ) => {\n for (const a of strategies) {\n await a(canisterId, requestId, status);\n }\n };\n}\n","/**\n * Return an array buffer from its hexadecimal representation.\n * @param hexString The hexadecimal string.\n */\nexport function fromHexString(hexString: string): ArrayBuffer {\n return new Uint8Array((hexString.match(/.{1,2}/g) ?? []).map(byte => parseInt(byte, 16))).buffer;\n}\n\n/**\n * Returns an hexadecimal representation of an array buffer.\n * @param bytes The array buffer.\n */\nexport function toHexString(bytes: ArrayBuffer): string {\n return new Uint8Array(bytes).reduce((str, byte) => str + byte.toString(16).padStart(2, '0'), '');\n}\n","export const bufEquals = (b1: ArrayBuffer, b2: ArrayBuffer): boolean => {\n if (b1.byteLength !== b2.byteLength) return false;\n const u1 = new Uint8Array(b1);\n const u2 = new Uint8Array(b2);\n for (let i = 0; i < u1.length; i++) {\n if (u1[i] !== u2[i]) return false;\n }\n return true;\n};\n\nexport const encodeLenBytes = (len: number): number => {\n if (len <= 0x7f) {\n return 1;\n } else if (len <= 0xff) {\n return 2;\n } else if (len <= 0xffff) {\n return 3;\n } else if (len <= 0xffffff) {\n return 4;\n } else {\n throw new Error('Length too long (> 4 bytes)');\n }\n};\n\nexport const encodeLen = (buf: Uint8Array, offset: number, len: number): number => {\n if (len <= 0x7f) {\n buf[offset] = len;\n return 1;\n } else if (len <= 0xff) {\n buf[offset] = 0x81;\n buf[offset + 1] = len;\n return 2;\n } else if (len <= 0xffff) {\n buf[offset] = 0x82;\n buf[offset + 1] = len >> 8;\n buf[offset + 2] = len;\n return 3;\n } else if (len <= 0xffffff) {\n buf[offset] = 0x83;\n buf[offset + 1] = len >> 16;\n buf[offset + 2] = len >> 8;\n buf[offset + 3] = len;\n return 4;\n } else {\n throw new Error('Length too long (> 4 bytes)');\n }\n};\n\nexport const decodeLenBytes = (buf: Uint8Array, offset: number): number => {\n if (buf[offset] < 0x80) return 1;\n if (buf[offset] === 0x80) throw new Error('Invalid length 0');\n if (buf[offset] === 0x81) return 2;\n if (buf[offset] === 0x82) return 3;\n if (buf[offset] === 0x83) return 4;\n throw new Error('Length too long (> 4 bytes)');\n};\n\nexport const decodeLen = (buf: Uint8Array, offset: number): number => {\n const lenBytes = decodeLenBytes(buf, offset);\n if (lenBytes === 1) return buf[offset];\n else if (lenBytes === 2) return buf[offset + 1];\n else if (lenBytes === 3) return (buf[offset + 1] << 8) + buf[offset + 2];\n else if (lenBytes === 4)\n return (buf[offset + 1] << 16) + (buf[offset + 2] << 8) + buf[offset + 3];\n throw new Error('Length too long (> 4 bytes)');\n};\n\n/**\n * A DER encoded `SEQUENCE(OID)` for DER-encoded-COSE\n */\nexport const DER_COSE_OID = Uint8Array.from([\n ...[0x30, 0x0c], // SEQUENCE\n ...[0x06, 0x0a], // OID with 10 bytes\n ...[0x2b, 0x06, 0x01, 0x04, 0x01, 0x83, 0xb8, 0x43, 0x01, 0x01], // DER encoded COSE\n]);\n\n/**\n * A DER encoded `SEQUENCE(OID)` for the Ed25519 algorithm\n */\nexport const ED25519_OID = Uint8Array.from([\n ...[0x30, 0x05], // SEQUENCE\n ...[0x06, 0x03], // OID with 3 bytes\n ...[0x2b, 0x65, 0x70], // id-Ed25519 OID\n]);\n\n/**\n * A DER encoded `SEQUENCE(OID)` for secp256k1 with the ECDSA algorithm\n */\nexport const SECP256K1_OID = Uint8Array.from([\n ...[0x30, 0x10], // SEQUENCE\n ...[0x06, 0x07], // OID with 7 bytes\n ...[0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01], // OID ECDSA\n ...[0x06, 0x05], // OID with 5 bytes\n ...[0x2b, 0x81, 0x04, 0x00, 0x0a], // OID secp256k1\n]);\n\n/**\n * Wraps the given `payload` in a DER encoding tagged with the given encoded `oid` like so:\n * `SEQUENCE(oid, BITSTRING(payload))`\n *\n * @param payload The payload to encode as the bit string\n * @param oid The DER encoded (and SEQUENCE wrapped!) OID to tag the payload with\n */\nexport function wrapDER(payload: ArrayBuffer, oid: Uint8Array): Uint8Array {\n // The Bit String header needs to include the unused bit count byte in its length\n const bitStringHeaderLength = 2 + encodeLenBytes(payload.byteLength + 1);\n const len = oid.byteLength + bitStringHeaderLength + payload.byteLength;\n let offset = 0;\n const buf = new Uint8Array(1 + encodeLenBytes(len) + len);\n // Sequence\n buf[offset++] = 0x30;\n // Sequence Length\n offset += encodeLen(buf, offset, len);\n\n // OID\n buf.set(oid, offset);\n offset += oid.byteLength;\n\n // Bit String Header\n buf[offset++] = 0x03;\n offset += encodeLen(buf, offset, payload.byteLength + 1);\n // 0 padding\n buf[offset++] = 0x00;\n buf.set(new Uint8Array(payload), offset);\n\n return buf;\n}\n\n/**\n * Extracts a payload from the given `derEncoded` data, and checks that it was tagged with the given `oid`.\n *\n * `derEncoded = SEQUENCE(oid, BITSTRING(payload))`\n *\n * @param derEncoded The DER encoded and tagged data\n * @param oid The DER encoded (and SEQUENCE wrapped!) expected OID\n * @returns The unwrapped payload\n */\nexport const unwrapDER = (derEncoded: ArrayBuffer, oid: Uint8Array): Uint8Array => {\n let offset = 0;\n const expect = (n: number, msg: string) => {\n if (buf[offset++] !== n) {\n throw new Error('Expected: ' + msg);\n }\n };\n\n const buf = new Uint8Array(derEncoded);\n expect(0x30, 'sequence');\n offset += decodeLenBytes(buf, offset);\n\n if (!bufEquals(buf.slice(offset, offset + oid.byteLength), oid)) {\n throw new Error('Not the expected OID.');\n }\n offset += oid.byteLength;\n\n expect(0x03, 'bit string');\n const payloadLen = decodeLen(buf, offset) - 1; // Subtracting 1 to account for the 0 padding\n offset += decodeLenBytes(buf, offset);\n expect(0x00, '0 padding');\n const result = buf.slice(offset);\n if (payloadLen !== result.length) {\n throw new Error(\n `DER payload mismatch: Expected length ${payloadLen} actual length ${result.length}`,\n );\n }\n return result;\n};\n","import { DerEncodedPublicKey, KeyPair, PublicKey, Signature, SignIdentity } from '@dfinity/agent';\nimport * as tweetnacl from 'tweetnacl';\nimport { fromHexString, toHexString } from '../buffer';\nimport { ED25519_OID, unwrapDER, wrapDER } from './der';\n\nexport class Ed25519PublicKey implements PublicKey {\n public static from(key: PublicKey): Ed25519PublicKey {\n return this.fromDer(key.toDer());\n }\n\n public static fromRaw(rawKey: ArrayBuffer): Ed25519PublicKey {\n return new Ed25519PublicKey(rawKey);\n }\n\n public static fromDer(derKey: DerEncodedPublicKey): Ed25519PublicKey {\n return new Ed25519PublicKey(this.derDecode(derKey));\n }\n\n // The length of Ed25519 public keys is always 32 bytes.\n private static RAW_KEY_LENGTH = 32;\n\n private static derEncode(publicKey: ArrayBuffer): DerEncodedPublicKey {\n return wrapDER(publicKey, ED25519_OID).buffer as DerEncodedPublicKey;\n }\n\n private static derDecode(key: DerEncodedPublicKey): ArrayBuffer {\n const unwrapped = unwrapDER(key, ED25519_OID);\n if (unwrapped.length !== this.RAW_KEY_LENGTH) {\n throw new Error('An Ed25519 public key must be exactly 32bytes long');\n }\n return unwrapped;\n }\n\n private readonly rawKey: ArrayBuffer;\n private readonly derKey: DerEncodedPublicKey;\n\n // `fromRaw` and `fromDer` should be used for instantiation, not this constructor.\n private constructor(key: ArrayBuffer) {\n this.rawKey = key;\n this.derKey = Ed25519PublicKey.derEncode(key);\n }\n\n public toDer(): DerEncodedPublicKey {\n return this.derKey;\n }\n\n public toRaw(): ArrayBuffer {\n return this.rawKey;\n }\n}\n\nexport class Ed25519KeyIdentity extends SignIdentity {\n public static generate(seed?: Uint8Array): Ed25519KeyIdentity {\n if (seed && seed.length !== 32) {\n throw new Error('Ed25519 Seed needs to be 32 bytes long.');\n }\n\n const { publicKey, secretKey } =\n seed === undefined ? tweetnacl.sign.keyPair() : tweetnacl.sign.keyPair.fromSeed(seed);\n return new this(Ed25519PublicKey.fromRaw(publicKey), secretKey);\n }\n\n public static fromParsedJson(obj: JsonnableEd25519KeyIdentity): Ed25519KeyIdentity {\n const [publicKeyDer, privateKeyRaw] = obj;\n return new Ed25519KeyIdentity(\n Ed25519PublicKey.fromDer(fromHexString(publicKeyDer) as DerEncodedPublicKey),\n fromHexString(privateKeyRaw),\n );\n }\n\n public static fromJSON(json: string): Ed25519KeyIdentity {\n const parsed = JSON.parse(json);\n if (Array.isArray(parsed)) {\n if (typeof parsed[0] === 'string' && typeof parsed[1] === 'string') {\n return this.fromParsedJson([parsed[0], parsed[1]]);\n } else {\n throw new Error('Deserialization error: JSON must have at least 2 items.');\n }\n }\n throw new Error(`Deserialization error: Invalid JSON type for string: ${JSON.stringify(json)}`);\n }\n\n public static fromKeyPair(publicKey: ArrayBuffer, privateKey: ArrayBuffer): Ed25519KeyIdentity {\n return new Ed25519KeyIdentity(Ed25519PublicKey.fromRaw(publicKey), privateKey);\n }\n\n public static fromSecretKey(secretKey: ArrayBuffer): Ed25519KeyIdentity {\n const keyPair = tweetnacl.sign.keyPair.fromSecretKey(new Uint8Array(secretKey));\n return Ed25519KeyIdentity.fromKeyPair(keyPair.publicKey, keyPair.secretKey);\n }\n\n protected _publicKey: Ed25519PublicKey;\n\n // `fromRaw` and `fromDer` should be used for instantiation, not this constructor.\n protected constructor(publicKey: PublicKey, protected _privateKey: ArrayBuffer) {\n super();\n this._publicKey = Ed25519PublicKey.from(publicKey);\n }\n\n /**\n * Serialize this key to JSON.\n */\n public toJSON(): JsonnableEd25519KeyIdentity {\n return [toHexString(this._publicKey.toDer()), toHexString(this._privateKey)];\n }\n\n /**\n * Return a copy of the key pair.\n */\n public getKeyPair(): KeyPair {\n return {\n secretKey: this._privateKey,\n publicKey: this._publicKey,\n };\n }\n\n /**\n * Return the public key.\n */\n public getPublicKey(): PublicKey {\n return this._publicKey;\n }\n\n /**\n * Signs a blob of data, with this identity's private key.\n * @param challenge - challenge to sign with this identity's secretKey, producing a signature\n */\n public async sign(challenge: ArrayBuffer): Promise {\n const blob = new Uint8Array(challenge);\n const signature = tweetnacl.sign.detached(blob, new Uint8Array(this._privateKey)).buffer;\n return signature as Signature;\n }\n}\n\ntype PublicKeyHex = string;\ntype SecretKeyHex = string;\nexport type JsonnableEd25519KeyIdentity = [PublicKeyHex, SecretKeyHex];\n","import { DerEncodedPublicKey, PublicKey, Signature, SignIdentity } from '@dfinity/agent';\n\n/**\n * Options used in a {@link ECDSAKeyIdentity}\n */\nexport type CryptoKeyOptions = {\n extractable?: boolean;\n keyUsages?: KeyUsage[];\n subtleCrypto?: SubtleCrypto;\n};\n\nexport class CryptoError extends Error {\n constructor(public readonly message: string) {\n super(message);\n Object.setPrototypeOf(this, CryptoError.prototype);\n }\n}\n\nexport interface DerCryptoKey extends CryptoKey {\n toDer: () => DerEncodedPublicKey;\n}\n\n/**\n * Utility method to ensure that a subtleCrypto implementation is provided or is available in the global context\n * @param subtleCrypto SubtleCrypto implementation\n * @returns subleCrypto\n */\nfunction _getEffectiveCrypto(subtleCrypto: CryptoKeyOptions['subtleCrypto']): SubtleCrypto {\n if (subtleCrypto) {\n return subtleCrypto;\n } else if (typeof crypto !== 'undefined' && crypto['subtle']) {\n return crypto.subtle;\n } else {\n throw new CryptoError(\n 'Global crypto was not available and none was provided. Please inlcude a SubtleCrypto implementation. See https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto',\n );\n }\n}\n\n/**\n * An identity interface that wraps an ECDSA keypair using the P-256 named curve. Supports DER-encoding and decoding for agent calls\n */\nexport class ECDSAKeyIdentity extends SignIdentity {\n /**\n * Generates a randomly generated identity for use in calls to the Internet Computer.\n * @param {CryptoKeyOptions} options optional settings\n * @param {CryptoKeyOptions['extractable']} options.extractable - whether the key should allow itself to be used. Set to false for maximum security.\n * @param {CryptoKeyOptions['keyUsages']} options.keyUsages - a list of key usages that the key can be used for\n * @param {CryptoKeyOptions['subtleCrypto']} options.subtleCrypto interface\n * @constructs ECDSAKeyIdentity\n * @returns a {@link ECDSAKeyIdentity}\n */\n public static async generate(options?: CryptoKeyOptions): Promise {\n const { extractable = false, keyUsages = ['sign', 'verify'], subtleCrypto } = options ?? {};\n const effectiveCrypto = _getEffectiveCrypto(subtleCrypto);\n const keyPair = await effectiveCrypto.generateKey(\n {\n name: 'ECDSA',\n namedCurve: 'P-256',\n },\n extractable,\n keyUsages,\n );\n const derKey = (await effectiveCrypto.exportKey(\n 'spki',\n keyPair.publicKey,\n )) as DerEncodedPublicKey;\n\n return new this(keyPair, derKey, effectiveCrypto);\n }\n\n /**\n * generates an identity from a public and private key. Please ensure that you are generating these keys securely and protect the user's private key\n * @param keyPair a {@link CryptoKeyPair}\n * @param subtleCrypto a {@link SubtleCrypto} interface in case one is not available globally\n * @returns an {@link ECDSAKeyIdentity}\n */\n public static async fromKeyPair(\n keyPair: CryptoKeyPair | { privateKey: CryptoKey; publicKey: CryptoKey },\n subtleCrypto?: SubtleCrypto,\n ): Promise {\n const effectiveCrypto = _getEffectiveCrypto(subtleCrypto);\n const derKey = (await effectiveCrypto.exportKey(\n 'spki',\n keyPair.publicKey,\n )) as DerEncodedPublicKey;\n return new ECDSAKeyIdentity(keyPair, derKey, effectiveCrypto);\n }\n\n protected _derKey: DerEncodedPublicKey;\n protected _keyPair: CryptoKeyPair;\n protected _subtleCrypto: SubtleCrypto;\n\n // `fromKeyPair` and `generate` should be used for instantiation, not this constructor.\n protected constructor(\n keyPair: CryptoKeyPair,\n derKey: DerEncodedPublicKey,\n subtleCrypto: SubtleCrypto,\n ) {\n super();\n this._keyPair = keyPair;\n this._derKey = derKey;\n this._subtleCrypto = subtleCrypto;\n }\n\n /**\n * Return the internally-used key pair.\n * @returns a {@link CryptoKeyPair}\n */\n public getKeyPair(): CryptoKeyPair {\n return this._keyPair;\n }\n\n /**\n * Return the public key.\n * @returns an {@link DerCryptoKey}\n */\n public getPublicKey(): DerCryptoKey {\n const derKey = this._derKey;\n const key: DerCryptoKey = Object.create(this._keyPair.publicKey);\n key.toDer = function () {\n return derKey;\n };\n\n return key;\n }\n\n /**\n * Signs a blob of data, with this identity's private key.\n * @param {ArrayBuffer} challenge - challenge to sign with this identity's secretKey, producing a signature\n * @returns {Promise} signature\n */\n public async sign(challenge: ArrayBuffer): Promise {\n const params: EcdsaParams = {\n name: 'ECDSA',\n hash: { name: 'SHA-256' },\n };\n this._keyPair.privateKey;\n const signature = await this._subtleCrypto.sign(params, this._keyPair.privateKey, challenge);\n\n return signature as Signature;\n }\n}\n\nexport default ECDSAKeyIdentity;\n","import {\n DerEncodedPublicKey,\n HttpAgentRequest,\n PublicKey,\n requestIdOf,\n Signature,\n SignIdentity,\n} from '@dfinity/agent';\nimport { Principal } from '@dfinity/principal';\nimport * as cbor from 'simple-cbor';\nimport { fromHexString, toHexString } from '../buffer';\n\nconst domainSeparator = new TextEncoder().encode('\\x1Aic-request-auth-delegation');\nconst requestDomainSeparator = new TextEncoder().encode('\\x0Aic-request');\n\nfunction _parseBlob(value: unknown): ArrayBuffer {\n if (typeof value !== 'string' || value.length < 64) {\n throw new Error('Invalid public key.');\n }\n\n return fromHexString(value);\n}\n\n/**\n * A single delegation object that is signed by a private key. This is constructed by\n * `DelegationChain.create()`.\n *\n * {@see DelegationChain}\n */\nexport class Delegation {\n constructor(\n public readonly pubkey: ArrayBuffer,\n public readonly expiration: bigint,\n public readonly targets?: Principal[],\n ) {}\n\n public toCBOR(): cbor.CborValue {\n // Expiration field needs to be encoded as a u64 specifically.\n return cbor.value.map({\n pubkey: cbor.value.bytes(this.pubkey),\n expiration: cbor.value.u64(this.expiration.toString(16), 16),\n ...(this.targets && {\n targets: cbor.value.array(this.targets.map(t => cbor.value.bytes(t.toUint8Array()))),\n }),\n });\n }\n\n public toJSON(): JsonnableDelegation {\n // every string should be hex and once-de-hexed,\n // discoverable what it is (e.g. de-hex to get JSON with a 'type' property, or de-hex to DER\n // with an OID). After de-hex, if it's not obvious what it is, it's an ArrayBuffer.\n return {\n expiration: this.expiration.toString(16),\n pubkey: toHexString(this.pubkey),\n ...(this.targets && { targets: this.targets.map(p => p.toHex()) }),\n };\n }\n}\n\n/**\n * Type of ReturnType.\n * The goal here is to stringify all non-JSON-compatible types to some bytes representation we can\n * stringify as hex.\n * (Hex shouldn't be ambiguous ever, because you can encode as DER with semantic OIDs).\n */\ninterface JsonnableDelegation {\n // A BigInt of Nanoseconds since epoch as hex\n expiration: string;\n // Hexadecimal representation of the DER public key.\n pubkey: string;\n // Array of strings, where each string is hex of principal blob (*NOT* textual representation).\n targets?: string[];\n}\n\n/**\n * A signed delegation, which lends its identity to the public key in the delegation\n * object. This is constructed by `DelegationChain.create()`.\n *\n * {@see DelegationChain}\n */\nexport interface SignedDelegation {\n delegation: Delegation;\n signature: Signature;\n}\n\n/**\n * Sign a single delegation object for a period of time.\n *\n * @param from The identity that lends its delegation.\n * @param to The identity that receives the delegation.\n * @param expiration An expiration date for this delegation.\n * @param targets Limit this delegation to the target principals.\n */\nasync function _createSingleDelegation(\n from: SignIdentity,\n to: PublicKey,\n expiration: Date,\n targets?: Principal[],\n): Promise {\n const delegation: Delegation = new Delegation(\n to.toDer(),\n BigInt(+expiration) * BigInt(1000000), // In nanoseconds.\n targets,\n );\n // The signature is calculated by signing the concatenation of the domain separator\n // and the message.\n // Note: To ensure Safari treats this as a user gesture, ensure to not use async methods\n // besides the actualy webauthn functionality (such as `sign`). Safari will de-register\n // a user gesture if you await an async call thats not fetch, xhr, or setTimeout.\n const challenge = new Uint8Array([\n ...domainSeparator,\n ...new Uint8Array(requestIdOf(delegation)),\n ]);\n const signature = await from.sign(challenge);\n\n return {\n delegation,\n signature,\n };\n}\n\nexport interface JsonnableDelegationChain {\n publicKey: string;\n delegations: Array<{\n signature: string;\n delegation: {\n pubkey: string;\n expiration: string;\n targets?: string[];\n };\n }>;\n}\n\n/**\n * A chain of delegations. This is JSON Serializable.\n * This is the object to serialize and pass to a DelegationIdentity. It does not keep any\n * private keys.\n */\nexport class DelegationChain {\n /**\n * Create a delegation chain between two (or more) keys. By default, the expiration time\n * will be very short (15 minutes).\n *\n * To build a chain of more than 2 identities, this function needs to be called multiple times,\n * passing the previous delegation chain into the options argument. For example:\n *\n * @example\n * const rootKey = createKey();\n * const middleKey = createKey();\n * const bottomeKey = createKey();\n *\n * const rootToMiddle = await DelegationChain.create(\n * root, middle.getPublicKey(), Date.parse('2100-01-01'),\n * );\n * const middleToBottom = await DelegationChain.create(\n * middle, bottom.getPublicKey(), Date.parse('2100-01-01'), { previous: rootToMiddle },\n * );\n *\n * // We can now use a delegation identity that uses the delegation above:\n * const identity = DelegationIdentity.fromDelegation(bottomKey, middleToBottom);\n *\n * @param from The identity that will delegate.\n * @param to The identity that gets delegated. It can now sign messages as if it was the\n * identity above.\n * @param expiration The length the delegation is valid. By default, 15 minutes from calling\n * this function.\n * @param options A set of options for this delegation. expiration and previous\n * @param options.previous - Another DelegationChain that this chain should start with.\n * @param options.targets - targets that scope the delegation (e.g. Canister Principals)\n */\n public static async create(\n from: SignIdentity,\n to: PublicKey,\n expiration: Date = new Date(Date.now() + 15 * 60 * 1000),\n options: {\n previous?: DelegationChain;\n targets?: Principal[];\n } = {},\n ): Promise {\n const delegation = await _createSingleDelegation(from, to, expiration, options.targets);\n return new DelegationChain(\n [...(options.previous?.delegations || []), delegation],\n options.previous?.publicKey || from.getPublicKey().toDer(),\n );\n }\n\n /**\n * Creates a DelegationChain object from a JSON string.\n *\n * @param json The JSON string to parse.\n */\n public static fromJSON(json: string | JsonnableDelegationChain): DelegationChain {\n const { publicKey, delegations } = typeof json === 'string' ? JSON.parse(json) : json;\n if (!Array.isArray(delegations)) {\n throw new Error('Invalid delegations.');\n }\n\n const parsedDelegations: SignedDelegation[] = delegations.map(signedDelegation => {\n const { delegation, signature } = signedDelegation;\n const { pubkey, expiration, targets } = delegation;\n if (targets !== undefined && !Array.isArray(targets)) {\n throw new Error('Invalid targets.');\n }\n\n return {\n delegation: new Delegation(\n _parseBlob(pubkey),\n BigInt(`0x${expiration}`), // expiration in JSON is an hexa string (See toJSON() below).\n targets &&\n targets.map((t: unknown) => {\n if (typeof t !== 'string') {\n throw new Error('Invalid target.');\n }\n return Principal.fromHex(t);\n }),\n ),\n signature: _parseBlob(signature) as Signature,\n };\n });\n\n return new this(parsedDelegations, _parseBlob(publicKey) as DerEncodedPublicKey);\n }\n\n /**\n * Creates a DelegationChain object from a list of delegations and a DER-encoded public key.\n *\n * @param delegations The list of delegations.\n * @param publicKey The DER-encoded public key of the key-pair signing the first delegation.\n */\n public static fromDelegations(\n delegations: SignedDelegation[],\n publicKey: DerEncodedPublicKey,\n ): DelegationChain {\n return new this(delegations, publicKey);\n }\n\n protected constructor(\n public readonly delegations: SignedDelegation[],\n public readonly publicKey: DerEncodedPublicKey,\n ) {}\n\n public toJSON(): JsonnableDelegationChain {\n return {\n delegations: this.delegations.map(signedDelegation => {\n const { delegation, signature } = signedDelegation;\n const { targets } = delegation;\n return {\n delegation: {\n expiration: delegation.expiration.toString(16),\n pubkey: toHexString(delegation.pubkey),\n ...(targets && {\n targets: targets.map(t => t.toHex()),\n }),\n },\n signature: toHexString(signature),\n };\n }),\n publicKey: toHexString(this.publicKey),\n };\n }\n}\n\n/**\n * An Identity that adds delegation to a request. Everywhere in this class, the name\n * innerKey refers to the SignIdentity that is being used to sign the requests, while\n * originalKey is the identity that is being borrowed. More identities can be used\n * in the middle to delegate.\n */\nexport class DelegationIdentity extends SignIdentity {\n /**\n * Create a delegation without having access to delegateKey.\n *\n * @param key The key used to sign the reqyests.\n * @param delegation A delegation object created using `createDelegation`.\n */\n public static fromDelegation(\n key: Pick,\n delegation: DelegationChain,\n ): DelegationIdentity {\n return new this(key, delegation);\n }\n\n protected constructor(\n private _inner: Pick,\n private _delegation: DelegationChain,\n ) {\n super();\n }\n\n public getDelegation(): DelegationChain {\n return this._delegation;\n }\n\n public getPublicKey(): PublicKey {\n return {\n toDer: () => this._delegation.publicKey,\n };\n }\n public sign(blob: ArrayBuffer): Promise {\n return this._inner.sign(blob);\n }\n\n public async transformRequest(request: HttpAgentRequest): Promise {\n const { body, ...fields } = request;\n const requestId = await requestIdOf(body);\n return {\n ...fields,\n body: {\n content: body,\n sender_sig: await this.sign(\n new Uint8Array([...requestDomainSeparator, ...new Uint8Array(requestId)]),\n ),\n sender_delegation: this._delegation.delegations,\n sender_pubkey: this._delegation.publicKey,\n },\n };\n }\n}\n\n/**\n * List of things to check for a delegation chain validity.\n */\nexport interface DelegationValidChecks {\n /**\n * Check that the scope is amongst the scopes that this delegation has access to.\n */\n scope?: Principal | string | Array;\n}\n\n/**\n * Analyze a DelegationChain and validate that it's valid, ie. not expired and apply to the\n * scope.\n * @param chain The chain to validate.\n * @param checks Various checks to validate on the chain.\n */\nexport function isDelegationValid(chain: DelegationChain, checks?: DelegationValidChecks): boolean {\n // Verify that the no delegation is expired. If any are in the chain, returns false.\n for (const { delegation } of chain.delegations) {\n // prettier-ignore\n if (+new Date(Number(delegation.expiration / BigInt(1000000))) <= +Date.now()) {\n return false;\n }\n }\n\n // Check the scopes.\n const scopes: Principal[] = [];\n const maybeScope = checks?.scope;\n if (maybeScope) {\n if (Array.isArray(maybeScope)) {\n scopes.push(...maybeScope.map(s => (typeof s === 'string' ? Principal.fromText(s) : s)));\n } else {\n scopes.push(typeof maybeScope === 'string' ? Principal.fromText(maybeScope) : maybeScope);\n }\n }\n\n for (const s of scopes) {\n const scope = s.toText();\n for (const { delegation } of chain.delegations) {\n if (delegation.targets === undefined) {\n continue;\n }\n\n let none = true;\n for (const target of delegation.targets) {\n if (target.toText() === scope) {\n none = false;\n break;\n }\n }\n if (none) {\n return false;\n }\n }\n }\n\n return true;\n}\n","import { DerEncodedPublicKey, PublicKey, Signature, SignIdentity } from '@dfinity/agent';\nimport borc from 'borc';\nimport * as tweetnacl from 'tweetnacl';\nimport { fromHexString, toHexString } from '../buffer';\nimport { DER_COSE_OID, wrapDER } from './der';\n\nfunction _coseToDerEncodedBlob(cose: ArrayBuffer): DerEncodedPublicKey {\n return wrapDER(cose, DER_COSE_OID).buffer as DerEncodedPublicKey;\n}\n\ntype PublicKeyCredentialWithAttachment = PublicKeyCredential & {\n // Extends `PublicKeyCredential` with an optional field introduced in the WebAuthn level 3 spec:\n // https://w3c.github.io/webauthn/#dom-publickeycredential-authenticatorattachment\n // Already supported by Chrome, Safari and Edge\n // Note: `null` is included here as a possible value because Edge set this value to null in the\n // past.\n authenticatorAttachment: AuthenticatorAttachment | undefined | null;\n};\n\n/**\n * From the documentation;\n * The authData is a byte array described in the spec. Parsing it will involve slicing bytes from\n * the array and converting them into usable objects.\n *\n * See https://webauthn.guide/#registration (subsection \"Example: Parsing the authenticator data\").\n *\n * @param authData The authData field of the attestation response.\n * @returns The COSE key of the authData.\n */\nfunction _authDataToCose(authData: ArrayBuffer): ArrayBuffer {\n const dataView = new DataView(new ArrayBuffer(2));\n const idLenBytes = authData.slice(53, 55);\n [...new Uint8Array(idLenBytes)].forEach((v, i) => dataView.setUint8(i, v));\n const credentialIdLength = dataView.getUint16(0);\n\n // Get the public key object.\n return authData.slice(55 + credentialIdLength);\n}\n\nexport class CosePublicKey implements PublicKey {\n protected _encodedKey: DerEncodedPublicKey;\n\n public constructor(protected _cose: ArrayBuffer) {\n this._encodedKey = _coseToDerEncodedBlob(_cose);\n }\n\n public toDer(): DerEncodedPublicKey {\n return this._encodedKey;\n }\n\n public getCose(): ArrayBuffer {\n return this._cose;\n }\n}\n\n/**\n * Create a challenge from a string or array. The default challenge is always the same\n * because we don't need to verify the authenticity of the key on the server (we don't\n * register our keys with the IC). Any challenge would do, even one per key, randomly\n * generated.\n *\n * @param challenge The challenge to transform into a byte array. By default a hard\n * coded string.\n */\nfunction _createChallengeBuffer(challenge: string | Uint8Array = ''): Uint8Array {\n if (typeof challenge === 'string') {\n return Uint8Array.from(challenge, c => c.charCodeAt(0));\n } else {\n return challenge;\n }\n}\n\n/**\n * Create a credentials to authenticate with a server. This is necessary in order in\n * WebAuthn to get credentials IDs (which give us the public key and allow us to\n * sign), but in the case of the Internet Computer, we don't actually need to register\n * it, so we don't.\n * @param credentialCreationOptions an optional CredentialCreationOptions object\n */\nasync function _createCredential(\n credentialCreationOptions?: CredentialCreationOptions,\n): Promise {\n const creds = (await navigator.credentials.create(\n credentialCreationOptions ?? {\n publicKey: {\n authenticatorSelection: {\n userVerification: 'preferred',\n },\n attestation: 'direct',\n challenge: _createChallengeBuffer(),\n pubKeyCredParams: [{ type: 'public-key', alg: PubKeyCoseAlgo.ECDSA_WITH_SHA256 }],\n rp: {\n name: 'Internet Identity Service',\n },\n user: {\n id: tweetnacl.randomBytes(16),\n name: 'Internet Identity',\n displayName: 'Internet Identity',\n },\n },\n },\n )) as PublicKeyCredentialWithAttachment;\n\n // Validate that it's the correct type at runtime, since WebAuthn does not HAVE to\n // reply with a PublicKeyCredential.\n if (creds.response === undefined || !(creds.rawId instanceof ArrayBuffer)) {\n return null;\n } else {\n return creds;\n }\n}\n\n// See https://www.iana.org/assignments/cose/cose.xhtml#algorithms for a complete\n// list of these algorithms. We only list the ones we support here.\nenum PubKeyCoseAlgo {\n ECDSA_WITH_SHA256 = -7,\n}\n\n/**\n * A SignIdentity that uses `navigator.credentials`. See https://webauthn.guide/ for\n * more information about WebAuthentication.\n */\nexport class WebAuthnIdentity extends SignIdentity {\n /**\n * Create an identity from a JSON serialization.\n * @param json - json to parse\n */\n public static fromJSON(json: string): WebAuthnIdentity {\n const { publicKey, rawId } = JSON.parse(json);\n\n if (typeof publicKey !== 'string' || typeof rawId !== 'string') {\n throw new Error('Invalid JSON string.');\n }\n\n return new this(fromHexString(rawId), fromHexString(publicKey), undefined);\n }\n\n /**\n * Create an identity.\n * @param credentialCreationOptions an optional CredentialCreationOptions Challenge\n */\n public static async create(\n credentialCreationOptions?: CredentialCreationOptions,\n ): Promise {\n const creds = await _createCredential(credentialCreationOptions);\n\n if (!creds || creds.type !== 'public-key') {\n throw new Error('Could not create credentials.');\n }\n\n const response = creds.response as AuthenticatorAttestationResponse;\n if (!(response.attestationObject instanceof ArrayBuffer)) {\n throw new Error('Was expecting an attestation response.');\n }\n\n // Parse the attestationObject as CBOR.\n const attObject = borc.decodeFirst(new Uint8Array(response.attestationObject));\n\n return new this(\n creds.rawId,\n _authDataToCose(attObject.authData),\n creds.authenticatorAttachment ?? undefined,\n );\n }\n\n protected _publicKey: CosePublicKey;\n\n public constructor(\n public readonly rawId: ArrayBuffer,\n cose: ArrayBuffer,\n protected authenticatorAttachment: AuthenticatorAttachment | undefined,\n ) {\n super();\n this._publicKey = new CosePublicKey(cose);\n }\n\n public getPublicKey(): PublicKey {\n return this._publicKey;\n }\n\n /**\n * WebAuthn level 3 spec introduces a new attribute on successful WebAuthn interactions,\n * see https://w3c.github.io/webauthn/#dom-publickeycredential-authenticatorattachment.\n * This attribute is already implemented for Chrome, Safari and Edge.\n *\n * Given the attribute is only available after a successful interaction, the information is\n * provided opportunistically and might also be `undefined`.\n */\n public getAuthenticatorAttachment(): AuthenticatorAttachment | undefined {\n return this.authenticatorAttachment;\n }\n\n public async sign(blob: ArrayBuffer): Promise {\n const result = (await navigator.credentials.get({\n publicKey: {\n allowCredentials: [\n {\n type: 'public-key',\n id: this.rawId,\n },\n ],\n challenge: blob,\n userVerification: 'preferred',\n },\n })) as PublicKeyCredentialWithAttachment;\n\n if (result.authenticatorAttachment !== null) {\n this.authenticatorAttachment = result.authenticatorAttachment;\n }\n\n const response = result.response as AuthenticatorAssertionResponse;\n if (\n response.signature instanceof ArrayBuffer &&\n response.authenticatorData instanceof ArrayBuffer\n ) {\n const cbor = borc.encode(\n new borc.Tagged(55799, {\n authenticator_data: new Uint8Array(response.authenticatorData),\n client_data_json: new TextDecoder().decode(response.clientDataJSON),\n signature: new Uint8Array(response.signature),\n }),\n );\n if (!cbor) {\n throw new Error('failed to encode cbor');\n }\n return cbor.buffer as Signature;\n } else {\n throw new Error('Invalid response from WebAuthn.');\n }\n }\n\n /**\n * Allow for JSON serialization of all information needed to reuse this identity.\n */\n public toJSON(): JsonnableWebAuthnIdentitiy {\n return {\n publicKey: toHexString(this._publicKey.getCose()),\n rawId: toHexString(this.rawId),\n };\n }\n}\n\n/**\n * ReturnType\n */\nexport interface JsonnableWebAuthnIdentitiy {\n // The hexadecimal representation of the DER encoded public key.\n publicKey: string;\n // The string representation of the local WebAuthn Credential.id (base64url encoded).\n rawId: string;\n}\n","export const idlFactory = ({ IDL }) => {\n const ClearArguments = IDL.Record({});\n const BatchId = IDL.Nat;\n const Key = IDL.Text;\n const CreateAssetArguments = IDL.Record({\n key: Key,\n content_type: IDL.Text,\n });\n const UnsetAssetContentArguments = IDL.Record({\n key: Key,\n content_encoding: IDL.Text,\n });\n const DeleteAssetArguments = IDL.Record({ key: Key });\n const ChunkId = IDL.Nat;\n const SetAssetContentArguments = IDL.Record({\n key: Key,\n sha256: IDL.Opt(IDL.Vec(IDL.Nat8)),\n chunk_ids: IDL.Vec(ChunkId),\n content_encoding: IDL.Text,\n });\n const BatchOperationKind = IDL.Variant({\n CreateAsset: CreateAssetArguments,\n UnsetAssetContent: UnsetAssetContentArguments,\n DeleteAsset: DeleteAssetArguments,\n SetAssetContent: SetAssetContentArguments,\n Clear: ClearArguments,\n });\n const HeaderField = IDL.Tuple(IDL.Text, IDL.Text);\n const HttpRequest = IDL.Record({\n url: IDL.Text,\n method: IDL.Text,\n body: IDL.Vec(IDL.Nat8),\n headers: IDL.Vec(HeaderField),\n });\n const StreamingCallbackToken = IDL.Record({\n key: Key,\n sha256: IDL.Opt(IDL.Vec(IDL.Nat8)),\n index: IDL.Nat,\n content_encoding: IDL.Text,\n });\n const StreamingCallbackHttpResponse = IDL.Record({\n token: IDL.Opt(StreamingCallbackToken),\n body: IDL.Vec(IDL.Nat8),\n });\n const StreamingStrategy = IDL.Variant({\n Callback: IDL.Record({\n token: StreamingCallbackToken,\n callback: IDL.Func(\n [StreamingCallbackToken],\n [IDL.Opt(StreamingCallbackHttpResponse)],\n ['query'],\n ),\n }),\n });\n const HttpResponse = IDL.Record({\n body: IDL.Vec(IDL.Nat8),\n headers: IDL.Vec(HeaderField),\n streaming_strategy: IDL.Opt(StreamingStrategy),\n status_code: IDL.Nat16,\n });\n const Time = IDL.Int;\n return IDL.Service({\n authorize: IDL.Func([IDL.Principal], [], []),\n clear: IDL.Func([ClearArguments], [], []),\n commit_batch: IDL.Func(\n [\n IDL.Record({\n batch_id: BatchId,\n operations: IDL.Vec(BatchOperationKind),\n }),\n ],\n [],\n [],\n ),\n create_asset: IDL.Func([CreateAssetArguments], [], []),\n create_batch: IDL.Func([IDL.Record({})], [IDL.Record({ batch_id: BatchId })], []),\n create_chunk: IDL.Func(\n [IDL.Record({ content: IDL.Vec(IDL.Nat8), batch_id: BatchId })],\n [IDL.Record({ chunk_id: ChunkId })],\n [],\n ),\n delete_asset: IDL.Func([DeleteAssetArguments], [], []),\n get: IDL.Func(\n [IDL.Record({ key: Key, accept_encodings: IDL.Vec(IDL.Text) })],\n [\n IDL.Record({\n content: IDL.Vec(IDL.Nat8),\n sha256: IDL.Opt(IDL.Vec(IDL.Nat8)),\n content_type: IDL.Text,\n content_encoding: IDL.Text,\n total_length: IDL.Nat,\n }),\n ],\n ['query'],\n ),\n get_chunk: IDL.Func(\n [\n IDL.Record({\n key: Key,\n sha256: IDL.Opt(IDL.Vec(IDL.Nat8)),\n index: IDL.Nat,\n content_encoding: IDL.Text,\n }),\n ],\n [IDL.Record({ content: IDL.Vec(IDL.Nat8) })],\n ['query'],\n ),\n http_request: IDL.Func([HttpRequest], [HttpResponse], ['query']),\n http_request_streaming_callback: IDL.Func(\n [StreamingCallbackToken],\n [IDL.Opt(StreamingCallbackHttpResponse)],\n ['query'],\n ),\n list: IDL.Func(\n [IDL.Record({})],\n [\n IDL.Vec(\n IDL.Record({\n key: Key,\n encodings: IDL.Vec(\n IDL.Record({\n modified: Time,\n sha256: IDL.Opt(IDL.Vec(IDL.Nat8)),\n length: IDL.Nat,\n content_encoding: IDL.Text,\n }),\n ),\n content_type: IDL.Text,\n }),\n ),\n ],\n ['query'],\n ),\n set_asset_content: IDL.Func([SetAssetContentArguments], [], []),\n store: IDL.Func(\n [\n IDL.Record({\n key: Key,\n content: IDL.Vec(IDL.Nat8),\n sha256: IDL.Opt(IDL.Vec(IDL.Nat8)),\n content_type: IDL.Text,\n content_encoding: IDL.Text,\n }),\n ],\n [],\n [],\n ),\n unset_asset_content: IDL.Func([UnsetAssetContentArguments], [], []),\n });\n};\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const encode = (arraybuffer: ArrayBuffer): string => {\n let bytes = new Uint8Array(arraybuffer),\n i,\n len = bytes.length,\n base64 = '';\n\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n\n return base64;\n};\n\nexport const decode = (base64: string): ArrayBuffer => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n};\n","export interface Readable {\n fileName: string;\n contentType: string;\n length: number;\n open: () => Promise;\n close: () => Promise;\n slice: (start: number, end: number) => Promise;\n}\n\nconst isObjWithKeys = (\n obj: unknown,\n ...keys: Array\n): obj is Record =>\n obj !== null &&\n typeof obj === 'object' &&\n keys.every(key => key !== null && key !== undefined && key in obj);\n\nexport const isReadable = (value: unknown): value is Readable =>\n isObjWithKeys(value, 'fileName', 'contentType', 'length', 'open', 'close', 'slice') &&\n typeof value.fileName === 'string' &&\n typeof value.contentType === 'string' &&\n typeof value.length === 'number' &&\n typeof value.open === 'function' &&\n typeof value.close === 'function' &&\n typeof value.slice === 'function';\n","import { Readable } from './readable';\n\nexport class ReadableFile implements Readable {\n private readonly _file: File;\n\n constructor(file: File) {\n this._file = file;\n }\n\n public get fileName(): string {\n return this._file.name;\n }\n\n public get contentType(): string {\n return this._file.type;\n }\n\n public get length(): number {\n return this._file.size;\n }\n\n public async open(): Promise {\n return Promise.resolve();\n }\n\n public async close(): Promise {\n return Promise.resolve();\n }\n\n public async slice(start: number, end: number): Promise {\n return new Uint8Array(await this._file.slice(start, end).arrayBuffer());\n }\n}\n","import { Readable } from './readable';\nimport mime from 'mime/lite';\n\nexport class ReadableBlob implements Readable {\n public readonly fileName: string;\n private readonly _blob: Blob;\n\n constructor(fileName: string, blob: Blob) {\n this.fileName = fileName;\n this._blob = blob;\n }\n\n public get contentType(): string {\n return this._blob.type || (mime.getType(this.fileName) ?? 'application/octet-stream');\n }\n\n public get length(): number {\n return this._blob.size;\n }\n\n async open(): Promise {\n return Promise.resolve();\n }\n\n async close(): Promise {\n return Promise.resolve();\n }\n\n async slice(start: number, end: number): Promise {\n return new Uint8Array(await this._blob.slice(start, end).arrayBuffer());\n }\n}\n","import { Readable } from './readable';\nimport mime from 'mime/lite';\nimport fs from 'fs';\nimport path from 'path';\n\nexport class ReadablePath implements Readable {\n private readonly _path: string;\n private readonly _size: number;\n private _fd?: number;\n\n protected constructor(path: string, size: number) {\n this._path = path;\n this._size = size;\n }\n\n public get fileName(): string {\n return path.basename(this._path);\n }\n\n public get contentType(): string {\n return mime.getType(this.fileName) ?? 'application/octet-stream';\n }\n\n public get length(): number {\n return this._size;\n }\n\n static async create(path: string): Promise {\n return new Promise((resolve, reject) => {\n fs.stat(path, (err, stats) => {\n if (err) {\n reject(err);\n return;\n }\n resolve(new ReadablePath(path, stats.size));\n });\n });\n }\n\n public async open(): Promise {\n return new Promise((resolve, reject) => {\n if (this._fd !== undefined) {\n reject('File is already open');\n return;\n }\n fs.open(this._path, (err, fd) => {\n if (err) {\n reject(err);\n return;\n }\n this._fd = fd;\n resolve();\n });\n });\n }\n\n public async close(): Promise {\n return new Promise((resolve, reject) => {\n if (this._fd === undefined) {\n reject('No open file handle found');\n return;\n }\n fs.close(this._fd, err => {\n if (err) {\n reject(err);\n return;\n }\n resolve();\n });\n });\n }\n\n public async slice(start: number, end: number): Promise {\n return new Promise((resolve, reject) => {\n if (this._fd === undefined) {\n reject('No open file handle found');\n return;\n }\n const buffer = Buffer.alloc(end - start);\n fs.read(this._fd, buffer, 0, end - start, start, (err: unknown) => {\n if (err) {\n reject(err);\n return;\n }\n resolve(new Uint8Array(buffer));\n });\n });\n }\n}\n","import { Readable } from './readable';\nimport mime from 'mime/lite';\n\nexport class ReadableBytes implements Readable {\n public readonly fileName: string;\n private readonly _bytes: Uint8Array;\n\n constructor(fileName: string, bytes: Uint8Array | ArrayBuffer | number[]) {\n this.fileName = fileName;\n this._bytes = bytes instanceof Uint8Array ? bytes : new Uint8Array(bytes);\n }\n\n public get contentType(): string {\n return mime.getType(this.fileName) ?? 'application/octet-stream';\n }\n\n public get length(): number {\n return this._bytes.byteLength;\n }\n\n public async open(): Promise {\n return Promise.resolve();\n }\n\n public async close(): Promise {\n return Promise.resolve();\n }\n\n public async slice(start: number, end: number): Promise {\n return this._bytes.slice(start, end);\n }\n}\n","/**\n * Minimal promise executor with concurrency limit implementation\n * @param concurrency Maximum number of promises executed concurrently\n */\nexport const limit = (concurrency: number) => {\n const queue: Array<{\n fn: () => Promise;\n resolve: (value: unknown | PromiseLike) => void;\n reject: (reason: unknown) => void;\n }> = [];\n let active = 0;\n const next = () => {\n if (active < concurrency && queue.length > 0) {\n active++;\n const { fn, resolve, reject } = queue.shift() ?? {};\n fn?.()\n .then(resolve)\n .catch(reject)\n .then(() => {\n active--;\n next();\n });\n }\n };\n return (fn: () => Promise) =>\n new Promise((resolve, reject) => {\n queue.push({ fn, resolve, reject });\n next();\n }) as Promise;\n};\n\nexport type LimitFn = ReturnType;\n","import {\n Actor,\n ActorConfig,\n ActorSubclass,\n Cbor as cbor,\n Certificate,\n compare,\n getDefaultAgent,\n HashTree,\n lookup_path,\n reconstruct,\n} from '@dfinity/agent';\nimport { lebDecode } from '@dfinity/candid';\nimport { PipeArrayBuffer } from '@dfinity/candid/lib/cjs/utils/buffer';\nimport { AssetsCanisterRecord, getAssetsCanister } from './canisters/assets';\nimport { Hasher, sha256 as jsSha256 } from 'js-sha256';\nimport { BatchOperationKind } from './canisters/assets_service';\nimport * as base64Arraybuffer from 'base64-arraybuffer';\nimport { isReadable, Readable } from './readable/readable';\nimport { ReadableFile } from './readable/readableFile';\nimport { ReadableBlob } from './readable/readableBlob';\nimport { ReadablePath } from './readable/readablePath';\nimport { ReadableBytes } from './readable/readableBytes';\nimport { limit, LimitFn } from './utils/limit';\nimport fs from 'fs';\n\n/**\n * Supported content encodings by asset canister\n */\nexport type ContentEncoding = 'identity' | 'gzip' | 'compress' | 'deflate' | 'br';\n\n/**\n * Upload progress in bytes\n */\nexport interface Progress {\n current: number;\n total: number;\n}\n\n/**\n * Configuration that can be passed to set and override defaults and add progress callback\n */\nexport interface StoreConfig {\n /**\n * File name\n * @default File object name or name in file path\n */\n fileName?: string;\n /**\n * File path that file will be uploaded to\n * @default '/'\n */\n path?: string;\n /**\n * File content type\n * @default File/Blob object type or type from file name extension\n */\n contentType?: string;\n /**\n * Content encoding\n * @default 'identity'\n */\n contentEncoding?: ContentEncoding;\n /**\n * File hash generation will be skipped if hash is provided\n */\n sha256?: Uint8Array;\n /**\n * Callback method to get upload progress in bytes (current / total)\n */\n onProgress?: (progress: Progress) => void;\n}\n\nexport type StoreReadableArgs = [readable: Readable, config?: StoreConfig];\n\nexport type StoreFileArgs = [file: File, config?: StoreConfig];\n\nexport type StoreBlobArgs = [\n blob: Blob,\n config: Omit & Required>,\n];\n\nexport type StorePathArgs = [path: string, config?: StoreConfig];\n\nexport type StoreBytesArgs = [\n bytes: Uint8Array | ArrayBuffer | number[],\n config: Omit & Required>,\n];\n\n/**\n * Arguments to store an asset in asset manager\n */\nexport type StoreArgs =\n | StoreReadableArgs\n | StoreFileArgs\n | StoreBlobArgs\n | StorePathArgs\n | StoreBytesArgs;\n\n/**\n * Arguments to commit batch in asset manager\n */\nexport interface CommitBatchArgs {\n onProgress?: (progress: Progress) => void;\n}\n\n/**\n * Configuration that can be passed to set the canister id of the\n * assets canister to be managed, inherits actor configuration and\n * has additional asset manager specific configuration options.\n */\nexport interface AssetManagerConfig extends ActorConfig {\n /**\n * Max number of concurrent requests to the Internet Computer\n * @default 16\n */\n concurrency?: number;\n /**\n * Max file size in bytes that the asset manager shouldn't chunk\n * @default 1900000\n */\n maxSingleFileSize?: number;\n /**\n * Size of each chunk in bytes when the asset manager has to chunk a file\n * @default 1900000\n */\n maxChunkSize?: number;\n}\n\nexport class AssetManager {\n private readonly _actor: ActorSubclass;\n private readonly _limit: LimitFn;\n private readonly _maxSingleFileSize: number;\n private readonly _maxChunkSize: number;\n\n /**\n * Create assets canister manager instance\n * @param config Additional configuration options, canister id is required\n */\n constructor(config: AssetManagerConfig) {\n const { concurrency, maxSingleFileSize, maxChunkSize, ...actorConfig } = config;\n this._actor = getAssetsCanister(actorConfig);\n this._limit = limit(concurrency ?? 16);\n this._maxSingleFileSize = maxSingleFileSize ?? 1900000;\n this._maxChunkSize = maxChunkSize ?? 1900000;\n }\n\n /**\n * Create readable from store arguments\n * @param args Arguments with either a file, blob, path, bytes or custom Readable implementation\n */\n static async toReadable(...args: StoreArgs): Promise {\n if (typeof File === 'function' && args[0] instanceof File) {\n return new ReadableFile(args[0]);\n }\n if (typeof Blob === 'function' && args[0] instanceof Blob && args[1]?.fileName) {\n return new ReadableBlob(args[1].fileName, args[0]);\n }\n if (typeof args[0] === 'string') {\n return await ReadablePath.create(args[0]);\n }\n if (\n (Array.isArray(args[0]) || args[0] instanceof Uint8Array || args[0] instanceof ArrayBuffer) &&\n args[1]?.fileName\n ) {\n return new ReadableBytes(args[1].fileName, args[0]);\n }\n if (isReadable(args[0])) {\n return args[0];\n }\n\n throw new Error('Invalid arguments, readable could not be created');\n }\n\n /**\n * Get list of all files in assets canister\n * @returns All files in asset canister\n */\n public async list(): ReturnType {\n return this._actor.list({});\n }\n\n /**\n * Store data on assets canister\n * @param args Arguments with either a file, blob, path, bytes or custom Readable implementation\n */\n public async store(...args: StoreArgs): Promise {\n const readable = await AssetManager.toReadable(...args);\n const [, config] = args;\n const key = [config?.path ?? '', config?.fileName ?? readable.fileName].join('/');\n\n // If asset is small enough upload in one request else upload in chunks (batch)\n if (readable.length <= this._maxSingleFileSize) {\n config?.onProgress?.({ current: 0, total: readable.length });\n await this._limit(async () => {\n await readable.open();\n const bytes = await readable.slice(0, readable.length);\n await readable.close();\n const sha256 =\n config?.sha256 ??\n new Uint8Array(jsSha256.create().update(new Uint8Array(bytes)).arrayBuffer());\n return this._actor.store({\n key,\n content: bytes,\n content_type: readable.contentType,\n sha256: [sha256],\n content_encoding: config?.contentEncoding ?? 'identity',\n });\n });\n config?.onProgress?.({ current: readable.length, total: readable.length });\n } else {\n // Create batch to upload asset in chunks\n const batch = this.batch();\n await batch.store(readable, config);\n await batch.commit();\n }\n\n return key;\n }\n\n /**\n * Delete file from assets canister\n * @param key The path to the file on the assets canister e.g. /folder/to/my_file.txt\n */\n public async delete(key: string): Promise {\n await this._actor.delete_asset({ key });\n }\n\n /**\n * Delete all files from assets canister\n */\n public async clear(): Promise {\n await this._actor.clear({});\n }\n\n /**\n * Get asset instance from assets canister\n * @param key The path to the file on the assets canister e.g. /folder/to/my_file.txt\n * @param acceptEncodings The accepted content encodings, defaults to ['identity']\n */\n public async get(key: string, acceptEncodings?: ContentEncoding[]): Promise {\n const data = await this._actor.get({\n key,\n accept_encodings: acceptEncodings ?? ['identity'],\n });\n\n return new Asset(\n this._actor,\n this._limit,\n this._maxSingleFileSize,\n this._maxChunkSize,\n key,\n acceptEncodings ?? ['identity'],\n data.content,\n data.content_type,\n Number(data.total_length),\n data.content_encoding,\n data.content.length,\n data.sha256[0],\n );\n }\n\n /**\n * Create a batch assets operations instance, commit multiple operations in a single request\n */\n public batch(): AssetManagerBatch {\n return new AssetManagerBatch(this._actor, this._limit, this._maxChunkSize);\n }\n}\n\nclass AssetManagerBatch {\n private _scheduledOperations: Array<\n (batch_id: bigint, onProgress?: (progress: Progress) => void) => Promise\n > = [];\n private _sha256: { [key: string]: Hasher } = {};\n private _progress: { [key: string]: Progress } = {};\n\n constructor(\n private readonly _actor: ActorSubclass,\n private readonly _limit: LimitFn,\n private readonly _maxChunkSize: number,\n ) {}\n\n /**\n * Insert batch operation to store data on assets canister\n * @param args Arguments with either a file, blob, path, bytes or custom Readable implementation\n */\n public async store(...args: StoreArgs): Promise {\n const readable = await AssetManager.toReadable(...args);\n const [, config] = args;\n const key = [config?.path ?? '', config?.fileName ?? readable.fileName].join('/');\n if (!config?.sha256) {\n this._sha256[key] = jsSha256.create();\n }\n this._progress[key] = { current: 0, total: readable.length };\n config?.onProgress?.(this._progress[key]);\n this._scheduledOperations.push(async (batch_id, onProgress) => {\n await readable.open();\n const chunkCount = Math.ceil(readable.length / this._maxChunkSize);\n const chunkIds: bigint[] = await Promise.all(\n Array.from({ length: chunkCount }).map(async (_, index) => {\n const content = await readable.slice(\n index * this._maxChunkSize,\n Math.min((index + 1) * this._maxChunkSize, readable.length),\n );\n if (!config?.sha256) {\n this._sha256[key].update(content);\n }\n const { chunk_id } = await this._limit(() =>\n this._actor.create_chunk({\n content,\n batch_id,\n }),\n );\n this._progress[key].current += content.length;\n config?.onProgress?.(this._progress[key]);\n onProgress?.({\n current: Object.values(this._progress).reduce((acc, val) => acc + val.current, 0),\n total: Object.values(this._progress).reduce((acc, val) => acc + val.total, 0),\n });\n\n return chunk_id;\n }),\n );\n await readable.close();\n return [\n {\n CreateAsset: { key, content_type: config?.contentType ?? readable.contentType },\n },\n {\n SetAssetContent: {\n key,\n sha256: [config?.sha256 ?? new Uint8Array(this._sha256[key].arrayBuffer())],\n chunk_ids: chunkIds,\n content_encoding: config?.contentEncoding ?? 'identity',\n },\n },\n ];\n });\n return key;\n }\n\n /**\n * Insert batch operation to delete file from assets canister\n * @param key The path to the file on the assets canister e.g. /folder/to/my_file.txt\n */\n public delete(key: string): void {\n this._scheduledOperations.push(async () => [{ DeleteAsset: { key } }]);\n }\n\n /**\n * Commit all batch operations to assets canister\n * @param args Optional arguments with optional progress callback for commit progress\n */\n public async commit(args?: CommitBatchArgs): Promise {\n // Create batch\n const { batch_id } = await this._limit(() => this._actor.create_batch({}));\n\n // Progress callback\n args?.onProgress?.({\n current: Object.values(this._progress).reduce((acc, val) => acc + val.current, 0),\n total: Object.values(this._progress).reduce((acc, val) => acc + val.total, 0),\n });\n\n // Execute scheduled operations\n const operations = (\n await Promise.all(\n this._scheduledOperations.map(scheduled_operation =>\n scheduled_operation(batch_id, args?.onProgress),\n ),\n )\n ).flat();\n\n // Commit batch\n await this._limit(() => this._actor.commit_batch({ batch_id, operations }));\n\n // Cleanup\n this._scheduledOperations = [];\n this._sha256 = {};\n this._progress = {};\n }\n}\n\nclass Asset {\n constructor(\n private readonly _actor: ActorSubclass,\n private readonly _limit: LimitFn,\n private readonly _maxSingleFileSize: number,\n private readonly _maxChunkSize: number,\n private readonly _key: string,\n private readonly _acceptEncodings: ContentEncoding[],\n private readonly _content: Uint8Array,\n public readonly contentType: string,\n public readonly length: number,\n public readonly contentEncoding: string,\n public readonly chunkSize: number,\n public readonly sha256?: Uint8Array,\n ) {}\n\n /**\n * Get asset content as blob (web), most browsers are able to use disk storage for larger blobs\n */\n public async toBlob(): Promise {\n const blobs = Array.from({ length: Math.ceil(this.length / this.chunkSize) });\n await this.getChunks((index, chunk) => (blobs[index] = new Blob([chunk])));\n return new Blob([...blobs]);\n }\n\n /**\n * Get asset content as unsigned 8-bit integer array, use `toBlob` (web) or `write` (Node.js) for larger files\n */\n public async toUint8Array(): Promise {\n const bytes = new Uint8Array(this.length);\n await this.getChunks((index, chunk) => bytes.set(chunk, index * this.chunkSize));\n return bytes;\n }\n\n /**\n * Get asset content as number array, use `toBlob` (web) or `write` (Node.js) for larger files\n */\n public async toNumberArray(): Promise {\n const chunks = Array.from({ length: Math.ceil(this.length / this.chunkSize) });\n await this.getChunks((index, chunk) => (chunks[index] = Array.from(chunk)));\n return chunks.flat();\n }\n\n /**\n * Write asset content to file (Node.js)\n * @param path File path to write to\n */\n public async write(path: string): Promise {\n const fd = await new Promise((resolve, reject) =>\n fs.open(path, 'w', (err: unknown, fd: number) => {\n if (err) {\n reject(err);\n return;\n }\n resolve(fd);\n }),\n );\n await this.getChunks(\n (index, chunk) =>\n new Promise((resolve, reject) =>\n fs.write(fd, chunk, 0, chunk.length, index * this.chunkSize, (err: unknown) => {\n if (err) {\n reject(err);\n return;\n }\n resolve();\n }),\n ),\n );\n await new Promise(resolve => fs.close(fd, () => resolve()));\n }\n\n /**\n * Get All chunks of asset through `onChunk` callback, can be used for a custom storage implementation\n * @param onChunk Called on each received chunk\n * @param sequential Chunks are received in sequential order when true or `concurrency` is `1` in config\n */\n public async getChunks(\n onChunk: (index: number, chunk: Uint8Array) => void,\n sequential?: boolean,\n ) {\n onChunk(0, this._content);\n const chunkLimit = sequential ? limit(1) : this._limit;\n await Promise.all(\n Array.from({ length: Math.ceil(this.length / this.chunkSize) - 1 }).map((_, index) =>\n chunkLimit(async () => {\n const { content } = await this._actor.get_chunk({\n key: this._key,\n content_encoding: this.contentEncoding,\n index: BigInt(index + 1),\n sha256: this.sha256 ? [this.sha256] : [],\n });\n onChunk(index + 1, content);\n }),\n ),\n );\n }\n\n /**\n * Check if asset has been certified, which means that the content's hash is in the canister hash tree\n */\n public async isCertified(): Promise {\n // Below implementation is based on Internet Computer service worker\n const agent = Actor.agentOf(this._actor) ?? getDefaultAgent();\n const canisterId = Actor.canisterIdOf(this._actor);\n\n if (!agent.rootKey) {\n throw Error('Agent is missing root key');\n }\n\n const response = await this._limit(() =>\n this._actor.http_request({\n method: 'get',\n url: this._key,\n headers: [['Accept-Encoding', this._acceptEncodings.join(', ')]],\n body: new Uint8Array(),\n }),\n );\n\n let certificate: ArrayBuffer | undefined;\n let tree: ArrayBuffer | undefined;\n const certificateHeader = response.headers.find(\n ([key]) => key.trim().toLowerCase() === 'ic-certificate',\n );\n if (!certificateHeader) {\n return false;\n }\n const fields = certificateHeader[1].split(/,/);\n for (const f of fields) {\n const [, name, b64Value] = [...(f.match(/^(.*)=:(.*):$/) ?? [])].map(x => x.trim());\n const value = base64Arraybuffer.decode(b64Value);\n if (name === 'certificate') {\n certificate = value;\n } else if (name === 'tree') {\n tree = value;\n }\n }\n\n if (!certificate || !tree) {\n // No certificate or tree in response header\n return false;\n }\n\n const cert = await Certificate.create({\n certificate: new Uint8Array(certificate),\n rootKey: agent.rootKey,\n canisterId,\n }).catch(() => Promise.resolve());\n\n if (!cert) {\n // Certificate is not valid\n return false;\n }\n\n // Check certificate time\n const decodedTime = lebDecode(new PipeArrayBuffer(cert.lookup(['time'])));\n const certTime = Number(decodedTime / BigInt(1_000_000)); // Convert from nanos to millis\n const now = Date.now();\n const maxCertTimeOffset = 300_000; // 5 min\n if (certTime - maxCertTimeOffset > now || certTime + maxCertTimeOffset < now) {\n return false;\n }\n\n const hashTree: HashTree = cbor.decode(new Uint8Array(tree));\n const reconstructed = await reconstruct(hashTree);\n const witness = cert.lookup(['canister', canisterId.toUint8Array(), 'certified_data']);\n\n if (!witness) {\n // Could not find certified data for this canister in the certificate\n return false;\n }\n\n // First validate that the Tree is as good as the certification\n if (compare(witness, reconstructed) !== 0) {\n // Witness != Tree passed in ic-certification\n return false;\n }\n\n // Lookup hash of asset in tree\n const treeSha = lookup_path(['http_assets', this._key], hashTree);\n\n return !!treeSha && !!this.sha256 && compare(this.sha256.buffer, treeSha) === 0;\n }\n\n /**\n * Check if the hash of the asset data is equal to the hash that has been certified\n * @param bytes Optionally pass data to hash instead of waiting for asset data to be fetched and hashed\n */\n public async verifySha256(bytes?: Uint8Array | number[]): Promise {\n if (!this.sha256?.buffer) {\n return false;\n }\n const sha256 = jsSha256.create();\n if (bytes) {\n sha256.update(Array.isArray(bytes) ? new Uint8Array(bytes) : bytes);\n } else {\n await this.getChunks((_, chunk) => sha256.update(chunk), true);\n }\n return compare(this.sha256.buffer, sha256.arrayBuffer()) === 0;\n }\n}\n","import { Actor, ActorConfig, ActorSubclass } from '@dfinity/agent';\nimport { idlFactory } from './assets_idl';\nimport _SERVICE from './assets_service';\n\nexport type AssetsCanisterRecord = _SERVICE;\n\n/**\n * Create an assets canister actor\n * @param config Configuration to make calls to the Replica.\n */\nexport function getAssetsCanister(config: ActorConfig): ActorSubclass {\n return Actor.createActor(idlFactory, config);\n}\n","import React from 'react';\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nconst defaultProps = {\n breakpointCols: undefined,\n // optional, number or object { default: number, [key: number]: number }\n className: undefined,\n // required, string\n columnClassName: undefined,\n // optional, string\n // Any React children. Typically an array of JSX items\n children: undefined,\n // Custom attributes, however it is advised against\n // using these to prevent unintended issues and future conflicts\n // ...any other attribute, will be added to the container\n columnAttrs: undefined,\n // object, added to the columns\n // Deprecated props\n // The column property is deprecated.\n // It is an alias of the `columnAttrs` property\n column: undefined\n};\nconst DEFAULT_COLUMNS = 2;\n\nclass Masonry extends React.Component {\n constructor(props) {\n super(props); // Correct scope for when methods are accessed externally\n\n this.reCalculateColumnCount = this.reCalculateColumnCount.bind(this);\n this.reCalculateColumnCountDebounce = this.reCalculateColumnCountDebounce.bind(this); // default state\n\n let columnCount;\n\n if (this.props.breakpointCols && this.props.breakpointCols.default) {\n columnCount = this.props.breakpointCols.default;\n } else {\n columnCount = parseInt(this.props.breakpointCols) || DEFAULT_COLUMNS;\n }\n\n this.state = {\n columnCount\n };\n }\n\n componentDidMount() {\n this.reCalculateColumnCount(); // window may not be available in some environments\n\n if (window) {\n window.addEventListener('resize', this.reCalculateColumnCountDebounce);\n }\n }\n\n componentDidUpdate() {\n this.reCalculateColumnCount();\n }\n\n componentWillUnmount() {\n if (window) {\n window.removeEventListener('resize', this.reCalculateColumnCountDebounce);\n }\n }\n\n reCalculateColumnCountDebounce() {\n if (!window || !window.requestAnimationFrame) {\n // IE10+\n this.reCalculateColumnCount();\n return;\n }\n\n if (window.cancelAnimationFrame) {\n // IE10+\n window.cancelAnimationFrame(this._lastRecalculateAnimationFrame);\n }\n\n this._lastRecalculateAnimationFrame = window.requestAnimationFrame(() => {\n this.reCalculateColumnCount();\n });\n }\n\n reCalculateColumnCount() {\n const windowWidth = window && window.innerWidth || Infinity;\n let breakpointColsObject = this.props.breakpointCols; // Allow passing a single number to `breakpointCols` instead of an object\n\n if (typeof breakpointColsObject !== 'object') {\n breakpointColsObject = {\n default: parseInt(breakpointColsObject) || DEFAULT_COLUMNS\n };\n }\n\n let matchedBreakpoint = Infinity;\n let columns = breakpointColsObject.default || DEFAULT_COLUMNS;\n\n for (let breakpoint in breakpointColsObject) {\n const optBreakpoint = parseInt(breakpoint);\n const isCurrentBreakpoint = optBreakpoint > 0 && windowWidth <= optBreakpoint;\n\n if (isCurrentBreakpoint && optBreakpoint < matchedBreakpoint) {\n matchedBreakpoint = optBreakpoint;\n columns = breakpointColsObject[breakpoint];\n }\n }\n\n columns = Math.max(1, parseInt(columns) || 1);\n\n if (this.state.columnCount !== columns) {\n this.setState({\n columnCount: columns\n });\n }\n }\n\n itemsInColumns() {\n const currentColumnCount = this.state.columnCount;\n const itemsInColumns = new Array(currentColumnCount); // Force children to be handled as an array\n\n const items = React.Children.toArray(this.props.children);\n\n for (let i = 0; i < items.length; i++) {\n const columnIndex = i % currentColumnCount;\n\n if (!itemsInColumns[columnIndex]) {\n itemsInColumns[columnIndex] = [];\n }\n\n itemsInColumns[columnIndex].push(items[i]);\n }\n\n return itemsInColumns;\n }\n\n renderColumns() {\n const {\n column,\n columnAttrs = {},\n columnClassName\n } = this.props;\n const childrenInColumns = this.itemsInColumns();\n const columnWidth = `${100 / childrenInColumns.length}%`;\n let className = columnClassName;\n\n if (className && typeof className !== 'string') {\n this.logDeprecated('The property \"columnClassName\" requires a string'); // This is a deprecated default and will be removed soon.\n\n if (typeof className === 'undefined') {\n className = 'my-masonry-grid_column';\n }\n }\n\n const columnAttributes = _objectSpread(_objectSpread(_objectSpread({}, column), columnAttrs), {}, {\n style: _objectSpread(_objectSpread({}, columnAttrs.style), {}, {\n width: columnWidth\n }),\n className\n });\n\n return childrenInColumns.map((items, i) => {\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, columnAttributes, {\n key: i\n }), items);\n });\n }\n\n logDeprecated(message) {\n console.error('[Masonry]', message);\n }\n\n render() {\n const _this$props = this.props,\n {\n // ignored\n children,\n breakpointCols,\n columnClassName,\n columnAttrs,\n column,\n // used\n className\n } = _this$props,\n rest = _objectWithoutProperties(_this$props, [\"children\", \"breakpointCols\", \"columnClassName\", \"columnAttrs\", \"column\", \"className\"]);\n\n let classNameOutput = className;\n\n if (typeof className !== 'string') {\n this.logDeprecated('The property \"className\" requires a string'); // This is a deprecated default and will be removed soon.\n\n if (typeof className === 'undefined') {\n classNameOutput = 'my-masonry-grid';\n }\n }\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, rest, {\n className: classNameOutput\n }), this.renderColumns());\n }\n\n}\n\nMasonry.defaultProps = defaultProps;\n\nexport default Masonry;\n","import {Ed25519KeyIdentity} from '@dfinity/identity';\nimport {HttpAgent} from '@dfinity/agent';\nimport {AssetManager} from '@dfinity/assets';\nimport {useEffect, useState} from \"react\";\nimport Masonry from \"react-masonry-css\";\nimport './App.css';\n\n// Hardcoded principal: 535yc-uxytb-gfk7h-tny7p-vjkoe-i4krp-3qmcl-uqfgr-cpgej-yqtjq-rqe\n// Should be replaced with authentication method e.g. Internet Identity when deployed on IC\nconst identity = Ed25519KeyIdentity.generate(new Uint8Array(Array.from({length: 32}).fill(0)));\nconsole.log(\"principal from the frontend :\",identity?.getPrincipal()?.toString())\nconst isLocal = !window.location.host.endsWith('icp0.io');\nconst agent = new HttpAgent({\n host: isLocal ? `http://127.0.0.1:${window.location.port}` : 'https://ic0.app', identity,\n});\nif (isLocal) {\n agent.fetchRootKey();\n}\n\n// Canister id can be fetched from URL since frontend in this example is hosted in the same canister as file upload\n// const canisterId = new URLSearchParams(window.location.search).get('canisterId') ?? /(.*?)(?:\\.raw)?\\.ic0.app/.exec(window.location.host)?.[1] ?? /(.*)\\.localhost/.exec(window.location.host)?.[1];\nconst canisterId=\"a2ede-rqaaa-aaaal-ai6sq-cai\"\n// Create asset manager instance for above asset canister\nconst assetManager = new AssetManager({canisterId, agent});\n\n// Get file name, width and height from key\nconst detailsFromKey = (key) => {\n const fileName = key.split('/').slice(-1)[0];\n const width = parseInt(fileName.split('.').slice(-3)[0]);\n const height = parseInt(fileName.split('.').slice(-2)[0]);\n return {key, fileName, width, height}\n}\n\n// Get file name, width and height from file\nconst detailsFromFile = async (file) => {\n const src = await new Promise((resolve) => {\n const reader = new FileReader();\n reader.onload = () => resolve(reader.result);\n reader.readAsDataURL(file);\n })\n const [width, height] = await new Promise((resolve) => {\n const img = new Image();\n img.onload = () => resolve([img.naturalWidth, img.naturalHeight]);\n img.src = src;\n })\n const name = file.name.split('.');\n const extension = name.pop();\n const fileName = [name, width, height, extension].join('.');\n return {fileName, width, height}\n}\n\nconst App = () => {\n const [uploads, setUploads] = useState([]);\n const [progress, setProgress] = useState(null);\n \n\n useEffect(() => {\n assetManager.list()\n .then(assets=>{\n console.log(\"all assets :\",assets)\n })\n assetManager.list()\n .then(assets => assets\n \n .filter(asset => asset.key.startsWith('/uploads/'))\n .sort((a, b) => Number(b.encodings[0].modified - a.encodings[0].modified))\n .map(({key}) => detailsFromKey(key)))\n .then(setUploads);\n }, []);\n\n const uploadPhotos = () => {\n const input = document.createElement('input');\n input.type = 'file';\n input.accept = 'image/*';\n input.multiple = true;\n input.onchange = async () => {\n setProgress(0);\n try {\n const batch = assetManager.batch();\n const items = await Promise.all(Array.from(input.files).map(async (file) => {\n const {fileName, width, height} = await detailsFromFile(file);\n const key = await batch.store(file, {path: '/uploads', fileName});\n return {key, fileName, width, height};\n }));\n await batch.commit({onProgress: ({current, total}) => setProgress(current / total)});\n setUploads(prevState => [...items, ...prevState])\n } catch (e) {\n if (e.message.includes('Caller is not authorized')) {\n alert(\"Caller is not authorized, follow Authorization instructions in README\");\n } else {\n throw e;\n }\n }\n setProgress(null)\n };\n input.click();\n }\n\n return (\n
\n \n \n {uploads.map(upload => (\n
\n {upload.fileName}\n
))}\n
\n {progress !== null &&
{Math.round(progress * 100)}%
}\n
\n );\n}\n\nexport default App;\n","import React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport './index.css';\nimport App from './App';\n\nconst root = ReactDOM.createRoot(document.getElementById('root'));\nroot.render(\n \n \n \n);"],"names":["request","async","canisterId","agent","paths","options","uniquePaths","Set","encodedPaths","map","path","encodePath","status","Map","promises","index","response","readState","data","Certificate","create","certificate","rootKey","lookup","set","decodeTime","decodeControllers","decodeHex","TextDecoder","decode","decodeStrategy","key","decodeLeb128","decodeCbor","decodeUtf8","console","warn","concat","error","_a","message","includes","AgentError","group","groupEnd","Promise","all","encoder","TextEncoder","encode","arg","DataView","buffer","canisterBuffer","toUint8Array","ArrayBuffer","metaPath","encoded","Error","buf","toHex","lebDecode","PipeArrayBuffer","Cbor","decoded","Date","Number","BigInt","tag","controllersRaw","Principal","fromUint8Array","Uint8Array","serializer","SelfDescribeCborSerializer","withDefaultEncoders","CborTag","value","serialize","decodePositiveBigInt","len","byteLength","res","i","addEncoder","name","priority","match","_isPrincipal","v","cbor","bytes","isView","tagged","fromHex","toString","Uint8ArrayDecoder","borc","createByteString","raw","createByteStringFromHeap","start","end","this","_heap","slice","input","size","tags","val","Semantic","decodeFirst","CertificateVerificationError","constructor","reason","super","isBufferEqual","a","b","a8","b8","length","_rootKey","_canisterId","_blsVerify","cert","blsVerify","bls","verify","lookup_path","tree","rootHash","reconstruct","derKey","_checkDelegationAndGetKey","delegation","sig","signature","expectedLength","DER_PREFIX","KEY_LENGTH","TypeError","prefix","extractDER","msg","domain_sep","sigVer","err","d","rangeLookup","subnet_id","some","r","ltEq","gtEq","publicKeyLookup","t","hash","s","str","l","trees","find_label","flatten_forks","Object","setPrototypeOf","prototype","jsSha256","update","arrayBuffer","hashValue","hashString","lebEncode","Array","isArray","vals","toHash","assign","requestIdOf","sorted","entries","filter","_ref","undefined","_ref2","sort","_ref3","_ref4","k1","k2","compare","x","wasm","wasmBytes","base64Arraybuffer","cachegetUint8Memory0","passArray8ToWasm0","malloc","ptr","memory","init","instance","module","imports","Response","WebAssembly","instantiate","Instance","load","exports","__wbindgen_wasm_module","pk","bls_init","pk1","sig1","msg1","m","w","ptr0","len0","__wbindgen_malloc","ptr1","len1","ptr2","len2","bls_verify","_len","arguments","buffers","_key","result","reduce","acc","curr","padStart","join","hexRe","RegExp","hex","test","parseInt","b1","b2","u1","u2","_buffer","_view","read","num","subarray","readUint8","write","offset","byteOffset","alloc","amount","idlLabelToId","label","isSafeInteger","array","h","c","idlHash","eob","safeRead","pipe","safeReadUint8","byte","Math","ceil","log2","Pipe","weight","valueOf","slebEncode","isNeg","getLowerBytes","slebDecode","pipeView","writeIntLE","min","mul","sub","readUIntLE","iexp2","n","nBig","RangeError","magicNumber","zipWith","xs","ys","f","TypeTable","_typs","_idx","has","obj","add","type","idx","push","merge","knot","get","knotIdx","splice","delete","indexOf","typeName","Visitor","visitType","visitPrimitive","visitEmpty","visitBool","visitNull","visitReserved","visitText","visitNumber","visitInt","visitNat","visitFloat","visitFixedInt","visitFixedNat","visitPrincipal","visitConstruct","visitVec","ty","visitOpt","visitRecord","fields","visitTuple","components","visitVariant","visitRec","visitFunc","visitService","Type","display","valueToString","toReadableString","buildTypeTable","typeTable","_buildTypeTableImpl","PrimitiveType","checkType","ConstructType","RecClass","getType","encodeType","EmptyClass","accept","covariant","encodeValue","decodeValue","UnknownClass","typeFunc","decodedValue","defineProperty","writable","enumerable","configurable","BoolClass","NullClass","ReservedClass","TextClass","fatal","IntClass","isInteger","NatClass","FloatClass","_bits","view","setFloat32","setFloat64","getFloat32","getFloat64","FixedIntClass","max","ok","readIntLE","FixedNatClass","writeUIntLE","VecClass","_type","_blobOptimization","bits","BYTES_PER_ELEMENT","every","e","opCode","vec","Uint16Array","Uint32Array","BigUint64Array","Int8Array","Int16Array","Int32Array","BigInt64Array","rets","OptClass","opt","RecordClass","_fields","tryAsTuple","k","hasOwnProperty","values","T","forEach","_","_ref5","record","expectedRecordIdx","actualRecordIdx","expectKey","expectType","expectedId","actualId","_ref6","_ref7","_ref8","_ref9","TupleClass","_components","tuple","wireType","VariantClass","_ref10","_ref11","_ref12","variant","wireHash","_ref13","_ref14","_id","_counter","fill","decodePrincipalId","PrincipalId","PrincipalClass","toText","FuncClass","argTypes","retTypes","annotations","argsToString","types","_ref15","principal","methodName","canister","method","methodLen","argLen","args","retLen","annLen","anns","encodeAnnotation","annon","_ref16","ann","ServiceClass","_ref17","func","meths","_ref18","labelBuf","_ref19","JSON","stringify","substring","toReadableString_max","magic","table","typs","magicBuffer","rawTable","rawTypes","prevHash","objectLength","pow","argLength","returnValues","returnValuesLength","annotationLength","servLength","methods","nameLength","funcName","funcType","rawList","readTypeTable","Rec","Null","Bool","Nat","Int","Nat8","Nat16","Nat32","Nat64","Int8","Int16","Int32","Int64","Float32","Float64","Text","Reserved","Empty","entry","Vec","Opt","Record","Tuple","Variant","Func","rec","typeRef","Service","buildType","output","ind","Unknown","_key2","ret","alphabet","lookupTable","o","lookUpTable","_arr","anonymous","managementCanister","selfAuthenticating","publicKey","sha","shaObj","jsSha224","sha224","from","other","fromText","hexString","fromHexString","text","arr","skip","decodeChar","char","toLowerCase","replace","isAnonymous","toUpperCase","checksumArrayBuf","setUint32","crc","getCrc32","checksum","matches","compareTo","cmp","chars","charCodeAt","arraybuffer","base64","encoded1","encoded2","encoded3","encoded4","bufferLength","p","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","tmp","Arr","_byteLength","curByte","revLookup","fromByteArray","uint8","extraBytes","parts","maxChunkLength","encodeChunk","code","globalObject","BigNumber","isNumeric","mathceil","mathfloor","floor","bignumberError","tooManyDigits","BASE","LOG_BASE","MAX_SAFE_INTEGER","POWS_TEN","SQRT_BASE","MAX","bitFloor","coeffToString","z","j","y","xc","yc","intCheck","String","isOdd","toExponential","charAt","toFixedPoint","zs","clone","configObject","div","convertBase","parseNumeric","P","ONE","DECIMAL_PLACES","ROUNDING_MODE","TO_EXP_NEG","TO_EXP_POS","MIN_EXP","MAX_EXP","CRYPTO","MODULO_MODE","POW_PRECISION","FORMAT","groupSize","secondaryGroupSize","groupSeparator","decimalSeparator","fractionGroupSize","fractionGroupSeparator","suffix","ALPHABET","alphabetHasNormalDecimalDigits","caseChanged","isNum","_isBigNumber","search","round","DEBUG","format","rm","id","c0","ne","maxOrMin","normalise","pop","sd","ni","rd","pows10","out","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","EUCLID","config","crypto","getRandomValues","randomBytes","EXPONENTIAL_AT","RANGE","isBigNumber","call","maximum","minimum","random","pow2_53","random53bitInt","dp","rand","copy","sum","plus","decimal","toBaseOut","baseIn","baseOut","arrL","reverse","sign","callerIsToString","multiply","base","temp","xlo","xhi","carry","klo","khi","aL","bL","subtract","more","prod","prodL","q","qc","rem","remL","rem0","xi","xL","yc0","yL","yz","NaN","basePrefix","dotAfter","dotBefore","isInfinityOrNaN","whitespaceOrPlus","isNaN","p1","p2","absoluteValue","abs","comparedTo","decimalPlaces","dividedBy","dividedToIntegerBy","idiv","exponentiatedBy","half","isModExp","nIsBig","nIsNeg","nIsOdd","mod","times","integerValue","isEqualTo","eq","isFinite","isGreaterThan","gt","isGreaterThanOrEqualTo","gte","isLessThan","lt","isLessThanOrEqualTo","lte","isNegative","isPositive","isZero","minus","xLTy","xe","ye","modulo","multipliedBy","xcL","ycL","ylo","yhi","zc","sqrtBase","negated","precision","shiftedBy","squareRoot","sqrt","rep","toFixed","toFormat","split","g1","g2","intPart","fractionPart","intDigits","substr","toFraction","md","d0","d1","d2","exp","n0","n1","toNumber","toPrecision","toJSON","define","Bignumber","require","MT","POS_INT","NEG_INT","BYTE_STRING","UTF8_STRING","ARRAY","MAP","TAG","SIMPLE_FLOAT","DATE_STRING","DATE_EPOCH","POS_BIGINT","NEG_BIGINT","DECIMAL_FRAC","BIGFLOAT","BASE64URL_EXPECTED","BASE64_EXPECTED","BASE16_EXPECTED","CBOR","URI","BASE64URL","BASE64","REGEXP","MIME","NUMBYTES","ZERO","TWO","FOUR","EIGHT","INDEFINITE","SIMPLE","FALSE","TRUE","NULL","UNDEFINED","SYMS","Symbol","PARENT","BREAK","STREAM","SHIFT32","SHIFT16","MAX_SAFE_HIGH","NEG_ONE","TEN","OBJECT","stdlib","foreign","heap","pushInt","pushInt32","pushInt32Neg","pushInt64","pushInt64Neg","pushFloat","pushFloatSingle","pushFloatDouble","pushTrue","pushFalse","pushUndefined","pushNull","pushInfinity","pushInfinityNeg","pushNaN","pushNaNNeg","pushArrayStart","pushArrayStartFixed","pushArrayStartFixed32","pushArrayStartFixed64","pushObjectStart","pushObjectStartFixed","pushObjectStartFixed32","pushObjectStartFixed64","pushByteString","pushByteStringStart","pushUtf8String","pushUtf8StringStart","pushSimpleUnassigned","pushTagStart","pushTagStart4","pushTagStart8","pushTagUnassigned","pushBreak","inputLength","parse","jumpTable","checkOffset","readUInt16","readUInt32","INT_P","octet","UINT_P_8","UINT_P_16","UINT_P_32","UINT_P_64","INT_N","UINT_N_8","UINT_N_16","UINT_N_32","UINT_N_64","step","BYTE_STRING_8","BYTE_STRING_16","BYTE_STRING_32","BYTE_STRING_64","BYTE_STRING_BREAK","UTF8_STRING_8","UTF8_STRING_16","UTF8_STRING_32","UTF8_STRING_64","UTF8_STRING_BREAK","ARRAY_8","ARRAY_16","ARRAY_32","ARRAY_64","ARRAY_BREAK","MAP_8","MAP_16","MAP_32","MAP_64","MAP_BREAK","TAG_KNOWN","TAG_BIGNUM_POS","TAG_BIGNUM_NEG","TAG_FRAC","TAG_BIGNUM_FLOAT","TAG_UNASSIGNED","TAG_BASE64_URL","TAG_BASE64","TAG_BASE16","TAG_MORE_1","TAG_MORE_2","TAG_MORE_4","TAG_MORE_8","SIMPLE_UNASSIGNED","SIMPLE_FALSE","SIMPLE_TRUE","SIMPLE_NULL","SIMPLE_UNDEFINED","SIMPLE_BYTE","SIMPLE_FLOAT_HALF","g","mant","SIMPLE_FLOAT_SINGLE","SIMPLE_FLOAT_DOUBLE","ERROR","Buffer","ieee754","parser","utils","Simple","Tagged","URL","Decoder","opts","nextPowerOf2","_heap8","_reset","_knownTags","arrayBufferToBignumber","global","log","bind","_depth","_parents","_currentParent","ref","_closeParent","_push","createTag","createUtf8String","createMap","createObject","createArray","_dec","hasChildren","tmpKey","buildMap","_createParent","_res","tagNumber","typ","createInt","createInt32","buildInt32","createInt64","f1","f2","buildInt64","createFloat","createFloatSingle","createFloatDouble","createInt32Neg","createInt64Neg","createTrue","createFalse","createNull","createUndefined","createInfinity","Infinity","createInfinityNeg","createNaN","createNaNNeg","createUtf8StringFromHeap","createSimpleUnassigned","_createArrayStartFixed","len3","len4","_createObjectStartFixed","_decode","decodeAll","enc","Diagnose","fl","isNegativeZero","list","keys","collectObject","diagnose","constants","HALF","FLOAT","DOUBLE","MAXINT_BN","BUF_NAN","BUF_INF_NEG","BUF_INF_POS","Encoder","streaming","stream","onData","semanticTypes","_pushUrl","_pushBigNumber","addTypes","genTypes","addSemanticType","fun","old","resultMethod","resultLength","finalize","pushWrite","_pushUInt8","_pushUInt16BE","_pushUInt32BE","_pushDoubleBE","_pushNaN","_pushInfinity","_pushFloat","allocUnsafe","writeHalf","parseHalf","b4","writeFloatBE","readFloatBE","_pushInt","mt","orig","_pushIntNum","_pushNumber","_pushString","_pushBoolean","_pushUndefined","_pushArray","gen","pushAny","_pushTag","_pushDate","_pushBuffer","_pushNoFilter","_pushRegexp","source","_pushSet","_pushBigint","dec","slide","_pushMap","_pushRawMap","_pushObject","encodeCBOR","keyLength","keySorter","toType","isBuffer","writeUInt8","writeUInt16BE","writeUInt32BE","writeDoubleBE","leveldb","inspect","isSimple","hasParent","convert","converters","er","u32","u","readUInt32BE","s16","lenA","lenB","count","customInspectSymbol","SlowBuffer","INSPECT_MAX_BYTES","K_MAX_LENGTH","createBuffer","encodingOrOffset","string","encoding","isEncoding","actual","fromString","arrayView","isInstance","fromArrayBuffer","fromArrayLike","fromArrayView","SharedArrayBuffer","checked","numberIsNaN","fromObject","toPrimitive","assertSize","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","found","hexWrite","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","apply","decodeCodePointsArray","kMaxLength","TYPED_ARRAY_SUPPORT","proto","foo","typedArraySupport","poolSize","allocUnsafeSlow","_isBuffer","pos","swap16","swap32","swap64","toLocaleString","equals","trim","target","thisStart","thisEnd","thisCopy","targetCopy","hexSliceLookupTable","ext","checkInt","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","newBuf","readUintLE","readUintBE","readUIntBE","readUInt8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readDoubleLE","readDoubleBE","writeUintLE","writeUintBE","writeUIntBE","writeUint8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUint32LE","writeUInt32LE","writeUint32BE","limit","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeDoubleLE","targetStart","copyWithin","INVALID_BASE64_RE","leadSurrogate","base64clean","src","dst","i16","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","LN2","URLWithLegacySupport","URLSearchParams","defaultBase","relative","url","urlParsed","location","protocolMap","defaultProtocol","protocol","host","self","pathname","auth","username","password","query","startsWith","hostname","href","origin","port","searchParams","createObjectURL","revokeObjectURL","userPass","WINDOW","window","root","JS_SHA256_NO_WINDOW","WEB_WORKER","NODE_JS","JS_SHA256_NO_NODE_JS","process","versions","node","COMMON_JS","JS_SHA256_NO_COMMON_JS","AMD","ARRAY_BUFFER","JS_SHA256_NO_ARRAY_BUFFER","HEX_CHARS","EXTRA","SHIFT","K","OUTPUT_TYPES","blocks","JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW","createOutputMethod","outputType","is224","Sha256","createMethod","nodeWrap","eval","algorithm","nodeMethod","createHash","digest","createHmacOutputMethod","HmacSha256","createHmacMethod","sharedMemory","h0","h1","h2","h3","h4","h5","h6","h7","block","hBytes","finalized","hashed","first","oKeyPad","iKeyPad","inner","notString","lastByteIndex","s0","s1","maj","t1","ab","da","cd","bc","dataView","innerHash","sha256","hmac","Mime","_types","_extensions","getExtension","typeMap","force","extensions","last","hasPath","$1","aa","ca","encodeURIComponent","ea","fa","ha","ia","document","createElement","ja","ka","la","ma","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","ra","sa","ta","pa","qa","oa","removeAttribute","setAttribute","setAttributeNS","xlinkHref","ua","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","for","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","iterator","Ka","La","A","Ma","stack","Na","Oa","prepareStackTrace","Reflect","construct","displayName","Pa","render","Qa","$$typeof","_context","_payload","_init","Ra","Sa","Ta","nodeName","Va","_valueTracker","getOwnPropertyDescriptor","getValue","setValue","stopTracking","Ua","Wa","Xa","activeElement","body","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","bb","cb","db","ownerDocument","eb","fb","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","children","hb","ib","jb","textContent","kb","lb","mb","nb","namespaceURI","innerHTML","firstChild","removeChild","appendChild","MSApp","execUnsafeLocalFunction","ob","lastChild","nodeType","nodeValue","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","qb","rb","sb","style","setProperty","tb","menuitem","area","br","col","embed","hr","img","keygen","link","meta","param","track","wbr","ub","vb","is","wb","xb","srcElement","correspondingUseElement","parentNode","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","addEventListener","removeEventListener","Nb","onError","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","flags","Wb","memoizedState","dehydrated","Xb","Zb","child","sibling","current","Yb","$b","ac","unstable_scheduleCallback","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","B","unstable_now","ec","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","lc","oc","clz32","pc","rc","sc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","Ac","eventTimes","Cc","C","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","shift","Zc","$c","ad","bd","ReactCurrentBatchConfig","dd","ed","transition","fd","gd","hd","Uc","stopPropagation","jd","kd","ld","nd","od","keyCode","charCode","pd","qd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","wd","xd","yd","eventPhase","bubbles","cancelable","timeStamp","now","isTrusted","td","ud","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","repeat","locale","which","Rd","Td","width","height","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","color","date","datetime","email","month","number","range","tel","time","week","me","oe","event","listeners","pe","qe","re","se","te","ue","ve","we","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","nextSibling","Le","contains","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","Ne","contentEditable","Oe","focusedElem","selectionRange","documentElement","selectionStart","selectionEnd","defaultView","getSelection","extend","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","element","left","scrollLeft","top","scrollTop","focus","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","animation","$e","af","bf","cf","df","ef","ff","gf","hf","lf","mf","nf","Ub","listener","D","of","pf","qf","rf","sf","capture","passive","J","F","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","ke","unshift","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","setTimeout","Gf","clearTimeout","Hf","Jf","queueMicrotask","resolve","then","catch","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","E","G","Vf","H","Wf","Xf","Yf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","childContextTypes","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","gg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","I","zg","Ag","Bg","elementType","deletions","Cg","pendingProps","overflow","treeContext","retryLane","Dg","mode","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","defaultProps","Mg","Ng","Og","Pg","Qg","Rg","_currentValue","Sg","childLanes","Tg","dependencies","firstContext","lanes","Ug","Vg","context","memoizedValue","next","Wg","Xg","Yg","interleaved","Zg","$g","ah","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","bh","ch","eventTime","lane","payload","callback","dh","eh","fh","gh","hh","ih","jh","Component","refs","kh","nh","isMounted","_reactInternals","enqueueSetState","L","lh","mh","enqueueReplaceState","enqueueForceUpdate","oh","shouldComponentUpdate","isPureReactComponent","ph","contextType","state","updater","qh","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","rh","props","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","sh","_owner","_stringRef","th","uh","vh","wh","xh","yh","implementation","zh","Ah","done","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","tagName","Jh","Kh","Lh","M","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","ReactCurrentDispatcher","Qh","Rh","N","O","Sh","Th","Uh","Vh","Q","Wh","Xh","Yh","Zh","$h","ai","bi","ci","baseQueue","queue","di","ei","fi","lastRenderedReducer","action","hasEagerState","eagerState","lastRenderedState","dispatch","gi","ii","ji","ki","getSnapshot","li","mi","R","lastEffect","stores","oi","pi","qi","ri","destroy","deps","si","ti","ui","vi","wi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","readContext","useCallback","useContext","useEffect","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ki","Li","Mi","Ni","WeakMap","Oi","Pi","Qi","Ri","getDerivedStateFromError","componentDidCatch","Si","componentStack","Ti","pingCache","Ui","Vi","Wi","Xi","ReactCurrentOwner","Yi","Zi","$i","aj","bj","cj","dj","ej","baseLanes","cachePool","transitions","fj","gj","hj","ij","jj","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","kj","lj","pendingContext","mj","Aj","Bj","Cj","Dj","nj","oj","pj","fallback","qj","rj","tj","dataset","dgst","uj","vj","_reactRetry","sj","subtreeFlags","wj","xj","isBackwards","rendering","renderingStartTime","tail","tailMode","yj","Ej","S","Fj","Gj","wasMultiple","multiple","suppressHydrationWarning","onClick","onclick","createElementNS","autoFocus","createTextNode","Hj","Ij","Jj","Kj","U","Lj","WeakSet","V","Mj","W","Nj","Oj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","insertBefore","_reactRootContainer","Xj","X","Yj","Zj","ak","onCommitFiberUnmount","componentWillUnmount","bk","ck","dk","ek","fk","isHidden","gk","hk","ik","jk","kk","lk","__reactInternalSnapshotBeforeUpdate","Wk","mk","nk","Y","Z","qk","rk","sk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","finishedWork","finishedLanes","Qk","timeoutHandle","Rk","Sk","Tk","Uk","Vk","mutableReadLanes","Bc","Pj","onCommitFiberRoot","mc","onRecoverableError","Xk","onPostCommitFiberRoot","Yk","Zk","al","isReactComponent","pendingChildren","bl","mutableSourceEagerHydrationData","cl","cache","pendingSuspenseBoundaries","el","gl","hl","il","jl","zj","$k","ll","reportError","ml","_internalRoot","nl","ol","pl","ql","sl","rl","unmount","unstable_scheduleHydration","querySelectorAll","form","tl","usingClientEntryPoint","Events","ul","findFiberByHostInstance","bundleType","version","rendererPackageName","vl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","wl","isDisabled","supportsFiber","inject","createPortal","dl","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","__self","__source","jsx","jsxs","setState","forceUpdate","escape","_status","_result","default","Children","toArray","only","Fragment","Profiler","PureComponent","StrictMode","Suspense","cloneElement","createContext","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","createFactory","createRef","forwardRef","isValidElement","lazy","memo","startTransition","unstable_act","sortIndex","performance","setImmediate","startTime","expirationTime","priorityLevel","navigator","scheduling","isInputPending","MessageChannel","port2","port1","onmessage","postMessage","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","delay","unstable_wrapCallback","__export","__importStar","BufferClasses","Float32Array","Float64Array","JsonDefaultCborEncoder","_serializer","_stable","undefined_","bool","doubleFloat","null_","serializeValue","find","getOwnPropertyNames","item","ToCborEncoder","toCBOR","CborSerializer","_encoders","stable","removeEncoder","getEncoderFor","chosenEncoder","MAX_U64_NUMBER","_concat","newBuffer","_serializeValue","major","minor","_serializeNumber","_serializeString","utf8","charcode","uSmall","u8","radix","u16","u64","iSmall","i8","i32","i64","newI64","reduceRight","true_","false_","items","keyA","keyB","localeCompare","single","nacl","randombytes","_0","_9","gf0","gf1","_121665","D2","ts64","vn","crypto_verify_16","crypto_verify_32","crypto_core_salsa20","inp","j0","j1","j2","j3","j4","j5","j6","j7","j8","j9","j10","j11","j12","j13","j14","j15","x0","x1","x2","x3","x4","x5","x6","x7","x8","x9","x10","x11","x12","x13","x14","x15","core_salsa20","crypto_core_hsalsa20","core_hsalsa20","sigma","crypto_stream_salsa20_xor","cpos","mpos","crypto_stream_salsa20","crypto_stream","sn","crypto_stream_xor","poly1305","t0","t2","t3","t4","t5","t6","t7","pad","leftover","fin","crypto_onetimeauth","outpos","finish","crypto_onetimeauth_verify","hpos","crypto_secretbox","crypto_secretbox_open","set25519","car25519","sel25519","pack25519","neq25519","par25519","unpack25519","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","b0","b3","b5","b6","b7","b9","b10","b11","b12","b13","b14","b15","inv25519","pow2523","crypto_scalarmult","x32","x16","crypto_scalarmult_base","crypto_box_keypair","crypto_box_beforenm","d3","d4","d5","d6","d7","d8","d9","hibit","h8","h9","r0","r1","r2","r3","r4","r5","r6","r7","r8","r9","mac","macpos","mask","want","crypto_box_afternm","crypto_box_open_afternm","crypto_hashblocks_hl","bh0","bh1","bh2","bh3","bh4","bh5","bh6","bh7","bl0","bl1","bl2","bl3","bl4","bl5","bl6","bl7","ah0","ah1","ah2","ah3","ah4","ah5","ah6","ah7","al0","al1","al2","al3","al4","al5","al6","al7","crypto_hash","cswap","pack","tx","scalarmult","scalarbase","crypto_sign_keypair","seeded","modL","crypto_sign","sm","smlen","crypto_sign_open","chk","den","den2","den4","den6","unpackneg","crypto_secretbox_BOXZEROBYTES","crypto_sign_BYTES","crypto_sign_PUBLICKEYBYTES","crypto_sign_SECRETKEYBYTES","checkLengths","checkArrayTypes","cleanup","lowlevel","crypto_box","crypto_box_open","crypto_secretbox_KEYBYTES","crypto_secretbox_NONCEBYTES","crypto_secretbox_ZEROBYTES","crypto_scalarmult_BYTES","crypto_scalarmult_SCALARBYTES","crypto_box_PUBLICKEYBYTES","crypto_box_SECRETKEYBYTES","crypto_box_BEFORENMBYTES","crypto_box_NONCEBYTES","crypto_box_ZEROBYTES","crypto_box_BOXZEROBYTES","crypto_sign_SEEDBYTES","crypto_hash_BYTES","secretbox","nonce","open","box","nonceLength","overheadLength","scalarMult","scalarLength","groupElementLength","secretKey","before","checkBoxLengths","after","keyPair","fromSecretKey","publicKeyLength","secretKeyLength","sharedKeyLength","signedMsg","mlen","detached","fromSeed","seed","seedLength","signatureLength","hashLength","setPRNG","fn","msCrypto","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","amdO","getter","__esModule","definition","globalThis","Function","prop","toStringTag","ReplicaRejectCode","domainSeparator","SignIdentity","getPrincipal","_principal","getPublicKey","toDer","transformRequest","__rest","requestId","content","sender_pubkey","sender_sig","AnonymousIdentity","SubmitRequestType","makeNonce","randHi","randLo","setBigUint64","TWO_TO_THE_32","NANOSECONDS_PER_MILLISECONDS","REPLICA_PERMITTED_DRIFT_MILLISECONDS","Expiry","deltaInMSec","_value","RequestStatusResponseStatus","DEFAULT_INGRESS_EXPIRY_DELTA_IN_MSECS","HttpDefaultFetchError","IdentityInvalidError","HttpAgent","_pipeline","_timeDiffMsecs","_rootKeyFetched","_retryTimes","_isAgent","_identity","_fetch","_host","_credentials","fetch","defaultFetch","getDefaultFetch","_fetchOptions","fetchOptions","_callOptions","callOptions","retryTimes","endsWith","credentials","identity","disableNonce","addTransform","nonceFn","headers","Headers","endpoint","makeNonceTransform","isLocal","findIndex","ecid","effectiveCanisterId","sender","ingress_expiry","submit","request_type","Call","canister_id","method_name","transformedRequest","_transform","Authorization","btoa","_requestAndRetry","statusText","tries","responseText","errorMessage","createReadStateRequest","syncTime","CanisterStatus","callTime","replicaTime","fetchRootKey","root_key","invalidateIdentity","replaceIdentity","ProxyMessageKind","getDefaultAgent","pollForResponse","strategy","currentRequest","maybeBuf","Replied","Received","Processing","Rejected","rejectCode","rejectMessage","Done","IDL","definite_canister_settings","controllers","freezing_threshold","memory_allocation","compute_allocation","canister_settings","wasm_module","canister_status","stopped","stopping","running","memory_size","cycles","settings","module_hash","create_canister","delete_canister","deposit_cycles","install_code","reinstall","upgrade","install","provisional_create_canister_with_cycles","provisional_top_up_canister","raw_rand","start_canister","stop_canister","uninstall_code","update_settings","ActorCallError","QueryCallRejectedError","Status","Code","reject_code","Message","reject_message","UpdateCallRejectedError","CanisterInstallMode","metadataSymbol","Actor","metadata","freeze","agentOf","actor","interfaceOf","service","canisterIdOf","Install","wasmModule","getManagementCanister","createCanister","createAndInstallCanister","interfaceFactory","createActor","createActorClass","DEFAULT_ACTOR_CONFIG","_createActorMethod","configuration","decodeReturnValue","pollingStrategyFactory","strategies","chain","condition","once","timeInMsec","startingThrottleInMsec","backoffFactor","currentThrottling","backoff","timeout","caller","_b","queryTransform","cid","reply","_len2","callTransform","pollStrategy","responseBytes","handler","_len3","_key3","withOptions","_len4","_key4","transform","_methodName","_callConfig","managementCanisterIdl","toHexString","encodeLenBytes","encodeLen","decodeLenBytes","ED25519_OID","wrapDER","oid","bitStringHeaderLength","unwrapDER","derEncoded","expect","bufEquals","payloadLen","decodeLen","lenBytes","Ed25519PublicKey","rawKey","derEncode","fromDer","fromRaw","derDecode","unwrapped","RAW_KEY_LENGTH","toRaw","Ed25519KeyIdentity","_privateKey","_publicKey","generate","tweetnacl","fromParsedJson","publicKeyDer","privateKeyRaw","fromJSON","json","fromKeyPair","privateKey","getKeyPair","challenge","blob","PubKeyCoseAlgo","idlFactory","ClearArguments","BatchId","Key","CreateAssetArguments","content_type","UnsetAssetContentArguments","content_encoding","DeleteAssetArguments","ChunkId","SetAssetContentArguments","chunk_ids","BatchOperationKind","CreateAsset","UnsetAssetContent","DeleteAsset","SetAssetContent","Clear","HeaderField","HttpRequest","StreamingCallbackToken","StreamingCallbackHttpResponse","token","StreamingStrategy","Callback","HttpResponse","streaming_strategy","status_code","Time","authorize","clear","commit_batch","batch_id","operations","create_asset","create_batch","create_chunk","chunk_id","delete_asset","accept_encodings","total_length","get_chunk","http_request","http_request_streaming_callback","encodings","modified","set_asset_content","store","unset_asset_content","isReadable","isObjWithKeys","fileName","contentType","close","ReadableFile","file","_file","ReadableBlob","_blob","mime","ReadablePath","_path","_size","basename","reject","fs","stat","stats","_fd","ReadableBytes","_bytes","concurrency","active","AssetManager","maxSingleFileSize","maxChunkSize","actorConfig","_actor","getAssetsCanister","_limit","_maxSingleFileSize","_maxChunkSize","toReadable","File","Blob","readable","_c","onProgress","total","contentEncoding","_d","batch","commit","acceptEncodings","Asset","AssetManagerBatch","_scheduledOperations","_sha256","_progress","chunkCount","chunkIds","scheduled_operation","flat","_acceptEncodings","_content","chunkSize","toBlob","blobs","getChunks","chunk","toNumberArray","chunks","onChunk","sequential","chunkLimit","isCertified","certificateHeader","b64Value","decodedTime","certTime","maxCertTimeOffset","hashTree","reconstructed","witness","treeSha","verifySha256","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","_extends","ownKeys","object","enumerableOnly","symbols","sym","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","breakpointCols","className","columnClassName","columnAttrs","column","Masonry","React","reCalculateColumnCount","reCalculateColumnCountDebounce","requestAnimationFrame","cancelAnimationFrame","_lastRecalculateAnimationFrame","windowWidth","innerWidth","breakpointColsObject","matchedBreakpoint","breakpoint","optBreakpoint","itemsInColumns","currentColumnCount","columnIndex","renderColumns","childrenInColumns","columnWidth","logDeprecated","columnAttributes","_this$props","rest","classNameOutput","_identity$getPrincipa","assetManager","App","uploads","setUploads","progress","setProgress","assets","asset","detailsFromKey","_jsxs","_jsx","uploadPhotos","onchange","files","reader","FileReader","onload","readAsDataURL","Image","naturalWidth","naturalHeight","extension","detailsFromFile","prevState","alert","click","upload","alt","loading","ReactDOM","getElementById"],"sourceRoot":""}