{"version":3,"file":"static/js/720.cd232ab7.chunk.js","mappings":"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","sources":["../node_modules/@stablelib/binary/binary.ts","../node_modules/@stablelib/chacha/chacha.ts","../node_modules/@stablelib/chacha20poly1305/chacha20poly1305.ts","../node_modules/@stablelib/constant-time/constant-time.ts","../node_modules/@stablelib/ed25519/ed25519.ts","../node_modules/@stablelib/hash/hash.ts","../node_modules/@stablelib/hkdf/hkdf.ts","../node_modules/@stablelib/hmac/hmac.ts","../node_modules/@stablelib/int/int.ts","../node_modules/@stablelib/poly1305/poly1305.ts","../node_modules/@stablelib/random/random.ts","../node_modules/@stablelib/random/source/browser.ts","../node_modules/@stablelib/random/source/node.ts","../node_modules/@stablelib/random/source/system.ts","../node_modules/@stablelib/sha256/sha256.ts","../node_modules/@stablelib/sha512/sha512.ts","../node_modules/@stablelib/wipe/wipe.ts","../node_modules/@stablelib/x25519/x25519.ts","../../../src/crypto.ts","../../../src/env.ts","../../../src/index.ts","../node_modules/uint8arrays/esm/src/util/as-uint8array.js","../node_modules/uint8arrays/esm/src/alloc.js","../node_modules/uint8arrays/esm/src/concat.js","../node_modules/multiformats/esm/vendor/base-x.js","../node_modules/multiformats/esm/src/bytes.js","../node_modules/multiformats/esm/src/bases/base.js","../node_modules/multiformats/esm/src/bases/identity.js","../node_modules/multiformats/esm/src/bases/base2.js","../node_modules/multiformats/esm/src/bases/base8.js","../node_modules/multiformats/esm/src/bases/base10.js","../node_modules/multiformats/esm/src/bases/base16.js","../node_modules/multiformats/esm/src/bases/base32.js","../node_modules/multiformats/esm/src/bases/base36.js","../node_modules/multiformats/esm/src/bases/base58.js","../node_modules/multiformats/esm/src/bases/base64.js","../node_modules/multiformats/esm/src/bases/base256emoji.js","../node_modules/multiformats/esm/vendor/varint.js","../node_modules/multiformats/esm/src/varint.js","../node_modules/multiformats/esm/src/hashes/digest.js","../node_modules/multiformats/esm/src/hashes/hasher.js","../node_modules/multiformats/esm/src/hashes/sha2-browser.js","../node_modules/multiformats/esm/src/hashes/identity.js","../node_modules/multiformats/esm/src/codecs/raw.js","../node_modules/multiformats/esm/src/codecs/json.js","../node_modules/multiformats/esm/src/cid.js","../node_modules/multiformats/esm/src/basics.js","../node_modules/uint8arrays/esm/src/util/bases.js","../node_modules/uint8arrays/esm/src/from-string.js","../node_modules/uint8arrays/esm/src/to-string.js","../node_modules/detect-browser/es/index.js","../../../src/jsonrpc.ts","../../../src/constants.ts","../../../src/utils.ts","../../../src/api.ts","../../../src/provider.ts","../../../src/ws.ts","../../../src/http.ts","../../../src/events.ts","../../../../src/constants/heartbeat.ts","../../../../src/constants/index.ts","../../../src/heartbeat.ts","../../../../src/types/heartbeat.ts","../../../../src/types/index.ts","../../../src/misc.ts","../../../src/error.ts","../../../src/format.ts","../../../src/url.ts","../../../src/validators.ts","../../../../src/browser/index.ts","../../../../../src/browser/lib/localStorage.js","../../../../src/shared/index.ts","../../../../src/shared/types.ts","../../../../src/shared/utils.ts","../../../../src/constants/misc.ts","../../../../src/constants/time.ts","../../../../src/types/watch.ts","../../../../src/utils/convert.ts","../../../../src/utils/delay.ts","../../../../src/utils/index.ts","../../../src/watch.ts","../node_modules/@walletconnect/utils/node_modules/query-string/index.js","../node_modules/cross-fetch/dist/browser-ponyfill.js","../node_modules/decode-uri-component/index.js","../node_modules/filter-obj/index.js","../node_modules/lodash.isequal/index.js","../node_modules/quick-format-unescaped/index.js","../node_modules/split-on-first/index.js","../node_modules/strict-uri-encode/index.js","../node_modules/ws/browser.js","../node_modules/pino/browser.js"],"sourcesContent":["// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n\n/**\n * Package binary provides functions for encoding and decoding numbers in byte arrays.\n */\n\nimport { isSafeInteger } from \"@stablelib/int\";\n\n// TODO(dchest): add asserts for correct value ranges and array offsets.\n\n/**\n * Reads 2 bytes from array starting at offset as big-endian\n * signed 16-bit integer and returns it.\n */\nexport function readInt16BE(array: Uint8Array, offset = 0): number {\n return (((array[offset + 0] << 8) | array[offset + 1]) << 16) >> 16;\n}\n\n/**\n * Reads 2 bytes from array starting at offset as big-endian\n * unsigned 16-bit integer and returns it.\n */\nexport function readUint16BE(array: Uint8Array, offset = 0): number {\n return ((array[offset + 0] << 8) | array[offset + 1]) >>> 0;\n}\n\n/**\n * Reads 2 bytes from array starting at offset as little-endian\n * signed 16-bit integer and returns it.\n */\nexport function readInt16LE(array: Uint8Array, offset = 0): number {\n return (((array[offset + 1] << 8) | array[offset]) << 16) >> 16;\n}\n\n/**\n * Reads 2 bytes from array starting at offset as little-endian\n * unsigned 16-bit integer and returns it.\n */\nexport function readUint16LE(array: Uint8Array, offset = 0): number {\n return ((array[offset + 1] << 8) | array[offset]) >>> 0;\n}\n\n/**\n * Writes 2-byte big-endian representation of 16-bit unsigned\n * value to byte array starting at offset.\n *\n * If byte array is not given, creates a new 2-byte one.\n *\n * Returns the output byte array.\n */\nexport function writeUint16BE(value: number, out = new Uint8Array(2), offset = 0): Uint8Array {\n out[offset + 0] = value >>> 8;\n out[offset + 1] = value >>> 0;\n return out;\n}\n\nexport const writeInt16BE = writeUint16BE;\n\n/**\n * Writes 2-byte little-endian representation of 16-bit unsigned\n * value to array starting at offset.\n *\n * If byte array is not given, creates a new 2-byte one.\n *\n * Returns the output byte array.\n */\nexport function writeUint16LE(value: number, out = new Uint8Array(2), offset = 0): Uint8Array {\n out[offset + 0] = value >>> 0;\n out[offset + 1] = value >>> 8;\n return out;\n}\n\nexport const writeInt16LE = writeUint16LE;\n\n/**\n * Reads 4 bytes from array starting at offset as big-endian\n * signed 32-bit integer and returns it.\n */\nexport function readInt32BE(array: Uint8Array, offset = 0): number {\n return (array[offset] << 24) |\n (array[offset + 1] << 16) |\n (array[offset + 2] << 8) |\n array[offset + 3];\n}\n\n/**\n * Reads 4 bytes from array starting at offset as big-endian\n * unsigned 32-bit integer and returns it.\n */\nexport function readUint32BE(array: Uint8Array, offset = 0): number {\n return ((array[offset] << 24) |\n (array[offset + 1] << 16) |\n (array[offset + 2] << 8) |\n array[offset + 3]) >>> 0;\n}\n\n/**\n * Reads 4 bytes from array starting at offset as little-endian\n * signed 32-bit integer and returns it.\n */\nexport function readInt32LE(array: Uint8Array, offset = 0): number {\n return (array[offset + 3] << 24) |\n (array[offset + 2] << 16) |\n (array[offset + 1] << 8) |\n array[offset];\n}\n\n/**\n * Reads 4 bytes from array starting at offset as little-endian\n * unsigned 32-bit integer and returns it.\n */\nexport function readUint32LE(array: Uint8Array, offset = 0): number {\n return ((array[offset + 3] << 24) |\n (array[offset + 2] << 16) |\n (array[offset + 1] << 8) |\n array[offset]) >>> 0;\n}\n\n/**\n * Writes 4-byte big-endian representation of 32-bit unsigned\n * value to byte array starting at offset.\n *\n * If byte array is not given, creates a new 4-byte one.\n *\n * Returns the output byte array.\n */\nexport function writeUint32BE(value: number, out = new Uint8Array(4), offset = 0): Uint8Array {\n out[offset + 0] = value >>> 24;\n out[offset + 1] = value >>> 16;\n out[offset + 2] = value >>> 8;\n out[offset + 3] = value >>> 0;\n return out;\n}\n\nexport const writeInt32BE = writeUint32BE;\n\n/**\n * Writes 4-byte little-endian representation of 32-bit unsigned\n * value to array starting at offset.\n *\n * If byte array is not given, creates a new 4-byte one.\n *\n * Returns the output byte array.\n */\nexport function writeUint32LE(value: number, out = new Uint8Array(4), offset = 0): Uint8Array {\n out[offset + 0] = value >>> 0;\n out[offset + 1] = value >>> 8;\n out[offset + 2] = value >>> 16;\n out[offset + 3] = value >>> 24;\n return out;\n}\n\n\nexport const writeInt32LE = writeUint32LE;\n\n/**\n * Reads 8 bytes from array starting at offset as big-endian\n * signed 64-bit integer and returns it.\n *\n * IMPORTANT: due to JavaScript limitation, supports exact\n * numbers in range -9007199254740991 to 9007199254740991.\n * If the number stored in the byte array is outside this range,\n * the result is not exact.\n */\nexport function readInt64BE(array: Uint8Array, offset = 0): number {\n const hi = readInt32BE(array, offset);\n const lo = readInt32BE(array, offset + 4);\n return hi * 0x100000000 + lo - ((lo>>31) * 0x100000000);\n}\n\n/**\n * Reads 8 bytes from array starting at offset as big-endian\n * unsigned 64-bit integer and returns it.\n *\n * IMPORTANT: due to JavaScript limitation, supports values up to 2^53-1.\n */\nexport function readUint64BE(array: Uint8Array, offset = 0): number {\n const hi = readUint32BE(array, offset);\n const lo = readUint32BE(array, offset + 4);\n return hi * 0x100000000 + lo;\n}\n\n/**\n * Reads 8 bytes from array starting at offset as little-endian\n * signed 64-bit integer and returns it.\n *\n * IMPORTANT: due to JavaScript limitation, supports exact\n * numbers in range -9007199254740991 to 9007199254740991.\n * If the number stored in the byte array is outside this range,\n * the result is not exact.\n */\nexport function readInt64LE(array: Uint8Array, offset = 0): number {\n const lo = readInt32LE(array, offset);\n const hi = readInt32LE(array, offset + 4);\n return hi * 0x100000000 + lo - ((lo>>31) * 0x100000000);\n}\n\n\n/**\n * Reads 8 bytes from array starting at offset as little-endian\n * unsigned 64-bit integer and returns it.\n *\n * IMPORTANT: due to JavaScript limitation, supports values up to 2^53-1.\n */\nexport function readUint64LE(array: Uint8Array, offset = 0): number {\n const lo = readUint32LE(array, offset);\n const hi = readUint32LE(array, offset + 4);\n return hi * 0x100000000 + lo;\n}\n\n/**\n * Writes 8-byte big-endian representation of 64-bit unsigned\n * value to byte array starting at offset.\n *\n * Due to JavaScript limitation, supports values up to 2^53-1.\n *\n * If byte array is not given, creates a new 8-byte one.\n *\n * Returns the output byte array.\n */\nexport function writeUint64BE(value: number, out = new Uint8Array(8), offset = 0): Uint8Array {\n writeUint32BE(value / 0x100000000 >>> 0, out, offset);\n writeUint32BE(value >>> 0, out, offset + 4);\n return out;\n}\n\nexport const writeInt64BE = writeUint64BE;\n\n/**\n * Writes 8-byte little-endian representation of 64-bit unsigned\n * value to byte array starting at offset.\n *\n * Due to JavaScript limitation, supports values up to 2^53-1.\n *\n * If byte array is not given, creates a new 8-byte one.\n *\n * Returns the output byte array.\n */\nexport function writeUint64LE(value: number, out = new Uint8Array(8), offset = 0): Uint8Array {\n writeUint32LE(value >>> 0, out, offset);\n writeUint32LE(value / 0x100000000 >>> 0, out, offset + 4);\n return out;\n}\n\nexport const writeInt64LE = writeUint64LE;\n\n/**\n * Reads bytes from array starting at offset as big-endian\n * unsigned bitLen-bit integer and returns it.\n *\n * Supports bit lengths divisible by 8, up to 48.\n */\nexport function readUintBE(bitLength: number, array: Uint8Array, offset = 0): number {\n // TODO(dchest): implement support for bitLengths non-divisible by 8\n if (bitLength % 8 !== 0) {\n throw new Error(\"readUintBE supports only bitLengths divisible by 8\");\n }\n if (bitLength / 8 > array.length - offset) {\n throw new Error(\"readUintBE: array is too short for the given bitLength\");\n }\n let result = 0;\n let mul = 1;\n for (let i = bitLength / 8 + offset - 1; i >= offset; i--) {\n result += array[i] * mul;\n mul *= 256;\n }\n return result;\n}\n\n/**\n * Reads bytes from array starting at offset as little-endian\n * unsigned bitLen-bit integer and returns it.\n *\n * Supports bit lengths divisible by 8, up to 48.\n */\nexport function readUintLE(bitLength: number, array: Uint8Array, offset = 0): number {\n // TODO(dchest): implement support for bitLengths non-divisible by 8\n if (bitLength % 8 !== 0) {\n throw new Error(\"readUintLE supports only bitLengths divisible by 8\");\n }\n if (bitLength / 8 > array.length - offset) {\n throw new Error(\"readUintLE: array is too short for the given bitLength\");\n }\n let result = 0;\n let mul = 1;\n for (let i = offset; i < offset + bitLength / 8; i++) {\n result += array[i] * mul;\n mul *= 256;\n }\n return result;\n}\n\n/**\n * Writes a big-endian representation of bitLen-bit unsigned\n * value to array starting at offset.\n *\n * Supports bit lengths divisible by 8, up to 48.\n *\n * If byte array is not given, creates a new one.\n *\n * Returns the output byte array.\n */\nexport function writeUintBE(bitLength: number, value: number,\n out = new Uint8Array(bitLength / 8), offset = 0): Uint8Array {\n // TODO(dchest): implement support for bitLengths non-divisible by 8\n if (bitLength % 8 !== 0) {\n throw new Error(\"writeUintBE supports only bitLengths divisible by 8\");\n }\n if (!isSafeInteger(value)) {\n throw new Error(\"writeUintBE value must be an integer\");\n }\n let div = 1;\n for (let i = bitLength / 8 + offset - 1; i >= offset; i--) {\n out[i] = (value / div) & 0xff;\n div *= 256;\n }\n return out;\n}\n\n/**\n * Writes a little-endian representation of bitLen-bit unsigned\n * value to array starting at offset.\n *\n * Supports bit lengths divisible by 8, up to 48.\n *\n * If byte array is not given, creates a new one.\n *\n * Returns the output byte array.\n */\nexport function writeUintLE(bitLength: number, value: number,\n out = new Uint8Array(bitLength / 8), offset = 0): Uint8Array {\n // TODO(dchest): implement support for bitLengths non-divisible by 8\n if (bitLength % 8 !== 0) {\n throw new Error(\"writeUintLE supports only bitLengths divisible by 8\");\n }\n if (!isSafeInteger(value)) {\n throw new Error(\"writeUintLE value must be an integer\");\n }\n let div = 1;\n for (let i = offset; i < offset + bitLength / 8; i++) {\n out[i] = (value / div) & 0xff;\n div *= 256;\n }\n return out;\n}\n\n/**\n * Reads 4 bytes from array starting at offset as big-endian\n * 32-bit floating-point number and returns it.\n */\nexport function readFloat32BE(array: Uint8Array, offset = 0): number {\n const view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n return view.getFloat32(offset);\n}\n\n/**\n * Reads 4 bytes from array starting at offset as little-endian\n * 32-bit floating-point number and returns it.\n */\nexport function readFloat32LE(array: Uint8Array, offset = 0): number {\n const view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n return view.getFloat32(offset, true);\n}\n\n/**\n * Reads 8 bytes from array starting at offset as big-endian\n * 64-bit floating-point number (\"double\") and returns it.\n */\nexport function readFloat64BE(array: Uint8Array, offset = 0): number {\n const view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n return view.getFloat64(offset);\n}\n\n/**\n * Reads 8 bytes from array starting at offset as little-endian\n * 64-bit floating-point number (\"double\") and returns it.\n */\nexport function readFloat64LE(array: Uint8Array, offset = 0): number {\n const view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n return view.getFloat64(offset, true);\n}\n\n/**\n * Writes 4-byte big-endian floating-point representation of value\n * to byte array starting at offset.\n *\n * If byte array is not given, creates a new 4-byte one.\n *\n * Returns the output byte array.\n */\nexport function writeFloat32BE(value: number, out = new Uint8Array(4), offset = 0): Uint8Array {\n const view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n view.setFloat32(offset, value);\n return out;\n}\n\n/**\n * Writes 4-byte little-endian floating-point representation of value\n * to byte array starting at offset.\n *\n * If byte array is not given, creates a new 4-byte one.\n *\n * Returns the output byte array.\n */\nexport function writeFloat32LE(value: number, out = new Uint8Array(4), offset = 0): Uint8Array {\n const view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n view.setFloat32(offset, value, true);\n return out;\n}\n\n/**\n * Writes 8-byte big-endian floating-point representation of value\n * to byte array starting at offset.\n *\n * If byte array is not given, creates a new 8-byte one.\n *\n * Returns the output byte array.\n */\nexport function writeFloat64BE(value: number, out = new Uint8Array(8), offset = 0): Uint8Array {\n const view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n view.setFloat64(offset, value);\n return out;\n}\n\n/**\n * Writes 8-byte little-endian floating-point representation of value\n * to byte array starting at offset.\n *\n * If byte array is not given, creates a new 8-byte one.\n *\n * Returns the output byte array.\n */\nexport function writeFloat64LE(value: number, out = new Uint8Array(8), offset = 0): Uint8Array {\n const view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n view.setFloat64(offset, value, true);\n return out;\n}\n","// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n\n/**\n * Package chacha implements ChaCha stream cipher.\n */\n\nimport { writeUint32LE } from \"@stablelib/binary\";\nimport { wipe } from \"@stablelib/wipe\";\n\n// Number of ChaCha rounds (ChaCha20).\nconst ROUNDS = 20;\n\n// Applies the ChaCha core function to 16-byte input,\n// 32-byte key key, and puts the result into 64-byte array out.\nfunction core(out: Uint8Array, input: Uint8Array, key: Uint8Array): void {\n let j0 = 0x61707865; // \"expa\" -- ChaCha's \"sigma\" constant\n let j1 = 0x3320646E; // \"nd 3\" for 32-byte keys\n let j2 = 0x79622D32; // \"2-by\"\n let j3 = 0x6B206574; // \"te k\"\n let j4 = (key[3] << 24) | (key[2] << 16) | (key[1] << 8) | key[0];\n let j5 = (key[7] << 24) | (key[6] << 16) | (key[5] << 8) | key[4];\n let j6 = (key[11] << 24) | (key[10] << 16) | (key[9] << 8) | key[8];\n let j7 = (key[15] << 24) | (key[14] << 16) | (key[13] << 8) | key[12];\n let j8 = (key[19] << 24) | (key[18] << 16) | (key[17] << 8) | key[16];\n let j9 = (key[23] << 24) | (key[22] << 16) | (key[21] << 8) | key[20];\n let j10 = (key[27] << 24) | (key[26] << 16) | (key[25] << 8) | key[24];\n let j11 = (key[31] << 24) | (key[30] << 16) | (key[29] << 8) | key[28];\n let j12 = (input[3] << 24) | (input[2] << 16) | (input[1] << 8) | input[0];\n let j13 = (input[7] << 24) | (input[6] << 16) | (input[5] << 8) | input[4];\n let j14 = (input[11] << 24) | (input[10] << 16) | (input[9] << 8) | input[8];\n let j15 = (input[15] << 24) | (input[14] << 16) | (input[13] << 8) | input[12];\n\n let x0 = j0;\n let x1 = j1;\n let x2 = j2;\n let x3 = j3;\n let x4 = j4;\n let x5 = j5;\n let x6 = j6;\n let x7 = j7;\n let x8 = j8;\n let x9 = j9;\n let x10 = j10;\n let x11 = j11;\n let x12 = j12;\n let x13 = j13;\n let x14 = j14;\n let x15 = j15;\n\n for (let i = 0; i < ROUNDS; i += 2) {\n x0 = x0 + x4 | 0; x12 ^= x0; x12 = x12 >>> (32 - 16) | x12 << 16;\n x8 = x8 + x12 | 0; x4 ^= x8; x4 = x4 >>> (32 - 12) | x4 << 12;\n x1 = x1 + x5 | 0; x13 ^= x1; x13 = x13 >>> (32 - 16) | x13 << 16;\n x9 = x9 + x13 | 0; x5 ^= x9; x5 = x5 >>> (32 - 12) | x5 << 12;\n\n x2 = x2 + x6 | 0; x14 ^= x2; x14 = x14 >>> (32 - 16) | x14 << 16;\n x10 = x10 + x14 | 0; x6 ^= x10; x6 = x6 >>> (32 - 12) | x6 << 12;\n x3 = x3 + x7 | 0; x15 ^= x3; x15 = x15 >>> (32 - 16) | x15 << 16;\n x11 = x11 + x15 | 0; x7 ^= x11; x7 = x7 >>> (32 - 12) | x7 << 12;\n\n x2 = x2 + x6 | 0; x14 ^= x2; x14 = x14 >>> (32 - 8) | x14 << 8;\n x10 = x10 + x14 | 0; x6 ^= x10; x6 = x6 >>> (32 - 7) | x6 << 7;\n x3 = x3 + x7 | 0; x15 ^= x3; x15 = x15 >>> (32 - 8) | x15 << 8;\n x11 = x11 + x15 | 0; x7 ^= x11; x7 = x7 >>> (32 - 7) | x7 << 7;\n\n x1 = x1 + x5 | 0; x13 ^= x1; x13 = x13 >>> (32 - 8) | x13 << 8;\n x9 = x9 + x13 | 0; x5 ^= x9; x5 = x5 >>> (32 - 7) | x5 << 7;\n x0 = x0 + x4 | 0; x12 ^= x0; x12 = x12 >>> (32 - 8) | x12 << 8;\n x8 = x8 + x12 | 0; x4 ^= x8; x4 = x4 >>> (32 - 7) | x4 << 7;\n\n x0 = x0 + x5 | 0; x15 ^= x0; x15 = x15 >>> (32 - 16) | x15 << 16;\n x10 = x10 + x15 | 0; x5 ^= x10; x5 = x5 >>> (32 - 12) | x5 << 12;\n x1 = x1 + x6 | 0; x12 ^= x1; x12 = x12 >>> (32 - 16) | x12 << 16;\n x11 = x11 + x12 | 0; x6 ^= x11; x6 = x6 >>> (32 - 12) | x6 << 12;\n\n x2 = x2 + x7 | 0; x13 ^= x2; x13 = x13 >>> (32 - 16) | x13 << 16;\n x8 = x8 + x13 | 0; x7 ^= x8; x7 = x7 >>> (32 - 12) | x7 << 12;\n x3 = x3 + x4 | 0; x14 ^= x3; x14 = x14 >>> (32 - 16) | x14 << 16;\n x9 = x9 + x14 | 0; x4 ^= x9; x4 = x4 >>> (32 - 12) | x4 << 12;\n\n x2 = x2 + x7 | 0; x13 ^= x2; x13 = x13 >>> (32 - 8) | x13 << 8;\n x8 = x8 + x13 | 0; x7 ^= x8; x7 = x7 >>> (32 - 7) | x7 << 7;\n x3 = x3 + x4 | 0; x14 ^= x3; x14 = x14 >>> (32 - 8) | x14 << 8;\n x9 = x9 + x14 | 0; x4 ^= x9; x4 = x4 >>> (32 - 7) | x4 << 7;\n\n x1 = x1 + x6 | 0; x12 ^= x1; x12 = x12 >>> (32 - 8) | x12 << 8;\n x11 = x11 + x12 | 0; x6 ^= x11; x6 = x6 >>> (32 - 7) | x6 << 7;\n x0 = x0 + x5 | 0; x15 ^= x0; x15 = x15 >>> (32 - 8) | x15 << 8;\n x10 = x10 + x15 | 0; x5 ^= x10; x5 = x5 >>> (32 - 7) | x5 << 7;\n }\n writeUint32LE(x0 + j0 | 0, out, 0);\n writeUint32LE(x1 + j1 | 0, out, 4);\n writeUint32LE(x2 + j2 | 0, out, 8);\n writeUint32LE(x3 + j3 | 0, out, 12);\n writeUint32LE(x4 + j4 | 0, out, 16);\n writeUint32LE(x5 + j5 | 0, out, 20);\n writeUint32LE(x6 + j6 | 0, out, 24);\n writeUint32LE(x7 + j7 | 0, out, 28);\n writeUint32LE(x8 + j8 | 0, out, 32);\n writeUint32LE(x9 + j9 | 0, out, 36);\n writeUint32LE(x10 + j10 | 0, out, 40);\n writeUint32LE(x11 + j11 | 0, out, 44);\n writeUint32LE(x12 + j12 | 0, out, 48);\n writeUint32LE(x13 + j13 | 0, out, 52);\n writeUint32LE(x14 + j14 | 0, out, 56);\n writeUint32LE(x15 + j15 | 0, out, 60);\n}\n\n/**\n * Encrypt src with ChaCha20 stream generated for the given 32-byte key and\n * 8-byte (as in original implementation) or 12-byte (as in RFC7539) nonce and\n * write the result into dst and return it.\n *\n * dst and src may be the same, but otherwise must not overlap.\n *\n * If nonce is 12 bytes, users should not encrypt more than 256 GiB with the\n * same key and nonce, otherwise the stream will repeat. The function will\n * throw error if counter overflows to prevent this.\n *\n * If nonce is 8 bytes, the output is practically unlimited (2^70 bytes, which\n * is more than a million petabytes). However, it is not recommended to\n * generate 8-byte nonces randomly, as the chance of collision is high.\n *\n * Never use the same key and nonce to encrypt more than one message.\n *\n * If nonceInplaceCounterLength is not 0, the nonce is assumed to be a 16-byte\n * array with stream counter in first nonceInplaceCounterLength bytes and nonce\n * in the last remaining bytes. The counter will be incremented inplace for\n * each ChaCha block. This is useful if you need to encrypt one stream of data\n * in chunks.\n */\nexport function streamXOR(key: Uint8Array, nonce: Uint8Array,\n src: Uint8Array, dst: Uint8Array, nonceInplaceCounterLength = 0): Uint8Array {\n // We only support 256-bit keys.\n if (key.length !== 32) {\n throw new Error(\"ChaCha: key size must be 32 bytes\");\n }\n\n if (dst.length < src.length) {\n throw new Error(\"ChaCha: destination is shorter than source\");\n }\n\n let nc: Uint8Array;\n let counterLength: number;\n\n if (nonceInplaceCounterLength === 0) {\n if (nonce.length !== 8 && nonce.length !== 12) {\n throw new Error(\"ChaCha nonce must be 8 or 12 bytes\");\n }\n nc = new Uint8Array(16);\n // First counterLength bytes of nc are counter, starting with zero.\n counterLength = nc.length - nonce.length;\n // Last bytes of nc after counterLength are nonce, set them.\n nc.set(nonce, counterLength);\n } else {\n if (nonce.length !== 16) {\n throw new Error(\"ChaCha nonce with counter must be 16 bytes\");\n }\n // This will update passed nonce with counter inplace.\n nc = nonce;\n counterLength = nonceInplaceCounterLength;\n }\n\n // Allocate temporary space for ChaCha block.\n const block = new Uint8Array(64);\n\n for (let i = 0; i < src.length; i += 64) {\n // Generate a block.\n core(block, nc, key);\n\n // XOR block bytes with src into dst.\n for (let j = i; j < i + 64 && j < src.length; j++) {\n dst[j] = src[j] ^ block[j - i];\n }\n\n // Increment counter.\n incrementCounter(nc, 0, counterLength);\n }\n\n // Cleanup temporary space.\n wipe(block);\n\n if (nonceInplaceCounterLength === 0) {\n // Cleanup counter.\n wipe(nc);\n }\n\n return dst;\n}\n\n/**\n * Generate ChaCha20 stream for the given 32-byte key and 8-byte or 12-byte\n * nonce and write it into dst and return it.\n *\n * Never use the same key and nonce to generate more than one stream.\n *\n * If nonceInplaceCounterLength is not 0, it behaves the same with respect to\n * the nonce as described in the streamXOR documentation.\n *\n * stream is like streamXOR with all-zero src.\n */\nexport function stream(key: Uint8Array, nonce: Uint8Array,\n dst: Uint8Array, nonceInplaceCounterLength = 0): Uint8Array {\n wipe(dst);\n return streamXOR(key, nonce, dst, dst, nonceInplaceCounterLength);\n}\n\nfunction incrementCounter(counter: Uint8Array, pos: number, len: number) {\n let carry = 1;\n while (len--) {\n carry = carry + (counter[pos] & 0xff) | 0;\n counter[pos] = carry & 0xff;\n carry >>>= 8;\n pos++;\n }\n if (carry > 0) {\n throw new Error(\"ChaCha: counter overflow\");\n }\n}\n","// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n\n/**\n * Package chacha20poly1305 implements ChaCha20-Poly1305 AEAD.\n */\n\nimport { AEAD } from \"@stablelib/aead\";\nimport { streamXOR, stream } from \"@stablelib/chacha\";\nimport { Poly1305 } from \"@stablelib/poly1305\";\nimport { wipe } from \"@stablelib/wipe\";\nimport { writeUint64LE } from \"@stablelib/binary\";\nimport { equal } from \"@stablelib/constant-time\";\n\nexport const KEY_LENGTH = 32;\nexport const NONCE_LENGTH = 12;\nexport const TAG_LENGTH = 16;\n\nconst ZEROS = new Uint8Array(16);\n\n/**\n * ChaCha20-Poly1305 Authenticated Encryption with Associated Data.\n *\n * Defined in RFC7539.\n */\nexport class ChaCha20Poly1305 implements AEAD {\n readonly nonceLength = NONCE_LENGTH;\n readonly tagLength = TAG_LENGTH;\n\n private _key: Uint8Array;\n\n /**\n * Creates a new instance with the given 32-byte key.\n */\n constructor(key: Uint8Array) {\n if (key.length !== KEY_LENGTH) {\n throw new Error(\"ChaCha20Poly1305 needs 32-byte key\");\n }\n // Copy key.\n this._key = new Uint8Array(key);\n }\n\n /**\n * Encrypts and authenticates plaintext, authenticates associated data,\n * and returns sealed ciphertext, which includes authentication tag.\n *\n * RFC7539 specifies 12 bytes for nonce. It may be this 12-byte nonce\n * (\"IV\"), or full 16-byte counter (called \"32-bit fixed-common part\")\n * and nonce.\n *\n * If dst is given (it must be the size of plaintext + the size of tag\n * length) the result will be put into it. Dst and plaintext must not\n * overlap.\n */\n seal(nonce: Uint8Array, plaintext: Uint8Array, associatedData?: Uint8Array,\n dst?: Uint8Array): Uint8Array {\n if (nonce.length > 16) {\n throw new Error(\"ChaCha20Poly1305: incorrect nonce length\");\n }\n\n // Allocate space for counter, and set nonce as last bytes of it.\n const counter = new Uint8Array(16);\n counter.set(nonce, counter.length - nonce.length);\n\n // Generate authentication key by taking first 32-bytes of stream.\n // We pass full counter, which has 12-byte nonce and 4-byte block counter,\n // and it will get incremented after generating the block, which is\n // exactly what we need: we only use the first 32 bytes of 64-byte\n // ChaCha block and discard the next 32 bytes.\n const authKey = new Uint8Array(32);\n stream(this._key, counter, authKey, 4);\n\n // Allocate space for sealed ciphertext.\n const resultLength = plaintext.length + this.tagLength;\n let result;\n if (dst) {\n if (dst.length !== resultLength) {\n throw new Error(\"ChaCha20Poly1305: incorrect destination length\");\n }\n result = dst;\n } else {\n result = new Uint8Array(resultLength);\n }\n\n // Encrypt plaintext.\n streamXOR(this._key, counter, plaintext, result, 4);\n\n // Authenticate.\n // XXX: can \"simplify\" here: pass full result (which is already padded\n // due to zeroes prepared for tag), and ciphertext length instead of\n // subarray of result.\n this._authenticate(result.subarray(result.length - this.tagLength, result.length),\n authKey, result.subarray(0, result.length - this.tagLength), associatedData);\n\n // Cleanup.\n wipe(counter);\n\n return result;\n }\n\n /**\n * Authenticates sealed ciphertext (which includes authentication tag) and\n * associated data, decrypts ciphertext and returns decrypted plaintext.\n *\n * RFC7539 specifies 12 bytes for nonce. It may be this 12-byte nonce\n * (\"IV\"), or full 16-byte counter (called \"32-bit fixed-common part\")\n * and nonce.\n *\n * If authentication fails, it returns null.\n *\n * If dst is given (it must be of ciphertext length minus tag length),\n * the result will be put into it. Dst and plaintext must not overlap.\n */\n open(nonce: Uint8Array, sealed: Uint8Array, associatedData?: Uint8Array,\n dst?: Uint8Array): Uint8Array | null {\n if (nonce.length > 16) {\n throw new Error(\"ChaCha20Poly1305: incorrect nonce length\");\n }\n\n // Sealed ciphertext should at least contain tag.\n if (sealed.length < this.tagLength) {\n // TODO(dchest): should we throw here instead?\n return null;\n }\n\n // Allocate space for counter, and set nonce as last bytes of it.\n const counter = new Uint8Array(16);\n counter.set(nonce, counter.length - nonce.length);\n\n // Generate authentication key by taking first 32-bytes of stream.\n const authKey = new Uint8Array(32);\n stream(this._key, counter, authKey, 4);\n\n // Authenticate.\n // XXX: can simplify and avoid allocation: since authenticate()\n // already allocates tag (from Poly1305.digest(), it can return)\n // it instead of copying to calculatedTag. But then in seal()\n // we'll need to copy it.\n const calculatedTag = new Uint8Array(this.tagLength);\n this._authenticate(calculatedTag, authKey,\n sealed.subarray(0, sealed.length - this.tagLength), associatedData);\n\n // Constant-time compare tags and return null if they differ.\n if (!equal(calculatedTag,\n sealed.subarray(sealed.length - this.tagLength, sealed.length))) {\n return null;\n }\n\n // Allocate space for decrypted plaintext.\n const resultLength = sealed.length - this.tagLength;\n let result;\n if (dst) {\n if (dst.length !== resultLength) {\n throw new Error(\"ChaCha20Poly1305: incorrect destination length\");\n }\n result = dst;\n } else {\n result = new Uint8Array(resultLength);\n }\n\n // Decrypt.\n streamXOR(this._key, counter,\n sealed.subarray(0, sealed.length - this.tagLength), result, 4);\n\n // Cleanup.\n wipe(counter);\n\n return result;\n }\n\n clean(): this {\n wipe(this._key);\n return this;\n }\n\n private _authenticate(tagOut: Uint8Array, authKey: Uint8Array,\n ciphertext: Uint8Array, associatedData?: Uint8Array) {\n\n // Initialize Poly1305 with authKey.\n const h = new Poly1305(authKey);\n\n // Authenticate padded associated data.\n if (associatedData) {\n h.update(associatedData);\n if (associatedData.length % 16 > 0) {\n h.update(ZEROS.subarray(associatedData.length % 16));\n }\n }\n\n // Authenticate padded ciphertext.\n h.update(ciphertext);\n if (ciphertext.length % 16 > 0) {\n h.update(ZEROS.subarray(ciphertext.length % 16));\n }\n\n // Authenticate length of associated data.\n // XXX: can avoid allocation here?\n const length = new Uint8Array(8);\n if (associatedData) {\n writeUint64LE(associatedData.length, length);\n }\n h.update(length);\n\n // Authenticate length of ciphertext.\n writeUint64LE(ciphertext.length, length);\n h.update(length);\n\n // Get tag and copy it into tagOut.\n const tag = h.digest();\n for (let i = 0; i < tag.length; i++) {\n tagOut[i] = tag[i];\n }\n\n // Cleanup.\n h.clean();\n wipe(tag);\n wipe(length);\n }\n}\n","// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n\n/**\n * Package constant-time provides functions for performing algorithmically constant-time operations.\n */\n\n/**\n * NOTE! Due to the inability to guarantee real constant time evaluation of\n * anything in JavaScript VM, this is module is the best effort.\n */\n\n/**\n * Returns resultIfOne if subject is 1, or resultIfZero if subject is 0.\n *\n * Supports only 32-bit integers, so resultIfOne or resultIfZero are not\n * integers, they'll be converted to them with bitwise operations.\n */\nexport function select(subject: number, resultIfOne: number, resultIfZero: number): number {\n return (~(subject - 1) & resultIfOne) | ((subject - 1) & resultIfZero);\n}\n\n/**\n * Returns 1 if a <= b, or 0 if not.\n * Arguments must be positive 32-bit integers less than or equal to 2^31 - 1.\n */\nexport function lessOrEqual(a: number, b: number): number {\n return (((a | 0) - (b | 0) - 1) >>> 31) & 1;\n}\n\n/**\n * Returns 1 if a and b are of equal length and their contents\n * are equal, or 0 otherwise.\n *\n * Note that unlike in equal(), zero-length inputs are considered\n * the same, so this function will return 1.\n */\nexport function compare(a: Uint8Array, b: Uint8Array): number {\n if (a.length !== b.length) {\n return 0;\n }\n let result = 0;\n for (let i = 0; i < a.length; i++) {\n result |= a[i] ^ b[i];\n }\n return (1 & ((result - 1) >>> 8));\n}\n\n/**\n * Returns true if a and b are of equal non-zero length,\n * and their contents are equal, or false otherwise.\n *\n * Note that unlike in compare() zero-length inputs are considered\n * _not_ equal, so this function will return false.\n */\nexport function equal(a: Uint8Array, b: Uint8Array): boolean {\n if (a.length === 0 || b.length === 0) {\n return false;\n }\n return compare(a, b) !== 0;\n}\n","// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n\n/**\n * Package ed25519 implements Ed25519 public-key signature algorithm.\n */\n\nimport { randomBytes, RandomSource } from \"@stablelib/random\";\nimport { hash, SHA512 } from \"@stablelib/sha512\";\nimport { wipe } from \"@stablelib/wipe\";\n\nexport const SIGNATURE_LENGTH = 64;\nexport const PUBLIC_KEY_LENGTH = 32;\nexport const SECRET_KEY_LENGTH = 64;\nexport const SEED_LENGTH = 32;\n\n// TODO(dchest): some functions are copies of ../kex/x25519.\n// Find a way to combine them without opening up to public.\n\n// Ported from TweetNaCl.js, which was ported from TweetNaCl\n// by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n// https://tweetnacl.js.org\n\n// TweetNaCl contributors:\n// Daniel J. Bernstein, Bernard van Gastel, Wesley Janssen,\n// Tanja Lange, Peter Schwabe, Sjaak Smetsers.\n// Public domain.\n// https://tweetnacl.cr.yp.to/\n\ntype GF = Float64Array;\n\n// Returns new zero-filled 16-element GF (Float64Array).\n// If passed an array of numbers, prefills the returned\n// array with them.\n//\n// We use Float64Array, because we need 48-bit numbers\n// for this implementation.\nfunction gf(init?: number[]): GF {\n const r = new Float64Array(16);\n if (init) {\n for (let i = 0; i < init.length; i++) {\n r[i] = init[i];\n }\n }\n return r;\n}\n\n// Base point.\nconst _9 = new Uint8Array(32); _9[0] = 9;\n\nconst gf0 = gf();\n\nconst gf1 = gf([1]);\n\nconst D = gf([\n 0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070,\n 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203\n]);\n\nconst D2 = gf([\n 0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0,\n 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406\n]);\n\nconst X = gf([\n 0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c,\n 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169\n]);\n\nconst Y = gf([\n 0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666,\n 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666\n]);\n\nconst I = gf([\n 0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43,\n 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83\n]);\n\nfunction set25519(r: GF, a: GF) {\n for (let i = 0; i < 16; i++) {\n r[i] = a[i] | 0;\n }\n}\n\nfunction car25519(o: GF) {\n let c = 1;\n for (let i = 0; i < 16; i++) {\n let 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: GF, q: GF, b: number) {\n const c = ~(b - 1);\n for (let i = 0; i < 16; i++) {\n const t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction pack25519(o: Uint8Array, n: GF) {\n const m = gf();\n const t = gf();\n for (let i = 0; i < 16; i++) {\n t[i] = n[i];\n }\n car25519(t);\n car25519(t);\n car25519(t);\n for (let j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (let 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 const b = (m[15] >> 16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1 - b);\n }\n for (let i = 0; i < 16; i++) {\n o[2 * i] = t[i] & 0xff;\n o[2 * i + 1] = t[i] >> 8;\n }\n}\n\nfunction verify32(x: Uint8Array, y: Uint8Array) {\n let d = 0;\n for (let i = 0; i < 32; i++) {\n d |= x[i] ^ y[i];\n }\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\n\nfunction neq25519(a: GF, b: GF) {\n const c = new Uint8Array(32);\n const d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return verify32(c, d);\n}\n\nfunction par25519(a: GF) {\n const d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction unpack25519(o: GF, n: Uint8Array) {\n for (let i = 0; i < 16; i++) {\n o[i] = n[2 * i] + (n[2 * i + 1] << 8);\n }\n o[15] &= 0x7fff;\n}\n\nfunction add(o: GF, a: GF, b: GF) {\n for (let i = 0; i < 16; i++) {\n o[i] = a[i] + b[i];\n }\n}\n\nfunction sub(o: GF, a: GF, b: GF) {\n for (let i = 0; i < 16; i++) {\n o[i] = a[i] - b[i];\n }\n}\n\nfunction mul(o: GF, a: GF, b: GF) {\n let v: number, c: number,\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 square(o: GF, a: GF) {\n mul(o, a, a);\n}\n\nfunction inv25519(o: GF, i: GF) {\n const c = gf();\n let a: number;\n for (a = 0; a < 16; a++) {\n c[a] = i[a];\n }\n for (a = 253; a >= 0; a--) {\n square(c, c);\n if (a !== 2 && a !== 4) {\n mul(c, c, i);\n }\n }\n for (a = 0; a < 16; a++) {\n o[a] = c[a];\n }\n}\n\nfunction pow2523(o: GF, i: GF) {\n const c = gf();\n let a: number;\n for (a = 0; a < 16; a++) {\n c[a] = i[a];\n }\n for (a = 250; a >= 0; a--) {\n square(c, c);\n if (a !== 1) {\n mul(c, c, i);\n }\n }\n for (a = 0; a < 16; a++) {\n o[a] = c[a];\n }\n}\n\n\nfunction edadd(p: GF[], q: GF[]) {\n const a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf(),\n g = gf(), h = gf(), t = gf();\n\n sub(a, p[1], p[0]);\n sub(t, q[1], q[0]);\n mul(a, a, t);\n add(b, p[0], p[1]);\n add(t, q[0], q[1]);\n mul(b, b, t);\n mul(c, p[3], q[3]);\n mul(c, c, D2);\n mul(d, p[2], q[2]);\n add(d, d, d);\n sub(e, b, a);\n sub(f, d, c);\n add(g, d, c);\n add(h, b, a);\n\n mul(p[0], e, f);\n mul(p[1], h, g);\n mul(p[2], g, f);\n mul(p[3], e, h);\n}\n\nfunction cswap(p: GF[], q: GF[], b: number) {\n for (let i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r: Uint8Array, p: GF[]) {\n const tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n mul(tx, p[0], zi);\n mul(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\nfunction scalarmult(p: GF[], q: GF[], s: Uint8Array) {\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (let i = 255; i >= 0; --i) {\n const b = (s[(i / 8) | 0] >> (i & 7)) & 1;\n cswap(p, q, b);\n edadd(q, p);\n edadd(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p: GF[], s: Uint8Array) {\n const q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n mul(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nexport interface KeyPair {\n publicKey: Uint8Array;\n secretKey: Uint8Array;\n}\n\n// Generates key pair from secret 32-byte seed.\nexport function generateKeyPairFromSeed(seed: Uint8Array): KeyPair {\n if (seed.length !== SEED_LENGTH) {\n throw new Error(`ed25519: seed must be ${SEED_LENGTH} bytes`);\n }\n\n const d = hash(seed);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n const publicKey = new Uint8Array(32);\n const p = [gf(), gf(), gf(), gf()];\n scalarbase(p, d);\n pack(publicKey, p);\n\n const secretKey = new Uint8Array(64);\n secretKey.set(seed);\n secretKey.set(publicKey, 32);\n\n return {\n publicKey,\n secretKey\n };\n}\n\nexport function generateKeyPair(prng?: RandomSource): KeyPair {\n const seed = randomBytes(32, prng);\n const result = generateKeyPairFromSeed(seed);\n wipe(seed);\n return result;\n}\n\nexport function extractPublicKeyFromSecretKey(secretKey: Uint8Array): Uint8Array {\n if (secretKey.length !== SECRET_KEY_LENGTH) {\n throw new Error(`ed25519: secret key must be ${SECRET_KEY_LENGTH} bytes`);\n }\n return new Uint8Array(secretKey.subarray(32));\n}\n\nconst L = new Float64Array([\n 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2,\n 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10\n]);\n\nfunction modL(r: Uint8Array, x: Float64Array) {\n let carry: number;\n let i: number;\n let j: number;\n let k: number;\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++) {\n x[j] -= carry * L[j];\n }\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: Uint8Array) {\n const x = new Float64Array(64);\n for (let i = 0; i < 64; i++) {\n x[i] = r[i];\n }\n for (let i = 0; i < 64; i++) {\n r[i] = 0;\n }\n modL(r, x);\n}\n\n// Returns 64-byte signature of the message under the 64-byte secret key.\nexport function sign(secretKey: Uint8Array, message: Uint8Array): Uint8Array {\n const x = new Float64Array(64);\n const p = [gf(), gf(), gf(), gf()];\n\n const d = hash(secretKey.subarray(0, 32));\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n const signature = new Uint8Array(64);\n signature.set(d.subarray(32), 32);\n\n const hs = new SHA512();\n hs.update(signature.subarray(32));\n hs.update(message);\n const r = hs.digest();\n hs.clean();\n reduce(r);\n scalarbase(p, r);\n pack(signature, p);\n\n hs.reset();\n hs.update(signature.subarray(0, 32));\n hs.update(secretKey.subarray(32));\n hs.update(message);\n const h = hs.digest();\n reduce(h);\n\n for (let i = 0; i < 32; i++) {\n x[i] = r[i];\n }\n for (let i = 0; i < 32; i++) {\n for (let j = 0; j < 32; j++) {\n x[i + j] += h[i] * d[j];\n }\n }\n modL(signature.subarray(32), x);\n\n return signature;\n}\n\nfunction unpackneg(r: GF[], p: Uint8Array) {\n const 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 square(num, r[1]);\n mul(den, num, D);\n sub(num, num, r[2]);\n add(den, r[2], den);\n\n square(den2, den);\n square(den4, den2);\n mul(den6, den4, den2);\n mul(t, den6, num);\n mul(t, t, den);\n\n pow2523(t, t);\n mul(t, t, num);\n mul(t, t, den);\n mul(t, t, den);\n mul(r[0], t, den);\n\n square(chk, r[0]);\n mul(chk, chk, den);\n if (neq25519(chk, num)) {\n mul(r[0], r[0], I);\n }\n\n square(chk, r[0]);\n mul(chk, chk, den);\n if (neq25519(chk, num)) {\n return -1;\n }\n\n if (par25519(r[0]) === (p[31] >> 7)) {\n sub(r[0], gf0, r[0]);\n }\n\n mul(r[3], r[0], r[1]);\n return 0;\n}\n\nexport function verify(publicKey: Uint8Array, message: Uint8Array, signature: Uint8Array): boolean {\n const t = new Uint8Array(32);\n const p = [gf(), gf(), gf(), gf()];\n const q = [gf(), gf(), gf(), gf()];\n\n if (signature.length !== SIGNATURE_LENGTH) {\n throw new Error(`ed25519: signature must be ${SIGNATURE_LENGTH} bytes`);\n }\n\n if (unpackneg(q, publicKey)) {\n return false;\n }\n\n const hs = new SHA512();\n hs.update(signature.subarray(0, 32));\n hs.update(publicKey);\n hs.update(message);\n const h = hs.digest();\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, signature.subarray(32));\n edadd(p, q);\n pack(t, p);\n\n if (verify32(signature, t)) {\n return false;\n }\n return true;\n}\n\n/**\n * Convert Ed25519 public key to X25519 public key.\n *\n * Throws if given an invalid public key.\n */\nexport function convertPublicKeyToX25519(publicKey: Uint8Array): Uint8Array {\n let q = [gf(), gf(), gf(), gf()];\n\n if (unpackneg(q, publicKey)) {\n throw new Error(\"Ed25519: invalid public key\");\n }\n\n // Formula: montgomeryX = (edwardsY + 1)*inverse(1 - edwardsY) mod p\n let a = gf();\n let b = gf();\n let y = q[1];\n add(a, gf1, y);\n sub(b, gf1, y);\n inv25519(b, b);\n mul(a, a, b);\n\n let z = new Uint8Array(32);\n pack25519(z, a);\n return z;\n}\n\n/**\n * Convert Ed25519 secret (private) key to X25519 secret key.\n */\nexport function convertSecretKeyToX25519(secretKey: Uint8Array): Uint8Array {\n const d = hash(secretKey.subarray(0, 32));\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n const o = new Uint8Array(d.subarray(0, 32));\n wipe(d);\n return o;\n}\n","// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n\n/**\n * Package hash provides interface for hash functions.\n */\n\n/**\n * Hash interface describes properties of\n * cryptographic hash functions.\n */\nexport interface Hash {\n readonly digestLength: number;\n readonly blockSize: number;\n update(data: Uint8Array): this;\n reset(): this;\n finish(out: Uint8Array): this;\n digest(): Uint8Array;\n clean(): void;\n}\n\nexport interface SerializableHash extends Hash {\n saveState(): any;\n restoreState(savedState: any): this;\n cleanSavedState(savedState: any): void;\n}\n\nexport function isSerializableHash(h: Hash): h is SerializableHash {\n return (\n typeof (h as SerializableHash).saveState !== \"undefined\" &&\n typeof (h as SerializableHash).restoreState !== \"undefined\" &&\n typeof (h as SerializableHash).cleanSavedState !== \"undefined\"\n );\n}\n\n// TODO(dchest): figure out the standardized interface for XOF such as\n// SHAKE and BLAKE2X.\n","// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n\n/**\n * Package hkdf implements HKDF key derivation function.\n */\n\nimport { Hash } from \"@stablelib/hash\";\nimport { HMAC, hmac } from \"@stablelib/hmac\";\nimport { wipe } from \"@stablelib/wipe\";\n\n/**\n * HMAC-based Extract-and-Expand Key Derivation Function.\n *\n * Implements HKDF from RFC5869.\n *\n * Expands the given master key with salt and info into\n * a limited stream of key material.\n */\nexport class HKDF {\n private _hmac: HMAC;\n private _buffer: Uint8Array;\n private _bufpos: number;\n private _counter = new Uint8Array(1); // starts with zero\n private _hash: new () => Hash;\n private _info?: Uint8Array;\n\n /**\n * Create a new HKDF instance for the given hash function\n * with the master key, optional salt, and info.\n *\n * - Master key is a high-entropy secret key (not a password).\n * - Salt is a non-secret random value.\n * - Info is application- and/or context-specific information.\n */\n constructor(hash: new () => Hash,\n key: Uint8Array,\n salt = new Uint8Array(0),\n info?: Uint8Array) {\n\n this._hash = hash;\n this._info = info;\n\n // HKDF-Extract uses salt as HMAC key, and key as data.\n const okm = hmac(this._hash, salt, key);\n\n // Initialize HMAC for expanding with extracted key.\n this._hmac = new HMAC(hash, okm);\n\n // Allocate buffer.\n this._buffer = new Uint8Array(this._hmac.digestLength);\n this._bufpos = this._buffer.length;\n }\n\n // Fill buffer with new block of HKDF-Extract output.\n private _fillBuffer(): void {\n // Increment counter.\n this._counter[0]++;\n\n const ctr = this._counter[0];\n\n // Check if counter overflowed.\n if (ctr === 0) {\n throw new Error(\"hkdf: cannot expand more\");\n }\n\n // Prepare HMAC instance for new data with old key.\n this._hmac.reset();\n\n // Hash in previous output if it was generated\n // (i.e. counter is greater than 1).\n if (ctr > 1) {\n this._hmac.update(this._buffer);\n }\n\n // Hash in info if it exists.\n if (this._info) {\n this._hmac.update(this._info);\n }\n\n // Hash in the counter.\n this._hmac.update(this._counter);\n\n // Output result to buffer and clean HMAC instance.\n this._hmac.finish(this._buffer);\n\n // Reset buffer position.\n this._bufpos = 0;\n }\n\n /**\n * Expand returns next key material of the given length.\n *\n * It throws if expansion limit is reached (which is\n * 254 digests of the underlying HMAC function).\n */\n expand(length: number): Uint8Array {\n const out = new Uint8Array(length);\n for (let i = 0; i < out.length; i++) {\n if (this._bufpos === this._buffer.length) {\n this._fillBuffer();\n }\n out[i] = this._buffer[this._bufpos++];\n }\n return out;\n }\n\n clean(): void {\n this._hmac.clean();\n wipe(this._buffer);\n wipe(this._counter);\n this._bufpos = 0;\n }\n}\n\n// TODO(dchest): maybe implement deriveKey?\n","// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n\n/**\n * Package hmac implements HMAC algorithm.\n */\n\nimport { Hash, SerializableHash, isSerializableHash } from \"@stablelib/hash\";\nimport { equal as constantTimeEqual } from \"@stablelib/constant-time\";\nimport { wipe } from \"@stablelib/wipe\";\n\n/**\n * HMAC implements hash-based message authentication algorithm.\n */\nexport class HMAC implements SerializableHash {\n readonly blockSize: number;\n readonly digestLength: number;\n\n private _inner: Hash; // inner hash\n private _outer: Hash; // outer hash\n\n private _finished = false; // true if HMAC was finalized\n\n // Copies of hash states after keying.\n // Need for quick reset without hashing the key again.\n private _innerKeyedState: any | undefined;\n private _outerKeyedState: any | undefined;\n\n /**\n * Constructs a new HMAC with the given Hash and secret key.\n */\n constructor(hash: new () => Hash | SerializableHash, key: Uint8Array) {\n // Initialize inner and outer hashes.\n this._inner = new hash();\n this._outer = new hash();\n\n // Set block and digest sizes for this HMAC\n // instance to values from the hash.\n this.blockSize = this._outer.blockSize;\n this.digestLength = this._outer.digestLength;\n\n // Pad temporary stores a key (or its hash) padded with zeroes.\n const pad = new Uint8Array(this.blockSize);\n\n if (key.length > this.blockSize) {\n // If key is bigger than hash block size, it must be\n // hashed and this hash is used as a key instead.\n this._inner.update(key).finish(pad).clean();\n } else {\n // Otherwise, copy the key into pad.\n pad.set(key);\n }\n\n // Now two different keys are derived from padded key\n // by xoring a different byte value to each.\n\n // To make inner hash key, xor byte 0x36 into pad.\n for (let i = 0; i < pad.length; i++) {\n pad[i] ^= 0x36;\n }\n // Update inner hash with the result.\n this._inner.update(pad);\n\n // To make outer hash key, xor byte 0x5c into pad.\n // But since we already xored 0x36 there, we must\n // first undo this by xoring it again.\n for (let i = 0; i < pad.length; i++) {\n pad[i] ^= 0x36 ^ 0x5c;\n }\n // Update outer hash with the result.\n this._outer.update(pad);\n\n // Save states of both hashes, so that we can quickly restore\n // them later in reset() without the need to remember the actual\n // key and perform this initialization again.\n if (isSerializableHash(this._inner) && isSerializableHash(this._outer)) {\n this._innerKeyedState = this._inner.saveState();\n this._outerKeyedState = this._outer.saveState();\n }\n\n // Clean pad.\n wipe(pad);\n }\n\n /**\n * Returns HMAC state to the state initialized with key\n * to make it possible to run HMAC over the other data with the same\n * key without creating a new instance.\n */\n reset(): this {\n if (!isSerializableHash(this._inner) || !isSerializableHash(this._outer)) {\n throw new Error(\"hmac: can't reset() because hash doesn't implement restoreState()\");\n }\n // Restore keyed states of inner and outer hashes.\n this._inner.restoreState(this._innerKeyedState);\n this._outer.restoreState(this._outerKeyedState);\n this._finished = false;\n return this;\n }\n\n /**\n * Cleans HMAC state.\n */\n clean() {\n if (isSerializableHash(this._inner)) {\n this._inner.cleanSavedState(this._innerKeyedState);\n }\n if (isSerializableHash(this._outer)) {\n this._outer.cleanSavedState(this._outerKeyedState);\n }\n this._inner.clean();\n this._outer.clean();\n }\n\n /**\n * Updates state with provided data.\n */\n update(data: Uint8Array): this {\n this._inner.update(data);\n return this;\n }\n\n /**\n * Finalizes HMAC and puts the result in out.\n */\n finish(out: Uint8Array): this {\n if (this._finished) {\n // If HMAC was finalized, outer hash is also finalized,\n // so it produces the same digest it produced when it\n // was finalized.\n this._outer.finish(out);\n return this;\n }\n\n // Finalize inner hash and store the result temporarily.\n this._inner.finish(out);\n\n // Update outer hash with digest of inner hash and and finalize it.\n this._outer.update(out.subarray(0, this.digestLength)).finish(out);\n this._finished = true;\n\n return this;\n }\n\n /**\n * Returns the computed message authentication code.\n */\n digest(): Uint8Array {\n const out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n }\n\n /**\n * Saves HMAC state.\n * This function is needed for PBKDF2 optimization.\n */\n saveState(): any {\n if (!isSerializableHash(this._inner)) {\n throw new Error(\"hmac: can't saveState() because hash doesn't implement it\");\n }\n return this._inner.saveState();\n }\n\n restoreState(savedState: any): this {\n if (!isSerializableHash(this._inner) || !isSerializableHash(this._outer)) {\n throw new Error(\"hmac: can't restoreState() because hash doesn't implement it\");\n }\n this._inner.restoreState(savedState);\n this._outer.restoreState(this._outerKeyedState);\n this._finished = false;\n return this;\n }\n\n cleanSavedState(savedState: any) {\n if (!isSerializableHash(this._inner)) {\n throw new Error(\"hmac: can't cleanSavedState() because hash doesn't implement it\");\n }\n this._inner.cleanSavedState(savedState);\n }\n}\n\n/**\n * Returns HMAC using the given hash constructor for the key over data.\n */\nexport function hmac(hash: new () => Hash, key: Uint8Array, data: Uint8Array): Uint8Array {\n const h = new HMAC(hash, key);\n h.update(data);\n const digest = h.digest();\n h.clean();\n return digest;\n}\n\n/**\n * Returns true if two HMAC digests are equal.\n * Uses constant-time comparison to avoid leaking timing information.\n *\n * Example:\n *\n * const receivedDigest = ...\n * const realDigest = hmac(SHA256, key, data);\n * if (!equal(receivedDigest, realDigest)) {\n * throw new Error(\"Authentication error\");\n * }\n */\nexport const equal = constantTimeEqual;\n","// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n\n/**\n * Package int provides helper functions for integerss.\n */\n\n// Shim using 16-bit pieces.\nfunction imulShim(a: number, b: number): number {\n const ah = (a >>> 16) & 0xffff, al = a & 0xffff;\n const bh = (b >>> 16) & 0xffff, bl = b & 0xffff;\n return ((al * bl) + (((ah * bl + al * bh) << 16) >>> 0) | 0);\n}\n\n/** 32-bit integer multiplication. */\n// Use system Math.imul if available, otherwise use our shim.\nexport const mul = (Math as { imul?(a: number, b: number): number }).imul || imulShim;\n\n/** 32-bit integer addition. */\nexport function add(a: number, b: number): number {\n return (a + b) | 0;\n}\n\n/** 32-bit integer subtraction. */\nexport function sub(a: number, b: number): number {\n return (a - b) | 0;\n}\n\n/** 32-bit integer left rotation */\nexport function rotl(x: number, n: number): number {\n return x << n | x >>> (32 - n);\n}\n\n/** 32-bit integer left rotation */\nexport function rotr(x: number, n: number): number {\n return x << (32 - n) | x >>> n;\n}\n\nfunction isIntegerShim(n: number): boolean {\n return typeof n === \"number\" && isFinite(n) && Math.floor(n) === n;\n}\n\n/**\n * Returns true if the argument is an integer number.\n *\n * In ES2015, Number.isInteger.\n */\nexport const isInteger = (Number as { isInteger?(n: number): boolean }).isInteger || isIntegerShim;\n\n/**\n * Math.pow(2, 53) - 1\n *\n * In ES2015 Number.MAX_SAFE_INTEGER.\n */\nexport const MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Returns true if the argument is a safe integer number\n * (-MIN_SAFE_INTEGER < number <= MAX_SAFE_INTEGER)\n *\n * In ES2015, Number.isSafeInteger.\n */\nexport const isSafeInteger = (n: number): boolean =>\n isInteger(n) && (n >= -MAX_SAFE_INTEGER && n <= MAX_SAFE_INTEGER);\n","// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n\n/**\n * Package poly1305 implements Poly1305 one-time message authentication algorithm.\n */\n\nimport { equal as constantTimeEqual } from \"@stablelib/constant-time\";\nimport { wipe } from \"@stablelib/wipe\";\n\nexport const DIGEST_LENGTH = 16;\n\n// Port of Andrew Moon's Poly1305-donna-16. Public domain.\n// https://github.com/floodyberry/poly1305-donna\n\n/**\n * Poly1305 computes 16-byte authenticator of message using\n * a one-time 32-byte key.\n *\n * Important: key should be used for only one message,\n * it should never repeat.\n */\nexport class Poly1305 {\n readonly digestLength = DIGEST_LENGTH;\n\n private _buffer = new Uint8Array(16);\n private _r = new Uint16Array(10);\n private _h = new Uint16Array(10);\n private _pad = new Uint16Array(8);\n private _leftover = 0;\n private _fin = 0;\n private _finished = false;\n\n constructor(key: Uint8Array) {\n let t0 = key[0] | key[1] << 8; this._r[0] = (t0) & 0x1fff;\n let t1 = key[2] | key[3] << 8; this._r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n let t2 = key[4] | key[5] << 8; this._r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;\n let t3 = key[6] | key[7] << 8; this._r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n let t4 = key[8] | key[9] << 8; this._r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;\n this._r[5] = ((t4 >>> 1)) & 0x1ffe;\n let t5 = key[10] | key[11] << 8; this._r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n let t6 = key[12] | key[13] << 8; this._r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;\n let t7 = key[14] | key[15] << 8; this._r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n this._r[9] = ((t7 >>> 5)) & 0x007f;\n\n this._pad[0] = key[16] | key[17] << 8;\n this._pad[1] = key[18] | key[19] << 8;\n this._pad[2] = key[20] | key[21] << 8;\n this._pad[3] = key[22] | key[23] << 8;\n this._pad[4] = key[24] | key[25] << 8;\n this._pad[5] = key[26] | key[27] << 8;\n this._pad[6] = key[28] | key[29] << 8;\n this._pad[7] = key[30] | key[31] << 8;\n }\n\n private _blocks(m: Uint8Array, mpos: number, bytes: number) {\n let hibit = this._fin ? 0 : 1 << 11;\n\n let 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 let 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 let t0 = m[mpos + 0] | m[mpos + 1] << 8; h0 += (t0) & 0x1fff;\n let t1 = m[mpos + 2] | m[mpos + 3] << 8; h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n let t2 = m[mpos + 4] | m[mpos + 5] << 8; h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;\n let t3 = m[mpos + 6] | m[mpos + 7] << 8; h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n let t4 = m[mpos + 8] | m[mpos + 9] << 8; h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;\n h5 += ((t4 >>> 1)) & 0x1fff;\n let t5 = m[mpos + 10] | m[mpos + 11] << 8; h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n let t6 = m[mpos + 12] | m[mpos + 13] << 8; h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;\n let t7 = m[mpos + 14] | m[mpos + 15] << 8; h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n h9 += ((t7 >>> 5)) | hibit;\n\n let c = 0;\n\n let 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 let 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 let 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 let 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 let 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 let 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 let 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 let 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 let 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 let 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\n finish(mac: Uint8Array, macpos = 0): this {\n const g = new Uint16Array(10);\n let c: number;\n let mask: number;\n let f: number;\n let i: number;\n\n if (this._leftover) {\n i = this._leftover;\n this._buffer[i++] = 1;\n for (; i < 16; i++) {\n this._buffer[i] = 0;\n }\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++) {\n g[i] &= mask;\n }\n mask = ~mask;\n for (i = 0; i < 10; i++) {\n this._h[i] = (this._h[i] & mask) | g[i];\n }\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;\n mac[macpos + 1] = this._h[0] >>> 8;\n mac[macpos + 2] = this._h[1] >>> 0;\n mac[macpos + 3] = this._h[1] >>> 8;\n mac[macpos + 4] = this._h[2] >>> 0;\n mac[macpos + 5] = this._h[2] >>> 8;\n mac[macpos + 6] = this._h[3] >>> 0;\n mac[macpos + 7] = this._h[3] >>> 8;\n mac[macpos + 8] = this._h[4] >>> 0;\n mac[macpos + 9] = this._h[4] >>> 8;\n mac[macpos + 10] = this._h[5] >>> 0;\n mac[macpos + 11] = this._h[5] >>> 8;\n mac[macpos + 12] = this._h[6] >>> 0;\n mac[macpos + 13] = this._h[6] >>> 8;\n mac[macpos + 14] = this._h[7] >>> 0;\n mac[macpos + 15] = this._h[7] >>> 8;\n\n this._finished = true;\n return this;\n }\n\n update(m: Uint8Array): this {\n let mpos = 0;\n let bytes = m.length;\n let want: number;\n\n if (this._leftover) {\n want = (16 - this._leftover);\n if (want > bytes) {\n want = bytes;\n }\n for (let i = 0; i < want; i++) {\n this._buffer[this._leftover + i] = m[mpos + i];\n }\n bytes -= want;\n mpos += want;\n this._leftover += want;\n if (this._leftover < 16) {\n return this;\n }\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 (let i = 0; i < bytes; i++) {\n this._buffer[this._leftover + i] = m[mpos + i];\n }\n this._leftover += bytes;\n }\n\n return this;\n }\n\n digest(): Uint8Array {\n // TODO(dchest): it behaves differently than other hashes/HMAC,\n // because it throws when finished — others just return saved result.\n if (this._finished) {\n throw new Error(\"Poly1305 was finished\");\n }\n let mac = new Uint8Array(16);\n this.finish(mac);\n return mac;\n }\n\n clean(): this {\n wipe(this._buffer);\n wipe(this._r);\n wipe(this._h);\n wipe(this._pad);\n this._leftover = 0;\n this._fin = 0;\n this._finished = true; // mark as finished even if not\n return this;\n }\n}\n\n/**\n * Returns 16-byte authenticator of data using a one-time 32-byte key.\n *\n * Important: key should be used for only one message, it should never repeat.\n */\nexport function oneTimeAuth(key: Uint8Array, data: Uint8Array): Uint8Array {\n const h = new Poly1305(key);\n h.update(data);\n const digest = h.digest();\n h.clean();\n return digest;\n}\n\n/**\n * Returns true if two authenticators are 16-byte long and equal.\n * Uses contant-time comparison to avoid leaking timing information.\n */\nexport function equal(a: Uint8Array, b: Uint8Array): boolean {\n if (a.length !== DIGEST_LENGTH || b.length !== DIGEST_LENGTH) {\n return false;\n }\n return constantTimeEqual(a, b);\n}\n","// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n\n/**\n * Package random provides functions to access system's\n * cryptographically secure random byte generator.\n */\n\nimport { RandomSource } from \"./source\";\nimport { SystemRandomSource } from \"./source/system\";\nimport { readUint32LE } from \"@stablelib/binary\";\nimport { wipe } from \"@stablelib/wipe\";\n\nexport { RandomSource } from \"./source\";\n\nexport const defaultRandomSource = new SystemRandomSource();\n\nexport function randomBytes(length: number, prng: RandomSource = defaultRandomSource): Uint8Array {\n return prng.randomBytes(length);\n}\n\n/**\n * Returns a uniformly random unsigned 32-bit integer.\n */\nexport function randomUint32(prng: RandomSource = defaultRandomSource): number {\n // Generate 4-byte random buffer.\n const buf = randomBytes(4, prng);\n\n // Convert bytes from buffer into a 32-bit integer.\n // It's not important which byte order to use, since\n // the result is random.\n const result = readUint32LE(buf);\n\n // Clean the buffer.\n wipe(buf);\n\n return result;\n}\n\n/** 62 alphanumeric characters for default charset of randomString() */\nconst ALPHANUMERIC = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\n\n/**\n * Returns a uniform random string of the given length\n * with characters from the given charset.\n *\n * Charset must not have more than 256 characters.\n *\n * Default charset generates case-sensitive alphanumeric\n * strings (0-9, A-Z, a-z).\n */\nexport function randomString(\n length: number,\n charset = ALPHANUMERIC,\n prng: RandomSource = defaultRandomSource\n): string {\n if (charset.length < 2) {\n throw new Error(\"randomString charset is too short\");\n }\n if (charset.length > 256) {\n throw new Error(\"randomString charset is too long\");\n }\n let out = '';\n const charsLen = charset.length;\n const maxByte = 256 - (256 % charsLen);\n while (length > 0) {\n const buf = randomBytes(Math.ceil(length * 256 / maxByte), prng);\n for (let i = 0; i < buf.length && length > 0; i++) {\n const randomByte = buf[i];\n if (randomByte < maxByte) {\n out += charset.charAt(randomByte % charsLen);\n length--;\n }\n }\n wipe(buf);\n }\n return out;\n}\n\n/**\n * Returns uniform random string containing at least the given\n * number of bits of entropy.\n *\n * For example, randomStringForEntropy(128) will return a 22-character\n * alphanumeric string, while randomStringForEntropy(128, \"0123456789\")\n * will return a 39-character numeric string, both will contain at\n * least 128 bits of entropy.\n *\n * Default charset generates case-sensitive alphanumeric\n * strings (0-9, A-Z, a-z).\n */\nexport function randomStringForEntropy(\n bits: number,\n charset = ALPHANUMERIC,\n prng: RandomSource = defaultRandomSource\n): string {\n const length = Math.ceil(bits / (Math.log(charset.length) / Math.LN2));\n return randomString(length, charset, prng);\n}\n","// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n\nimport { RandomSource } from \"./\";\n\nconst QUOTA = 65536;\n\nexport class BrowserRandomSource implements RandomSource {\n isAvailable = false;\n isInstantiated = false;\n\n private _crypto?: { getRandomValues: typeof window.crypto.getRandomValues };\n\n constructor() {\n const browserCrypto = typeof self !== 'undefined'\n ? (self.crypto || (self as { msCrypto?: any }).msCrypto) // IE11 has msCrypto\n : null;\n\n if (browserCrypto && browserCrypto.getRandomValues !== undefined) {\n this._crypto = browserCrypto;\n this.isAvailable = true;\n this.isInstantiated = true;\n }\n }\n\n randomBytes(length: number): Uint8Array {\n if (!this.isAvailable || !this._crypto) {\n throw new Error(\"Browser random byte generator is not available.\");\n }\n const out = new Uint8Array(length);\n for (let i = 0; i < out.length; i += QUOTA) {\n this._crypto.getRandomValues(out.subarray(i, i + Math.min(out.length - i, QUOTA)));\n }\n return out;\n }\n}\n","// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n\nimport { RandomSource } from \"./\";\nimport { wipe } from \"@stablelib/wipe\";\n\ndeclare function require(name: string): any;\n\nexport class NodeRandomSource implements RandomSource {\n isAvailable = false;\n isInstantiated = false;\n\n private _crypto: { randomBytes(n: number): Uint8Array } | undefined;\n\n constructor() {\n if (typeof require !== \"undefined\") {\n const nodeCrypto = require(\"crypto\");\n if (nodeCrypto && nodeCrypto.randomBytes) {\n this._crypto = nodeCrypto;\n this.isAvailable = true;\n this.isInstantiated = true;\n }\n }\n }\n\n randomBytes(length: number): Uint8Array {\n if (!this.isAvailable || !this._crypto) {\n throw new Error(\"Node.js random byte generator is not available.\");\n }\n\n // Get random bytes (result is Buffer).\n let buffer = this._crypto.randomBytes(length);\n\n // Make sure we got the length that we requested.\n if (buffer.length !== length) {\n throw new Error(\"NodeRandomSource: got fewer bytes than requested\");\n }\n\n // Allocate output array.\n const out = new Uint8Array(length);\n\n // Copy bytes from buffer to output.\n for (let i = 0; i < out.length; i++) {\n out[i] = buffer[i];\n }\n\n // Cleanup.\n wipe(buffer);\n\n return out;\n }\n}\n","// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n\nimport { RandomSource } from \"./\";\nimport { BrowserRandomSource } from \"./browser\";\nimport { NodeRandomSource } from \"./node\";\n\nexport class SystemRandomSource implements RandomSource {\n isAvailable = false;\n name = \"\";\n private _source: RandomSource;\n\n constructor() {\n // Try browser.\n this._source = new BrowserRandomSource();\n if (this._source.isAvailable) {\n this.isAvailable = true;\n this.name = \"Browser\";\n return;\n }\n\n // If no browser source, try Node.\n this._source = new NodeRandomSource();\n if (this._source.isAvailable) {\n this.isAvailable = true;\n this.name = \"Node\";\n return;\n }\n\n // No sources, we're out of options.\n }\n\n randomBytes(length: number): Uint8Array {\n if (!this.isAvailable) {\n throw new Error(\"System random byte generator is not available.\");\n }\n return this._source.randomBytes(length);\n }\n}\n","// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n\n/**\n * Package sha256 implements SHA-2-256 cryptographic hash function.\n */\n\nimport { SerializableHash } from \"@stablelib/hash\";\nimport { readUint32BE, writeUint32BE } from \"@stablelib/binary\";\nimport { wipe } from \"@stablelib/wipe\";\n\nexport const DIGEST_LENGTH = 32;\nexport const BLOCK_SIZE = 64;\n\n/**\n * SHA2-256 cryptographic hash algorithm.\n */\nexport class SHA256 implements SerializableHash {\n /** Length of hash output */\n readonly digestLength: number = DIGEST_LENGTH;\n\n /** Block size */\n readonly blockSize: number = BLOCK_SIZE;\n\n // Note: Int32Array is used instead of Uint32Array for performance reasons.\n protected _state = new Int32Array(8); // hash state\n private _temp = new Int32Array(64); // temporary state\n private _buffer = new Uint8Array(128); // buffer for data to hash\n private _bufferLength = 0; // number of bytes in buffer\n private _bytesHashed = 0; // number of total bytes hashed\n private _finished = false; // indicates whether the hash was finalized\n\n constructor() {\n this.reset();\n }\n\n protected _initState() {\n this._state[0] = 0x6a09e667;\n this._state[1] = 0xbb67ae85;\n this._state[2] = 0x3c6ef372;\n this._state[3] = 0xa54ff53a;\n this._state[4] = 0x510e527f;\n this._state[5] = 0x9b05688c;\n this._state[6] = 0x1f83d9ab;\n this._state[7] = 0x5be0cd19;\n }\n\n /**\n * Resets hash state making it possible\n * to re-use this instance to hash other data.\n */\n reset(): this {\n this._initState();\n this._bufferLength = 0;\n this._bytesHashed = 0;\n this._finished = false;\n return this;\n }\n\n /**\n * Cleans internal buffers and resets hash state.\n */\n clean() {\n wipe(this._buffer);\n wipe(this._temp);\n this.reset();\n }\n\n /**\n * Updates hash state with the given data.\n *\n * Throws error when trying to update already finalized hash:\n * instance must be reset to update it again.\n */\n update(data: Uint8Array, dataLength: number = data.length): this {\n if (this._finished) {\n throw new Error(\"SHA256: can't update because hash was finished.\");\n }\n let dataPos = 0;\n this._bytesHashed += dataLength;\n if (this._bufferLength > 0) {\n while (this._bufferLength < this.blockSize && dataLength > 0) {\n this._buffer[this._bufferLength++] = data[dataPos++];\n dataLength--;\n }\n if (this._bufferLength === this.blockSize) {\n hashBlocks(this._temp, this._state, this._buffer, 0, this.blockSize);\n this._bufferLength = 0;\n }\n }\n if (dataLength >= this.blockSize) {\n dataPos = hashBlocks(this._temp, this._state, data, dataPos, dataLength);\n dataLength %= this.blockSize;\n }\n while (dataLength > 0) {\n this._buffer[this._bufferLength++] = data[dataPos++];\n dataLength--;\n }\n return this;\n }\n\n /**\n * Finalizes hash state and puts hash into out.\n * If hash was already finalized, puts the same value.\n */\n finish(out: Uint8Array): this {\n if (!this._finished) {\n const bytesHashed = this._bytesHashed;\n const left = this._bufferLength;\n const bitLenHi = (bytesHashed / 0x20000000) | 0;\n const bitLenLo = bytesHashed << 3;\n const padLength = (bytesHashed % 64 < 56) ? 64 : 128;\n\n this._buffer[left] = 0x80;\n for (let i = left + 1; i < padLength - 8; i++) {\n this._buffer[i] = 0;\n }\n writeUint32BE(bitLenHi, this._buffer, padLength - 8);\n writeUint32BE(bitLenLo, this._buffer, padLength - 4);\n\n hashBlocks(this._temp, this._state, this._buffer, 0, padLength);\n\n this._finished = true;\n }\n\n for (let i = 0; i < this.digestLength / 4; i++) {\n writeUint32BE(this._state[i], out, i * 4);\n }\n\n return this;\n }\n\n /**\n * Returns the final hash digest.\n */\n digest(): Uint8Array {\n const out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n }\n\n /**\n * Function useful for HMAC/PBKDF2 optimization.\n * Returns hash state to be used with restoreState().\n * Only chain value is saved, not buffers or other\n * state variables.\n */\n saveState(): SavedState {\n if (this._finished) {\n throw new Error(\"SHA256: cannot save finished state\");\n }\n return {\n state: new Int32Array(this._state),\n buffer: this._bufferLength > 0 ? new Uint8Array(this._buffer) : undefined,\n bufferLength: this._bufferLength,\n bytesHashed: this._bytesHashed\n };\n }\n\n /**\n * Function useful for HMAC/PBKDF2 optimization.\n * Restores state saved by saveState() and sets bytesHashed\n * to the given value.\n */\n restoreState(savedState: SavedState): this {\n this._state.set(savedState.state);\n this._bufferLength = savedState.bufferLength;\n if (savedState.buffer) {\n this._buffer.set(savedState.buffer);\n }\n this._bytesHashed = savedState.bytesHashed;\n this._finished = false;\n return this;\n }\n\n /**\n * Cleans state returned by saveState().\n */\n cleanSavedState(savedState: SavedState) {\n wipe(savedState.state);\n if (savedState.buffer) {\n wipe(savedState.buffer);\n }\n savedState.bufferLength = 0;\n savedState.bytesHashed = 0;\n }\n}\n\nexport type SavedState = {\n state: Int32Array;\n buffer: Uint8Array | undefined;\n bufferLength: number;\n bytesHashed: number;\n};\n\n// Constants\nconst K = new Int32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b,\n 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01,\n 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7,\n 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152,\n 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,\n 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc,\n 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819,\n 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08,\n 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f,\n 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n\nfunction hashBlocks(w: Int32Array, v: Int32Array, p: Uint8Array, pos: number, len: number): number {\n while (len >= 64) {\n let a = v[0];\n let b = v[1];\n let c = v[2];\n let d = v[3];\n let e = v[4];\n let f = v[5];\n let g = v[6];\n let h = v[7];\n\n for (let i = 0; i < 16; i++) {\n let j = pos + i * 4;\n w[i] = readUint32BE(p, j);\n }\n\n for (let i = 16; i < 64; i++) {\n let u = w[i - 2];\n let t1 = (u >>> 17 | u << (32 - 17)) ^ (u >>> 19 | u << (32 - 19)) ^ (u >>> 10);\n\n u = w[i - 15];\n let t2 = (u >>> 7 | u << (32 - 7)) ^ (u >>> 18 | u << (32 - 18)) ^ (u >>> 3);\n\n w[i] = (t1 + w[i - 7] | 0) + (t2 + w[i - 16] | 0);\n }\n\n for (let i = 0; i < 64; i++) {\n let t1 = (((((e >>> 6 | e << (32 - 6)) ^ (e >>> 11 | e << (32 - 11)) ^\n (e >>> 25 | e << (32 - 25))) + ((e & f) ^ (~e & g))) | 0) +\n ((h + ((K[i] + w[i]) | 0)) | 0)) | 0;\n\n let t2 = (((a >>> 2 | a << (32 - 2)) ^ (a >>> 13 | a << (32 - 13)) ^\n (a >>> 22 | a << (32 - 22))) + ((a & b) ^ (a & c) ^ (b & c))) | 0;\n\n h = g;\n g = f;\n f = e;\n e = (d + t1) | 0;\n d = c;\n c = b;\n b = a;\n a = (t1 + t2) | 0;\n }\n\n v[0] += a;\n v[1] += b;\n v[2] += c;\n v[3] += d;\n v[4] += e;\n v[5] += f;\n v[6] += g;\n v[7] += h;\n\n pos += 64;\n len -= 64;\n }\n return pos;\n}\n\nexport function hash(data: Uint8Array): Uint8Array {\n const h = new SHA256();\n h.update(data);\n const digest = h.digest();\n h.clean();\n return digest;\n}\n","// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n\n/**\n * Package sha512 implements SHA-2-512 cryptographic hash function.\n */\n\nimport { SerializableHash } from \"@stablelib/hash\";\nimport { readUint32BE, writeUint32BE } from \"@stablelib/binary\";\nimport { wipe } from \"@stablelib/wipe\";\n\nexport const DIGEST_LENGTH = 64;\nexport const BLOCK_SIZE = 128;\n\n/**\n * SHA-2-512 cryptographic hash algorithm.\n */\nexport class SHA512 implements SerializableHash {\n /** Length of hash output */\n readonly digestLength: number = DIGEST_LENGTH;\n\n /** Block size */\n readonly blockSize: number = BLOCK_SIZE;\n\n // Note: Int32Array is used instead of Uint32Array for performance reasons.\n protected _stateHi = new Int32Array(8); // hash state, high bytes\n protected _stateLo = new Int32Array(8); // hash state, low bytes\n private _tempHi = new Int32Array(16); // temporary state, high bytes\n private _tempLo = new Int32Array(16); // temporary state, low bytes\n private _buffer = new Uint8Array(256); // buffer for data to hash\n private _bufferLength = 0; // number of bytes in buffer\n private _bytesHashed = 0; // number of total bytes hashed\n private _finished = false; // indicates whether the hash was finalized\n\n constructor() {\n this.reset();\n }\n\n protected _initState() {\n this._stateHi[0] = 0x6a09e667;\n this._stateHi[1] = 0xbb67ae85;\n this._stateHi[2] = 0x3c6ef372;\n this._stateHi[3] = 0xa54ff53a;\n this._stateHi[4] = 0x510e527f;\n this._stateHi[5] = 0x9b05688c;\n this._stateHi[6] = 0x1f83d9ab;\n this._stateHi[7] = 0x5be0cd19;\n\n this._stateLo[0] = 0xf3bcc908;\n this._stateLo[1] = 0x84caa73b;\n this._stateLo[2] = 0xfe94f82b;\n this._stateLo[3] = 0x5f1d36f1;\n this._stateLo[4] = 0xade682d1;\n this._stateLo[5] = 0x2b3e6c1f;\n this._stateLo[6] = 0xfb41bd6b;\n this._stateLo[7] = 0x137e2179;\n }\n\n /**\n * Resets hash state making it possible\n * to re-use this instance to hash other data.\n */\n reset(): this {\n this._initState();\n this._bufferLength = 0;\n this._bytesHashed = 0;\n this._finished = false;\n return this;\n }\n\n /**\n * Cleans internal buffers and resets hash state.\n */\n clean() {\n wipe(this._buffer);\n wipe(this._tempHi);\n wipe(this._tempLo);\n this.reset();\n }\n\n /**\n * Updates hash state with the given data.\n *\n * Throws error when trying to update already finalized hash:\n * instance must be reset to update it again.\n */\n update(data: Uint8Array, dataLength: number = data.length): this {\n if (this._finished) {\n throw new Error(\"SHA512: can't update because hash was finished.\");\n }\n let dataPos = 0;\n this._bytesHashed += dataLength;\n if (this._bufferLength > 0) {\n while (this._bufferLength < BLOCK_SIZE && dataLength > 0) {\n this._buffer[this._bufferLength++] = data[dataPos++];\n dataLength--;\n }\n if (this._bufferLength === this.blockSize) {\n hashBlocks(this._tempHi, this._tempLo, this._stateHi, this._stateLo,\n this._buffer, 0, this.blockSize);\n this._bufferLength = 0;\n }\n }\n if (dataLength >= this.blockSize) {\n dataPos = hashBlocks(this._tempHi, this._tempLo, this._stateHi, this._stateLo,\n data, dataPos, dataLength);\n dataLength %= this.blockSize;\n }\n while (dataLength > 0) {\n this._buffer[this._bufferLength++] = data[dataPos++];\n dataLength--;\n }\n return this;\n }\n\n /**\n * Finalizes hash state and puts hash into out.\n * If hash was already finalized, puts the same value.\n */\n finish(out: Uint8Array): this {\n if (!this._finished) {\n const bytesHashed = this._bytesHashed;\n const left = this._bufferLength;\n const bitLenHi = (bytesHashed / 0x20000000) | 0;\n const bitLenLo = bytesHashed << 3;\n const padLength = (bytesHashed % 128 < 112) ? 128 : 256;\n\n this._buffer[left] = 0x80;\n for (let i = left + 1; i < padLength - 8; i++) {\n this._buffer[i] = 0;\n }\n writeUint32BE(bitLenHi, this._buffer, padLength - 8);\n writeUint32BE(bitLenLo, this._buffer, padLength - 4);\n\n hashBlocks(this._tempHi, this._tempLo, this._stateHi, this._stateLo, this._buffer, 0, padLength);\n\n this._finished = true;\n }\n\n for (let i = 0; i < this.digestLength / 8; i++) {\n writeUint32BE(this._stateHi[i], out, i * 8);\n writeUint32BE(this._stateLo[i], out, i * 8 + 4);\n }\n\n return this;\n }\n\n /**\n * Returns the final hash digest.\n */\n digest(): Uint8Array {\n const out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n }\n\n /**\n * Function useful for HMAC/PBKDF2 optimization. Returns hash state to be\n * used with restoreState(). Only chain value is saved, not buffers or\n * other state variables.\n */\n saveState(): SavedState {\n if (this._finished) {\n throw new Error(\"SHA256: cannot save finished state\");\n }\n return {\n stateHi: new Int32Array(this._stateHi),\n stateLo: new Int32Array(this._stateLo),\n buffer: this._bufferLength > 0 ? new Uint8Array(this._buffer) : undefined,\n bufferLength: this._bufferLength,\n bytesHashed: this._bytesHashed\n };\n }\n\n /**\n * Function useful for HMAC/PBKDF2 optimization. Restores state saved by\n * saveState() and sets bytesHashed to the given value.\n */\n restoreState(savedState: SavedState): this {\n this._stateHi.set(savedState.stateHi);\n this._stateLo.set(savedState.stateLo);\n this._bufferLength = savedState.bufferLength;\n if (savedState.buffer) {\n this._buffer.set(savedState.buffer);\n }\n this._bytesHashed = savedState.bytesHashed;\n this._finished = false;\n return this;\n }\n\n /**\n * Cleans state returned by saveState().\n */\n cleanSavedState(savedState: SavedState) {\n wipe(savedState.stateHi);\n wipe(savedState.stateLo);\n if (savedState.buffer) {\n wipe(savedState.buffer);\n }\n savedState.bufferLength = 0;\n savedState.bytesHashed = 0;\n }\n}\n\nexport type SavedState = {\n stateHi: Int32Array;\n stateLo: Int32Array;\n buffer: Uint8Array | undefined;\n bufferLength: number;\n bytesHashed: number;\n};\n\n// Constants\nconst K = new Int32Array([\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\n\nfunction hashBlocks(wh: Int32Array, wl: Int32Array, hh: Int32Array, hl: Int32Array,\n m: Uint8Array, pos: number, len: number): number {\n\n let 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 let h: number, l: number;\n let th: number, tl: number;\n let a: number, b: number, c: number, d: number;\n\n while (len >= 128) {\n for (let i = 0; i < 16; i++) {\n const j = 8 * i + pos;\n wh[i] = readUint32BE(m, j);\n wl[i] = readUint32BE(m, j + 4);\n }\n for (let i = 0; i < 80; i++) {\n let bh0 = ah0;\n let bh1 = ah1;\n let bh2 = ah2;\n let bh3 = ah3;\n let bh4 = ah4;\n let bh5 = ah5;\n let bh6 = ah6;\n let bh7 = ah7;\n\n let bl0 = al0;\n let bl1 = al1;\n let bl2 = al2;\n let bl3 = al3;\n let bl4 = al4;\n let bl5 = al5;\n let bl6 = al6;\n let 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) |\n (al4 << (32 - 18))) ^ ((al4 >>> (41 - 32)) | (ah4 << (32 - (41 - 32))));\n l = ((al4 >>> 14) | (ah4 << (32 - 14))) ^ ((al4 >>> 18) |\n (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)) |\n (ah0 << (32 - (34 - 32)))) ^ ((al0 >>> (39 - 32)) | (ah0 << (32 - (39 - 32))));\n l = ((al0 >>> 28) | (ah0 << (32 - 28))) ^ ((ah0 >>> (34 - 32)) |\n (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 (let 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) |\n (tl << (32 - 8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32 - 1))) ^ ((tl >>> 8) |\n (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)) |\n (th << (32 - (61 - 32)))) ^ (th >>> 6);\n l = ((tl >>> 19) | (th << (32 - 19))) ^ ((th >>> (61 - 32)) |\n (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 len -= 128;\n }\n\n return pos;\n}\n\nexport function hash(data: Uint8Array): Uint8Array {\n const h = new SHA512();\n h.update(data);\n const digest = h.digest();\n h.clean();\n return digest;\n}\n","// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n\n/**\n * Package wipe implements functions for zeroing arrays.\n */\n\nexport type NumericArray = number[] | Uint8Array | Int8Array | Uint16Array\n | Int16Array | Uint32Array | Int32Array | Float32Array | Float64Array;\n\n/**\n * Sets all values in the given array to zero and returns it.\n *\n * The fact that it sets bytes to zero can be relied on.\n *\n * There is no guarantee that this function makes data disappear from memory,\n * as runtime implementation can, for example, have copying garbage collector\n * that will make copies of sensitive data before we wipe it. Or that an\n * operating system will write our data to swap or sleep image. Another thing\n * is that an optimizing compiler can remove calls to this function or make it\n * no-op. There's nothing we can do with it, so we just do our best and hope\n * that everything will be okay and good will triumph over evil.\n */\nexport function wipe(array: NumericArray): NumericArray {\n // Right now it's similar to array.fill(0). If it turns\n // out that runtimes optimize this call away, maybe\n // we can try something else.\n for (let i = 0; i < array.length; i++) {\n array[i] = 0;\n }\n return array;\n}\n","// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n\n/**\n * Package x25519 implements X25519 key agreement.\n */\n\nimport { randomBytes, RandomSource } from \"@stablelib/random\";\nimport { wipe } from \"@stablelib/wipe\";\n\nexport const PUBLIC_KEY_LENGTH = 32;\nexport const SECRET_KEY_LENGTH = 32;\nexport const SHARED_KEY_LENGTH = 32;\n\n// TODO(dchest): some functions are copies of ../sign/ed25519.\n// Find a way to combine them without opening up to public.\n\n// Ported from TweetNaCl.js, which is ported from TweetNaCl\n// by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n// https://tweetnacl.js.org\n\n// TweetNaCl contributors:\n// Daniel J. Bernstein, Bernard van Gastel, Wesley Janssen,\n// Tanja Lange, Peter Schwabe, Sjaak Smetsers.\n// Public domain.\n// https://tweetnacl.cr.yp.to/\n\ntype GF = Float64Array;\n\n// Returns new zero-filled 16-element GF (Float64Array).\n// If passed an array of numbers, prefills the returned\n// array with them.\n//\n// We use Float64Array, because we need 48-bit numbers\n// for this implementation.\nfunction gf(init?: number[]): GF {\n const r = new Float64Array(16);\n if (init) {\n for (let i = 0; i < init.length; i++) {\n r[i] = init[i];\n }\n }\n return r;\n}\n\n// Base point.\nconst _9 = new Uint8Array(32); _9[0] = 9;\n\nconst _121665 = gf([0xdb41, 1]);\n\nfunction car25519(o: GF) {\n let c = 1;\n for (let i = 0; i < 16; i++) {\n let 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: GF, q: GF, b: number) {\n const c = ~(b - 1);\n for (let i = 0; i < 16; i++) {\n const t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction pack25519(o: Uint8Array, n: GF) {\n const m = gf();\n const t = gf();\n for (let i = 0; i < 16; i++) {\n t[i] = n[i];\n }\n car25519(t);\n car25519(t);\n car25519(t);\n for (let j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (let 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 const b = (m[15] >> 16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1 - b);\n }\n for (let i = 0; i < 16; i++) {\n o[2 * i] = t[i] & 0xff;\n o[2 * i + 1] = t[i] >> 8;\n }\n}\n\nfunction unpack25519(o: GF, n: Uint8Array) {\n for (let i = 0; i < 16; i++) {\n o[i] = n[2 * i] + (n[2 * i + 1] << 8);\n }\n o[15] &= 0x7fff;\n}\n\nfunction add(o: GF, a: GF, b: GF) {\n for (let i = 0; i < 16; i++) {\n o[i] = a[i] + b[i];\n }\n}\n\nfunction sub(o: GF, a: GF, b: GF) {\n for (let i = 0; i < 16; i++) {\n o[i] = a[i] - b[i];\n }\n}\n\nfunction mul(o: GF, a: GF, b: GF) {\n let v: number, c: number,\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 square(o: GF, a: GF) {\n mul(o, a, a);\n}\n\nfunction inv25519(o: GF, inp: GF) {\n const c = gf();\n for (let i = 0; i < 16; i++) {\n c[i] = inp[i];\n }\n for (let i = 253; i >= 0; i--) {\n square(c, c);\n if (i !== 2 && i !== 4) {\n mul(c, c, inp);\n }\n }\n for (let i = 0; i < 16; i++) {\n o[i] = c[i];\n }\n}\n\nexport function scalarMult(n: Uint8Array, p: Uint8Array): Uint8Array {\n const z = new Uint8Array(32);\n const x = new Float64Array(80);\n const a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf();\n\n for (let i = 0; i < 31; i++) {\n z[i] = n[i];\n }\n z[31] = (n[31] & 127) | 64;\n z[0] &= 248;\n\n unpack25519(x, p);\n\n for (let i = 0; i < 16; i++) {\n b[i] = x[i];\n }\n\n a[0] = d[0] = 1;\n\n for (let i = 254; i >= 0; --i) {\n const r = (z[i >>> 3] >>> (i & 7)) & 1;\n sel25519(a, b, r);\n sel25519(c, d, r);\n add(e, a, c);\n sub(a, a, c);\n add(c, b, d);\n sub(b, b, d);\n square(d, e);\n square(f, a);\n mul(a, c, a);\n mul(c, b, e);\n add(e, a, c);\n sub(a, a, c);\n square(b, a);\n sub(c, d, f);\n mul(a, c, _121665);\n add(a, a, d);\n mul(c, c, a);\n mul(a, d, f);\n mul(d, b, x);\n square(b, e);\n sel25519(a, b, r);\n sel25519(c, d, r);\n }\n for (let 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 const x32 = x.subarray(32);\n const x16 = x.subarray(16);\n inv25519(x32, x32);\n mul(x16, x16, x32);\n const q = new Uint8Array(32);\n pack25519(q, x16);\n return q;\n}\n\nexport function scalarMultBase(n: Uint8Array): Uint8Array {\n return scalarMult(n, _9);\n}\n\nexport interface KeyPair {\n publicKey: Uint8Array;\n secretKey: Uint8Array;\n}\n\nexport function generateKeyPairFromSeed(seed: Uint8Array): KeyPair {\n if (seed.length !== SECRET_KEY_LENGTH) {\n throw new Error(`x25519: seed must be ${SECRET_KEY_LENGTH} bytes`);\n }\n const secretKey = new Uint8Array(seed);\n const publicKey = scalarMultBase(secretKey);\n return {\n publicKey,\n secretKey\n };\n}\n\nexport function generateKeyPair(prng?: RandomSource): KeyPair {\n const seed = randomBytes(32, prng);\n const result = generateKeyPairFromSeed(seed);\n wipe(seed);\n return result;\n}\n\n/**\n * Returns a shared key between our secret key and a peer's public key.\n *\n * Throws an error if the given keys are of wrong length.\n *\n * If rejectZero is true throws if the calculated shared key is all-zero.\n * From RFC 7748:\n *\n * > Protocol designers using Diffie-Hellman over the curves defined in\n * > this document must not assume \"contributory behavior\". Specially,\n * > contributory behavior means that both parties' private keys\n * > contribute to the resulting shared key. Since curve25519 and\n * > curve448 have cofactors of 8 and 4 (respectively), an input point of\n * > small order will eliminate any contribution from the other party's\n * > private key. This situation can be detected by checking for the all-\n * > zero output, which implementations MAY do, as specified in Section 6.\n * > However, a large number of existing implementations do not do this.\n *\n * IMPORTANT: the returned key is a raw result of scalar multiplication.\n * To use it as a key material, hash it with a cryptographic hash function.\n */\nexport function sharedKey(mySecretKey: Uint8Array, theirPublicKey: Uint8Array, rejectZero = false): Uint8Array {\n if (mySecretKey.length !== PUBLIC_KEY_LENGTH) {\n throw new Error(\"X25519: incorrect secret key length\");\n }\n if (theirPublicKey.length !== PUBLIC_KEY_LENGTH) {\n throw new Error(\"X25519: incorrect public key length\");\n }\n\n const result = scalarMult(mySecretKey, theirPublicKey);\n\n if (rejectZero) {\n let zeros = 0;\n for (let i = 0; i < result.length; i++) {\n zeros |= result[i];\n }\n if (zeros === 0) {\n throw new Error(\"X25519: invalid shared key\");\n }\n }\n\n return result;\n}\n",null,null,null,"export function asUint8Array(buf) {\n if (globalThis.Buffer != null) {\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);\n }\n return buf;\n}","import { asUint8Array } from './util/as-uint8array.js';\nexport function alloc(size = 0) {\n if (globalThis.Buffer != null && globalThis.Buffer.alloc != null) {\n return asUint8Array(globalThis.Buffer.alloc(size));\n }\n return new Uint8Array(size);\n}\nexport function allocUnsafe(size = 0) {\n if (globalThis.Buffer != null && globalThis.Buffer.allocUnsafe != null) {\n return asUint8Array(globalThis.Buffer.allocUnsafe(size));\n }\n return new Uint8Array(size);\n}","import { allocUnsafe } from './alloc.js';\nimport { asUint8Array } from './util/as-uint8array.js';\nexport function concat(arrays, length) {\n if (!length) {\n length = arrays.reduce((acc, curr) => acc + curr.length, 0);\n }\n const output = allocUnsafe(length);\n let offset = 0;\n for (const arr of arrays) {\n output.set(arr, offset);\n offset += arr.length;\n }\n return asUint8Array(output);\n}","function base(ALPHABET, name) {\n if (ALPHABET.length >= 255) {\n throw new TypeError('Alphabet too long');\n }\n var BASE_MAP = new Uint8Array(256);\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n if (BASE_MAP[xc] !== 255) {\n throw new TypeError(x + ' is ambiguous');\n }\n BASE_MAP[xc] = i;\n }\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256);\n var iFACTOR = Math.log(256) / Math.log(BASE);\n function encode(source) {\n if (source instanceof Uint8Array);\n else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source);\n }\n if (!(source instanceof Uint8Array)) {\n throw new TypeError('Expected Uint8Array');\n }\n if (source.length === 0) {\n return '';\n }\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n }\n var size = (pend - pbegin) * iFACTOR + 1 >>> 0;\n var b58 = new Uint8Array(size);\n while (pbegin !== pend) {\n var carry = source[pbegin];\n var i = 0;\n for (var it1 = size - 1; (carry !== 0 || i < length) && it1 !== -1; it1--, i++) {\n carry += 256 * b58[it1] >>> 0;\n b58[it1] = carry % BASE >>> 0;\n carry = carry / BASE >>> 0;\n }\n if (carry !== 0) {\n throw new Error('Non-zero carry');\n }\n length = i;\n pbegin++;\n }\n var it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n var str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) {\n str += ALPHABET.charAt(b58[it2]);\n }\n return str;\n }\n function decodeUnsafe(source) {\n if (typeof source !== 'string') {\n throw new TypeError('Expected String');\n }\n if (source.length === 0) {\n return new Uint8Array();\n }\n var psz = 0;\n if (source[psz] === ' ') {\n return;\n }\n var zeroes = 0;\n var length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n var size = (source.length - psz) * FACTOR + 1 >>> 0;\n var b256 = new Uint8Array(size);\n while (source[psz]) {\n var carry = BASE_MAP[source.charCodeAt(psz)];\n if (carry === 255) {\n return;\n }\n var i = 0;\n for (var it3 = size - 1; (carry !== 0 || i < length) && it3 !== -1; it3--, i++) {\n carry += BASE * b256[it3] >>> 0;\n b256[it3] = carry % 256 >>> 0;\n carry = carry / 256 >>> 0;\n }\n if (carry !== 0) {\n throw new Error('Non-zero carry');\n }\n length = i;\n psz++;\n }\n if (source[psz] === ' ') {\n return;\n }\n var it4 = size - length;\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n var vch = new Uint8Array(zeroes + (size - it4));\n var j = zeroes;\n while (it4 !== size) {\n vch[j++] = b256[it4++];\n }\n return vch;\n }\n function decode(string) {\n var buffer = decodeUnsafe(string);\n if (buffer) {\n return buffer;\n }\n throw new Error(`Non-${ name } character`);\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n };\n}\nvar src = base;\nvar _brrp__multiformats_scope_baseX = src;\nexport default _brrp__multiformats_scope_baseX;","const empty = new Uint8Array(0);\nconst toHex = d => d.reduce((hex, byte) => hex + byte.toString(16).padStart(2, '0'), '');\nconst fromHex = hex => {\n const hexes = hex.match(/../g);\n return hexes ? new Uint8Array(hexes.map(b => parseInt(b, 16))) : empty;\n};\nconst equals = (aa, bb) => {\n if (aa === bb)\n return true;\n if (aa.byteLength !== bb.byteLength) {\n return false;\n }\n for (let ii = 0; ii < aa.byteLength; ii++) {\n if (aa[ii] !== bb[ii]) {\n return false;\n }\n }\n return true;\n};\nconst coerce = o => {\n if (o instanceof Uint8Array && o.constructor.name === 'Uint8Array')\n return o;\n if (o instanceof ArrayBuffer)\n return new Uint8Array(o);\n if (ArrayBuffer.isView(o)) {\n return new Uint8Array(o.buffer, o.byteOffset, o.byteLength);\n }\n throw new Error('Unknown type, must be binary type');\n};\nconst isBinary = o => o instanceof ArrayBuffer || ArrayBuffer.isView(o);\nconst fromString = str => new TextEncoder().encode(str);\nconst toString = b => new TextDecoder().decode(b);\nexport {\n equals,\n coerce,\n isBinary,\n fromHex,\n toHex,\n fromString,\n toString,\n empty\n};","import basex from '../../vendor/base-x.js';\nimport { coerce } from '../bytes.js';\nclass Encoder {\n constructor(name, prefix, baseEncode) {\n this.name = name;\n this.prefix = prefix;\n this.baseEncode = baseEncode;\n }\n encode(bytes) {\n if (bytes instanceof Uint8Array) {\n return `${ this.prefix }${ this.baseEncode(bytes) }`;\n } else {\n throw Error('Unknown type, must be binary type');\n }\n }\n}\nclass Decoder {\n constructor(name, prefix, baseDecode) {\n this.name = name;\n this.prefix = prefix;\n if (prefix.codePointAt(0) === undefined) {\n throw new Error('Invalid prefix character');\n }\n this.prefixCodePoint = prefix.codePointAt(0);\n this.baseDecode = baseDecode;\n }\n decode(text) {\n if (typeof text === 'string') {\n if (text.codePointAt(0) !== this.prefixCodePoint) {\n throw Error(`Unable to decode multibase string ${ JSON.stringify(text) }, ${ this.name } decoder only supports inputs prefixed with ${ this.prefix }`);\n }\n return this.baseDecode(text.slice(this.prefix.length));\n } else {\n throw Error('Can only multibase decode strings');\n }\n }\n or(decoder) {\n return or(this, decoder);\n }\n}\nclass ComposedDecoder {\n constructor(decoders) {\n this.decoders = decoders;\n }\n or(decoder) {\n return or(this, decoder);\n }\n decode(input) {\n const prefix = input[0];\n const decoder = this.decoders[prefix];\n if (decoder) {\n return decoder.decode(input);\n } else {\n throw RangeError(`Unable to decode multibase string ${ JSON.stringify(input) }, only inputs prefixed with ${ Object.keys(this.decoders) } are supported`);\n }\n }\n}\nexport const or = (left, right) => new ComposedDecoder({\n ...left.decoders || { [left.prefix]: left },\n ...right.decoders || { [right.prefix]: right }\n});\nexport class Codec {\n constructor(name, prefix, baseEncode, baseDecode) {\n this.name = name;\n this.prefix = prefix;\n this.baseEncode = baseEncode;\n this.baseDecode = baseDecode;\n this.encoder = new Encoder(name, prefix, baseEncode);\n this.decoder = new Decoder(name, prefix, baseDecode);\n }\n encode(input) {\n return this.encoder.encode(input);\n }\n decode(input) {\n return this.decoder.decode(input);\n }\n}\nexport const from = ({name, prefix, encode, decode}) => new Codec(name, prefix, encode, decode);\nexport const baseX = ({prefix, name, alphabet}) => {\n const {encode, decode} = basex(alphabet, name);\n return from({\n prefix,\n name,\n encode,\n decode: text => coerce(decode(text))\n });\n};\nconst decode = (string, alphabet, bitsPerChar, name) => {\n const codes = {};\n for (let i = 0; i < alphabet.length; ++i) {\n codes[alphabet[i]] = i;\n }\n let end = string.length;\n while (string[end - 1] === '=') {\n --end;\n }\n const out = new Uint8Array(end * bitsPerChar / 8 | 0);\n let bits = 0;\n let buffer = 0;\n let written = 0;\n for (let i = 0; i < end; ++i) {\n const value = codes[string[i]];\n if (value === undefined) {\n throw new SyntaxError(`Non-${ name } character`);\n }\n buffer = buffer << bitsPerChar | value;\n bits += bitsPerChar;\n if (bits >= 8) {\n bits -= 8;\n out[written++] = 255 & buffer >> bits;\n }\n }\n if (bits >= bitsPerChar || 255 & buffer << 8 - bits) {\n throw new SyntaxError('Unexpected end of data');\n }\n return out;\n};\nconst encode = (data, alphabet, bitsPerChar) => {\n const pad = alphabet[alphabet.length - 1] === '=';\n const mask = (1 << bitsPerChar) - 1;\n let out = '';\n let bits = 0;\n let buffer = 0;\n for (let i = 0; i < data.length; ++i) {\n buffer = buffer << 8 | data[i];\n bits += 8;\n while (bits > bitsPerChar) {\n bits -= bitsPerChar;\n out += alphabet[mask & buffer >> bits];\n }\n }\n if (bits) {\n out += alphabet[mask & buffer << bitsPerChar - bits];\n }\n if (pad) {\n while (out.length * bitsPerChar & 7) {\n out += '=';\n }\n }\n return out;\n};\nexport const rfc4648 = ({name, prefix, bitsPerChar, alphabet}) => {\n return from({\n prefix,\n name,\n encode(input) {\n return encode(input, alphabet, bitsPerChar);\n },\n decode(input) {\n return decode(input, alphabet, bitsPerChar, name);\n }\n });\n};","import { from } from './base.js';\nimport {\n fromString,\n toString\n} from '../bytes.js';\nexport const identity = from({\n prefix: '\\0',\n name: 'identity',\n encode: buf => toString(buf),\n decode: str => fromString(str)\n});","import { rfc4648 } from './base.js';\nexport const base2 = rfc4648({\n prefix: '0',\n name: 'base2',\n alphabet: '01',\n bitsPerChar: 1\n});","import { rfc4648 } from './base.js';\nexport const base8 = rfc4648({\n prefix: '7',\n name: 'base8',\n alphabet: '01234567',\n bitsPerChar: 3\n});","import { baseX } from './base.js';\nexport const base10 = baseX({\n prefix: '9',\n name: 'base10',\n alphabet: '0123456789'\n});","import { rfc4648 } from './base.js';\nexport const base16 = rfc4648({\n prefix: 'f',\n name: 'base16',\n alphabet: '0123456789abcdef',\n bitsPerChar: 4\n});\nexport const base16upper = rfc4648({\n prefix: 'F',\n name: 'base16upper',\n alphabet: '0123456789ABCDEF',\n bitsPerChar: 4\n});","import { rfc4648 } from './base.js';\nexport const base32 = rfc4648({\n prefix: 'b',\n name: 'base32',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567',\n bitsPerChar: 5\n});\nexport const base32upper = rfc4648({\n prefix: 'B',\n name: 'base32upper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567',\n bitsPerChar: 5\n});\nexport const base32pad = rfc4648({\n prefix: 'c',\n name: 'base32pad',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567=',\n bitsPerChar: 5\n});\nexport const base32padupper = rfc4648({\n prefix: 'C',\n name: 'base32padupper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=',\n bitsPerChar: 5\n});\nexport const base32hex = rfc4648({\n prefix: 'v',\n name: 'base32hex',\n alphabet: '0123456789abcdefghijklmnopqrstuv',\n bitsPerChar: 5\n});\nexport const base32hexupper = rfc4648({\n prefix: 'V',\n name: 'base32hexupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV',\n bitsPerChar: 5\n});\nexport const base32hexpad = rfc4648({\n prefix: 't',\n name: 'base32hexpad',\n alphabet: '0123456789abcdefghijklmnopqrstuv=',\n bitsPerChar: 5\n});\nexport const base32hexpadupper = rfc4648({\n prefix: 'T',\n name: 'base32hexpadupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV=',\n bitsPerChar: 5\n});\nexport const base32z = rfc4648({\n prefix: 'h',\n name: 'base32z',\n alphabet: 'ybndrfg8ejkmcpqxot1uwisza345h769',\n bitsPerChar: 5\n});","import { baseX } from './base.js';\nexport const base36 = baseX({\n prefix: 'k',\n name: 'base36',\n alphabet: '0123456789abcdefghijklmnopqrstuvwxyz'\n});\nexport const base36upper = baseX({\n prefix: 'K',\n name: 'base36upper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'\n});","import { baseX } from './base.js';\nexport const base58btc = baseX({\n name: 'base58btc',\n prefix: 'z',\n alphabet: '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n});\nexport const base58flickr = baseX({\n name: 'base58flickr',\n prefix: 'Z',\n alphabet: '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ'\n});","import { rfc4648 } from './base.js';\nexport const base64 = rfc4648({\n prefix: 'm',\n name: 'base64',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n bitsPerChar: 6\n});\nexport const base64pad = rfc4648({\n prefix: 'M',\n name: 'base64pad',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n bitsPerChar: 6\n});\nexport const base64url = rfc4648({\n prefix: 'u',\n name: 'base64url',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',\n bitsPerChar: 6\n});\nexport const base64urlpad = rfc4648({\n prefix: 'U',\n name: 'base64urlpad',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=',\n bitsPerChar: 6\n});","import { from } from './base.js';\nconst alphabet = Array.from('\\uD83D\\uDE80\\uD83E\\uDE90\\u2604\\uD83D\\uDEF0\\uD83C\\uDF0C\\uD83C\\uDF11\\uD83C\\uDF12\\uD83C\\uDF13\\uD83C\\uDF14\\uD83C\\uDF15\\uD83C\\uDF16\\uD83C\\uDF17\\uD83C\\uDF18\\uD83C\\uDF0D\\uD83C\\uDF0F\\uD83C\\uDF0E\\uD83D\\uDC09\\u2600\\uD83D\\uDCBB\\uD83D\\uDDA5\\uD83D\\uDCBE\\uD83D\\uDCBF\\uD83D\\uDE02\\u2764\\uD83D\\uDE0D\\uD83E\\uDD23\\uD83D\\uDE0A\\uD83D\\uDE4F\\uD83D\\uDC95\\uD83D\\uDE2D\\uD83D\\uDE18\\uD83D\\uDC4D\\uD83D\\uDE05\\uD83D\\uDC4F\\uD83D\\uDE01\\uD83D\\uDD25\\uD83E\\uDD70\\uD83D\\uDC94\\uD83D\\uDC96\\uD83D\\uDC99\\uD83D\\uDE22\\uD83E\\uDD14\\uD83D\\uDE06\\uD83D\\uDE44\\uD83D\\uDCAA\\uD83D\\uDE09\\u263A\\uD83D\\uDC4C\\uD83E\\uDD17\\uD83D\\uDC9C\\uD83D\\uDE14\\uD83D\\uDE0E\\uD83D\\uDE07\\uD83C\\uDF39\\uD83E\\uDD26\\uD83C\\uDF89\\uD83D\\uDC9E\\u270C\\u2728\\uD83E\\uDD37\\uD83D\\uDE31\\uD83D\\uDE0C\\uD83C\\uDF38\\uD83D\\uDE4C\\uD83D\\uDE0B\\uD83D\\uDC97\\uD83D\\uDC9A\\uD83D\\uDE0F\\uD83D\\uDC9B\\uD83D\\uDE42\\uD83D\\uDC93\\uD83E\\uDD29\\uD83D\\uDE04\\uD83D\\uDE00\\uD83D\\uDDA4\\uD83D\\uDE03\\uD83D\\uDCAF\\uD83D\\uDE48\\uD83D\\uDC47\\uD83C\\uDFB6\\uD83D\\uDE12\\uD83E\\uDD2D\\u2763\\uD83D\\uDE1C\\uD83D\\uDC8B\\uD83D\\uDC40\\uD83D\\uDE2A\\uD83D\\uDE11\\uD83D\\uDCA5\\uD83D\\uDE4B\\uD83D\\uDE1E\\uD83D\\uDE29\\uD83D\\uDE21\\uD83E\\uDD2A\\uD83D\\uDC4A\\uD83E\\uDD73\\uD83D\\uDE25\\uD83E\\uDD24\\uD83D\\uDC49\\uD83D\\uDC83\\uD83D\\uDE33\\u270B\\uD83D\\uDE1A\\uD83D\\uDE1D\\uD83D\\uDE34\\uD83C\\uDF1F\\uD83D\\uDE2C\\uD83D\\uDE43\\uD83C\\uDF40\\uD83C\\uDF37\\uD83D\\uDE3B\\uD83D\\uDE13\\u2B50\\u2705\\uD83E\\uDD7A\\uD83C\\uDF08\\uD83D\\uDE08\\uD83E\\uDD18\\uD83D\\uDCA6\\u2714\\uD83D\\uDE23\\uD83C\\uDFC3\\uD83D\\uDC90\\u2639\\uD83C\\uDF8A\\uD83D\\uDC98\\uD83D\\uDE20\\u261D\\uD83D\\uDE15\\uD83C\\uDF3A\\uD83C\\uDF82\\uD83C\\uDF3B\\uD83D\\uDE10\\uD83D\\uDD95\\uD83D\\uDC9D\\uD83D\\uDE4A\\uD83D\\uDE39\\uD83D\\uDDE3\\uD83D\\uDCAB\\uD83D\\uDC80\\uD83D\\uDC51\\uD83C\\uDFB5\\uD83E\\uDD1E\\uD83D\\uDE1B\\uD83D\\uDD34\\uD83D\\uDE24\\uD83C\\uDF3C\\uD83D\\uDE2B\\u26BD\\uD83E\\uDD19\\u2615\\uD83C\\uDFC6\\uD83E\\uDD2B\\uD83D\\uDC48\\uD83D\\uDE2E\\uD83D\\uDE46\\uD83C\\uDF7B\\uD83C\\uDF43\\uD83D\\uDC36\\uD83D\\uDC81\\uD83D\\uDE32\\uD83C\\uDF3F\\uD83E\\uDDE1\\uD83C\\uDF81\\u26A1\\uD83C\\uDF1E\\uD83C\\uDF88\\u274C\\u270A\\uD83D\\uDC4B\\uD83D\\uDE30\\uD83E\\uDD28\\uD83D\\uDE36\\uD83E\\uDD1D\\uD83D\\uDEB6\\uD83D\\uDCB0\\uD83C\\uDF53\\uD83D\\uDCA2\\uD83E\\uDD1F\\uD83D\\uDE41\\uD83D\\uDEA8\\uD83D\\uDCA8\\uD83E\\uDD2C\\u2708\\uD83C\\uDF80\\uD83C\\uDF7A\\uD83E\\uDD13\\uD83D\\uDE19\\uD83D\\uDC9F\\uD83C\\uDF31\\uD83D\\uDE16\\uD83D\\uDC76\\uD83E\\uDD74\\u25B6\\u27A1\\u2753\\uD83D\\uDC8E\\uD83D\\uDCB8\\u2B07\\uD83D\\uDE28\\uD83C\\uDF1A\\uD83E\\uDD8B\\uD83D\\uDE37\\uD83D\\uDD7A\\u26A0\\uD83D\\uDE45\\uD83D\\uDE1F\\uD83D\\uDE35\\uD83D\\uDC4E\\uD83E\\uDD32\\uD83E\\uDD20\\uD83E\\uDD27\\uD83D\\uDCCC\\uD83D\\uDD35\\uD83D\\uDC85\\uD83E\\uDDD0\\uD83D\\uDC3E\\uD83C\\uDF52\\uD83D\\uDE17\\uD83E\\uDD11\\uD83C\\uDF0A\\uD83E\\uDD2F\\uD83D\\uDC37\\u260E\\uD83D\\uDCA7\\uD83D\\uDE2F\\uD83D\\uDC86\\uD83D\\uDC46\\uD83C\\uDFA4\\uD83D\\uDE47\\uD83C\\uDF51\\u2744\\uD83C\\uDF34\\uD83D\\uDCA3\\uD83D\\uDC38\\uD83D\\uDC8C\\uD83D\\uDCCD\\uD83E\\uDD40\\uD83E\\uDD22\\uD83D\\uDC45\\uD83D\\uDCA1\\uD83D\\uDCA9\\uD83D\\uDC50\\uD83D\\uDCF8\\uD83D\\uDC7B\\uD83E\\uDD10\\uD83E\\uDD2E\\uD83C\\uDFBC\\uD83E\\uDD75\\uD83D\\uDEA9\\uD83C\\uDF4E\\uD83C\\uDF4A\\uD83D\\uDC7C\\uD83D\\uDC8D\\uD83D\\uDCE3\\uD83E\\uDD42');\nconst alphabetBytesToChars = alphabet.reduce((p, c, i) => {\n p[i] = c;\n return p;\n}, []);\nconst alphabetCharsToBytes = alphabet.reduce((p, c, i) => {\n p[c.codePointAt(0)] = i;\n return p;\n}, []);\nfunction encode(data) {\n return data.reduce((p, c) => {\n p += alphabetBytesToChars[c];\n return p;\n }, '');\n}\nfunction decode(str) {\n const byts = [];\n for (const char of str) {\n const byt = alphabetCharsToBytes[char.codePointAt(0)];\n if (byt === undefined) {\n throw new Error(`Non-base256emoji character: ${ char }`);\n }\n byts.push(byt);\n }\n return new Uint8Array(byts);\n}\nexport const base256emoji = from({\n prefix: '\\uD83D\\uDE80',\n name: 'base256emoji',\n encode,\n decode\n});","var encode_1 = encode;\nvar MSB = 128, REST = 127, MSBALL = ~REST, INT = Math.pow(2, 31);\nfunction encode(num, out, offset) {\n out = out || [];\n offset = offset || 0;\n var oldOffset = offset;\n while (num >= INT) {\n out[offset++] = num & 255 | MSB;\n num /= 128;\n }\n while (num & MSBALL) {\n out[offset++] = num & 255 | MSB;\n num >>>= 7;\n }\n out[offset] = num | 0;\n encode.bytes = offset - oldOffset + 1;\n return out;\n}\nvar decode = read;\nvar MSB$1 = 128, REST$1 = 127;\nfunction read(buf, offset) {\n var res = 0, offset = offset || 0, shift = 0, counter = offset, b, l = buf.length;\n do {\n if (counter >= l) {\n read.bytes = 0;\n throw new RangeError('Could not decode varint');\n }\n b = buf[counter++];\n res += shift < 28 ? (b & REST$1) << shift : (b & REST$1) * Math.pow(2, shift);\n shift += 7;\n } while (b >= MSB$1);\n read.bytes = counter - offset;\n return res;\n}\nvar N1 = Math.pow(2, 7);\nvar N2 = Math.pow(2, 14);\nvar N3 = Math.pow(2, 21);\nvar N4 = Math.pow(2, 28);\nvar N5 = Math.pow(2, 35);\nvar N6 = Math.pow(2, 42);\nvar N7 = Math.pow(2, 49);\nvar N8 = Math.pow(2, 56);\nvar N9 = Math.pow(2, 63);\nvar length = function (value) {\n return value < N1 ? 1 : value < N2 ? 2 : value < N3 ? 3 : value < N4 ? 4 : value < N5 ? 5 : value < N6 ? 6 : value < N7 ? 7 : value < N8 ? 8 : value < N9 ? 9 : 10;\n};\nvar varint = {\n encode: encode_1,\n decode: decode,\n encodingLength: length\n};\nvar _brrp_varint = varint;\nexport default _brrp_varint;","import varint from '../vendor/varint.js';\nexport const decode = (data, offset = 0) => {\n const code = varint.decode(data, offset);\n return [\n code,\n varint.decode.bytes\n ];\n};\nexport const encodeTo = (int, target, offset = 0) => {\n varint.encode(int, target, offset);\n return target;\n};\nexport const encodingLength = int => {\n return varint.encodingLength(int);\n};","import {\n coerce,\n equals as equalBytes\n} from '../bytes.js';\nimport * as varint from '../varint.js';\nexport const create = (code, digest) => {\n const size = digest.byteLength;\n const sizeOffset = varint.encodingLength(code);\n const digestOffset = sizeOffset + varint.encodingLength(size);\n const bytes = new Uint8Array(digestOffset + size);\n varint.encodeTo(code, bytes, 0);\n varint.encodeTo(size, bytes, sizeOffset);\n bytes.set(digest, digestOffset);\n return new Digest(code, size, digest, bytes);\n};\nexport const decode = multihash => {\n const bytes = coerce(multihash);\n const [code, sizeOffset] = varint.decode(bytes);\n const [size, digestOffset] = varint.decode(bytes.subarray(sizeOffset));\n const digest = bytes.subarray(sizeOffset + digestOffset);\n if (digest.byteLength !== size) {\n throw new Error('Incorrect length');\n }\n return new Digest(code, size, digest, bytes);\n};\nexport const equals = (a, b) => {\n if (a === b) {\n return true;\n } else {\n return a.code === b.code && a.size === b.size && equalBytes(a.bytes, b.bytes);\n }\n};\nexport class Digest {\n constructor(code, size, digest, bytes) {\n this.code = code;\n this.size = size;\n this.digest = digest;\n this.bytes = bytes;\n }\n}","import * as Digest from './digest.js';\nexport const from = ({name, code, encode}) => new Hasher(name, code, encode);\nexport class Hasher {\n constructor(name, code, encode) {\n this.name = name;\n this.code = code;\n this.encode = encode;\n }\n digest(input) {\n if (input instanceof Uint8Array) {\n const result = this.encode(input);\n return result instanceof Uint8Array ? Digest.create(this.code, result) : result.then(digest => Digest.create(this.code, digest));\n } else {\n throw Error('Unknown type, must be binary type');\n }\n }\n}","import { from } from './hasher.js';\nconst sha = name => async data => new Uint8Array(await crypto.subtle.digest(name, data));\nexport const sha256 = from({\n name: 'sha2-256',\n code: 18,\n encode: sha('SHA-256')\n});\nexport const sha512 = from({\n name: 'sha2-512',\n code: 19,\n encode: sha('SHA-512')\n});","import { coerce } from '../bytes.js';\nimport * as Digest from './digest.js';\nconst code = 0;\nconst name = 'identity';\nconst encode = coerce;\nconst digest = input => Digest.create(code, encode(input));\nexport const identity = {\n code,\n name,\n encode,\n digest\n};","import { coerce } from '../bytes.js';\nexport const name = 'raw';\nexport const code = 85;\nexport const encode = node => coerce(node);\nexport const decode = data => coerce(data);","const textEncoder = new TextEncoder();\nconst textDecoder = new TextDecoder();\nexport const name = 'json';\nexport const code = 512;\nexport const encode = node => textEncoder.encode(JSON.stringify(node));\nexport const decode = data => JSON.parse(textDecoder.decode(data));","import * as varint from './varint.js';\nimport * as Digest from './hashes/digest.js';\nimport { base58btc } from './bases/base58.js';\nimport { base32 } from './bases/base32.js';\nimport { coerce } from './bytes.js';\nexport class CID {\n constructor(version, code, multihash, bytes) {\n this.code = code;\n this.version = version;\n this.multihash = multihash;\n this.bytes = bytes;\n this.byteOffset = bytes.byteOffset;\n this.byteLength = bytes.byteLength;\n this.asCID = this;\n this._baseCache = new Map();\n Object.defineProperties(this, {\n byteOffset: hidden,\n byteLength: hidden,\n code: readonly,\n version: readonly,\n multihash: readonly,\n bytes: readonly,\n _baseCache: hidden,\n asCID: hidden\n });\n }\n toV0() {\n switch (this.version) {\n case 0: {\n return this;\n }\n default: {\n const {code, multihash} = this;\n if (code !== DAG_PB_CODE) {\n throw new Error('Cannot convert a non dag-pb CID to CIDv0');\n }\n if (multihash.code !== SHA_256_CODE) {\n throw new Error('Cannot convert non sha2-256 multihash CID to CIDv0');\n }\n return CID.createV0(multihash);\n }\n }\n }\n toV1() {\n switch (this.version) {\n case 0: {\n const {code, digest} = this.multihash;\n const multihash = Digest.create(code, digest);\n return CID.createV1(this.code, multihash);\n }\n case 1: {\n return this;\n }\n default: {\n throw Error(`Can not convert CID version ${ this.version } to version 0. This is a bug please report`);\n }\n }\n }\n equals(other) {\n return other && this.code === other.code && this.version === other.version && Digest.equals(this.multihash, other.multihash);\n }\n toString(base) {\n const {bytes, version, _baseCache} = this;\n switch (version) {\n case 0:\n return toStringV0(bytes, _baseCache, base || base58btc.encoder);\n default:\n return toStringV1(bytes, _baseCache, base || base32.encoder);\n }\n }\n toJSON() {\n return {\n code: this.code,\n version: this.version,\n hash: this.multihash.bytes\n };\n }\n get [Symbol.toStringTag]() {\n return 'CID';\n }\n [Symbol.for('nodejs.util.inspect.custom')]() {\n return 'CID(' + this.toString() + ')';\n }\n static isCID(value) {\n deprecate(/^0\\.0/, IS_CID_DEPRECATION);\n return !!(value && (value[cidSymbol] || value.asCID === value));\n }\n get toBaseEncodedString() {\n throw new Error('Deprecated, use .toString()');\n }\n get codec() {\n throw new Error('\"codec\" property is deprecated, use integer \"code\" property instead');\n }\n get buffer() {\n throw new Error('Deprecated .buffer property, use .bytes to get Uint8Array instead');\n }\n get multibaseName() {\n throw new Error('\"multibaseName\" property is deprecated');\n }\n get prefix() {\n throw new Error('\"prefix\" property is deprecated');\n }\n static asCID(value) {\n if (value instanceof CID) {\n return value;\n } else if (value != null && value.asCID === value) {\n const {version, code, multihash, bytes} = value;\n return new CID(version, code, multihash, bytes || encodeCID(version, code, multihash.bytes));\n } else if (value != null && value[cidSymbol] === true) {\n const {version, multihash, code} = value;\n const digest = Digest.decode(multihash);\n return CID.create(version, code, digest);\n } else {\n return null;\n }\n }\n static create(version, code, digest) {\n if (typeof code !== 'number') {\n throw new Error('String codecs are no longer supported');\n }\n switch (version) {\n case 0: {\n if (code !== DAG_PB_CODE) {\n throw new Error(`Version 0 CID must use dag-pb (code: ${ DAG_PB_CODE }) block encoding`);\n } else {\n return new CID(version, code, digest, digest.bytes);\n }\n }\n case 1: {\n const bytes = encodeCID(version, code, digest.bytes);\n return new CID(version, code, digest, bytes);\n }\n default: {\n throw new Error('Invalid version');\n }\n }\n }\n static createV0(digest) {\n return CID.create(0, DAG_PB_CODE, digest);\n }\n static createV1(code, digest) {\n return CID.create(1, code, digest);\n }\n static decode(bytes) {\n const [cid, remainder] = CID.decodeFirst(bytes);\n if (remainder.length) {\n throw new Error('Incorrect length');\n }\n return cid;\n }\n static decodeFirst(bytes) {\n const specs = CID.inspectBytes(bytes);\n const prefixSize = specs.size - specs.multihashSize;\n const multihashBytes = coerce(bytes.subarray(prefixSize, prefixSize + specs.multihashSize));\n if (multihashBytes.byteLength !== specs.multihashSize) {\n throw new Error('Incorrect length');\n }\n const digestBytes = multihashBytes.subarray(specs.multihashSize - specs.digestSize);\n const digest = new Digest.Digest(specs.multihashCode, specs.digestSize, digestBytes, multihashBytes);\n const cid = specs.version === 0 ? CID.createV0(digest) : CID.createV1(specs.codec, digest);\n return [\n cid,\n bytes.subarray(specs.size)\n ];\n }\n static inspectBytes(initialBytes) {\n let offset = 0;\n const next = () => {\n const [i, length] = varint.decode(initialBytes.subarray(offset));\n offset += length;\n return i;\n };\n let version = next();\n let codec = DAG_PB_CODE;\n if (version === 18) {\n version = 0;\n offset = 0;\n } else if (version === 1) {\n codec = next();\n }\n if (version !== 0 && version !== 1) {\n throw new RangeError(`Invalid CID version ${ version }`);\n }\n const prefixSize = offset;\n const multihashCode = next();\n const digestSize = next();\n const size = offset + digestSize;\n const multihashSize = size - prefixSize;\n return {\n version,\n codec,\n multihashCode,\n digestSize,\n multihashSize,\n size\n };\n }\n static parse(source, base) {\n const [prefix, bytes] = parseCIDtoBytes(source, base);\n const cid = CID.decode(bytes);\n cid._baseCache.set(prefix, source);\n return cid;\n }\n}\nconst parseCIDtoBytes = (source, base) => {\n switch (source[0]) {\n case 'Q': {\n const decoder = base || base58btc;\n return [\n base58btc.prefix,\n decoder.decode(`${ base58btc.prefix }${ source }`)\n ];\n }\n case base58btc.prefix: {\n const decoder = base || base58btc;\n return [\n base58btc.prefix,\n decoder.decode(source)\n ];\n }\n case base32.prefix: {\n const decoder = base || base32;\n return [\n base32.prefix,\n decoder.decode(source)\n ];\n }\n default: {\n if (base == null) {\n throw Error('To parse non base32 or base58btc encoded CID multibase decoder must be provided');\n }\n return [\n source[0],\n base.decode(source)\n ];\n }\n }\n};\nconst toStringV0 = (bytes, cache, base) => {\n const {prefix} = base;\n if (prefix !== base58btc.prefix) {\n throw Error(`Cannot string encode V0 in ${ base.name } encoding`);\n }\n const cid = cache.get(prefix);\n if (cid == null) {\n const cid = base.encode(bytes).slice(1);\n cache.set(prefix, cid);\n return cid;\n } else {\n return cid;\n }\n};\nconst toStringV1 = (bytes, cache, base) => {\n const {prefix} = base;\n const cid = cache.get(prefix);\n if (cid == null) {\n const cid = base.encode(bytes);\n cache.set(prefix, cid);\n return cid;\n } else {\n return cid;\n }\n};\nconst DAG_PB_CODE = 112;\nconst SHA_256_CODE = 18;\nconst encodeCID = (version, code, multihash) => {\n const codeOffset = varint.encodingLength(version);\n const hashOffset = codeOffset + varint.encodingLength(code);\n const bytes = new Uint8Array(hashOffset + multihash.byteLength);\n varint.encodeTo(version, bytes, 0);\n varint.encodeTo(code, bytes, codeOffset);\n bytes.set(multihash, hashOffset);\n return bytes;\n};\nconst cidSymbol = Symbol.for('@ipld/js-cid/CID');\nconst readonly = {\n writable: false,\n configurable: false,\n enumerable: true\n};\nconst hidden = {\n writable: false,\n enumerable: false,\n configurable: false\n};\nconst version = '0.0.0-dev';\nconst deprecate = (range, message) => {\n if (range.test(version)) {\n console.warn(message);\n } else {\n throw new Error(message);\n }\n};\nconst IS_CID_DEPRECATION = `CID.isCID(v) is deprecated and will be removed in the next major release.\nFollowing code pattern:\n\nif (CID.isCID(value)) {\n doSomethingWithCID(value)\n}\n\nIs replaced with:\n\nconst cid = CID.asCID(value)\nif (cid) {\n // Make sure to use cid instead of value\n doSomethingWithCID(cid)\n}\n`;","import * as identityBase from './bases/identity.js';\nimport * as base2 from './bases/base2.js';\nimport * as base8 from './bases/base8.js';\nimport * as base10 from './bases/base10.js';\nimport * as base16 from './bases/base16.js';\nimport * as base32 from './bases/base32.js';\nimport * as base36 from './bases/base36.js';\nimport * as base58 from './bases/base58.js';\nimport * as base64 from './bases/base64.js';\nimport * as base256emoji from './bases/base256emoji.js';\nimport * as sha2 from './hashes/sha2.js';\nimport * as identity from './hashes/identity.js';\nimport * as raw from './codecs/raw.js';\nimport * as json from './codecs/json.js';\nimport {\n CID,\n hasher,\n digest,\n varint,\n bytes\n} from './index.js';\nconst bases = {\n ...identityBase,\n ...base2,\n ...base8,\n ...base10,\n ...base16,\n ...base32,\n ...base36,\n ...base58,\n ...base64,\n ...base256emoji\n};\nconst hashes = {\n ...sha2,\n ...identity\n};\nconst codecs = {\n raw,\n json\n};\nexport {\n CID,\n hasher,\n digest,\n varint,\n bytes,\n hashes,\n bases,\n codecs\n};","import { bases } from 'multiformats/basics';\nimport { allocUnsafe } from '../alloc.js';\nfunction createCodec(name, prefix, encode, decode) {\n return {\n name,\n prefix,\n encoder: {\n name,\n prefix,\n encode\n },\n decoder: { decode }\n };\n}\nconst string = createCodec('utf8', 'u', buf => {\n const decoder = new TextDecoder('utf8');\n return 'u' + decoder.decode(buf);\n}, str => {\n const encoder = new TextEncoder();\n return encoder.encode(str.substring(1));\n});\nconst ascii = createCodec('ascii', 'a', buf => {\n let string = 'a';\n for (let i = 0; i < buf.length; i++) {\n string += String.fromCharCode(buf[i]);\n }\n return string;\n}, str => {\n str = str.substring(1);\n const buf = allocUnsafe(str.length);\n for (let i = 0; i < str.length; i++) {\n buf[i] = str.charCodeAt(i);\n }\n return buf;\n});\nconst BASES = {\n utf8: string,\n 'utf-8': string,\n hex: bases.base16,\n latin1: ascii,\n ascii: ascii,\n binary: ascii,\n ...bases\n};\nexport default BASES;","import bases from './util/bases.js';\nimport { asUint8Array } from './util/as-uint8array.js';\nexport function fromString(string, encoding = 'utf8') {\n const base = bases[encoding];\n if (!base) {\n throw new Error(`Unsupported encoding \"${ encoding }\"`);\n }\n if ((encoding === 'utf8' || encoding === 'utf-8') && globalThis.Buffer != null && globalThis.Buffer.from != null) {\n return asUint8Array(globalThis.Buffer.from(string, 'utf-8'));\n }\n return base.decoder.decode(`${ base.prefix }${ string }`);\n}","import bases from './util/bases.js';\nexport function toString(array, encoding = 'utf8') {\n const base = bases[encoding];\n if (!base) {\n throw new Error(`Unsupported encoding \"${ encoding }\"`);\n }\n if ((encoding === 'utf8' || encoding === 'utf-8') && globalThis.Buffer != null && globalThis.Buffer.from != null) {\n return globalThis.Buffer.from(array.buffer, array.byteOffset, array.byteLength).toString('utf8');\n }\n return base.encoder.encode(array).substring(1);\n}","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar BrowserInfo = /** @class */ (function () {\n function BrowserInfo(name, version, os) {\n this.name = name;\n this.version = version;\n this.os = os;\n this.type = 'browser';\n }\n return BrowserInfo;\n}());\nexport { BrowserInfo };\nvar NodeInfo = /** @class */ (function () {\n function NodeInfo(version) {\n this.version = version;\n this.type = 'node';\n this.name = 'node';\n this.os = process.platform;\n }\n return NodeInfo;\n}());\nexport { NodeInfo };\nvar SearchBotDeviceInfo = /** @class */ (function () {\n function SearchBotDeviceInfo(name, version, os, bot) {\n this.name = name;\n this.version = version;\n this.os = os;\n this.bot = bot;\n this.type = 'bot-device';\n }\n return SearchBotDeviceInfo;\n}());\nexport { SearchBotDeviceInfo };\nvar BotInfo = /** @class */ (function () {\n function BotInfo() {\n this.type = 'bot';\n this.bot = true; // NOTE: deprecated test name instead\n this.name = 'bot';\n this.version = null;\n this.os = null;\n }\n return BotInfo;\n}());\nexport { BotInfo };\nvar ReactNativeInfo = /** @class */ (function () {\n function ReactNativeInfo() {\n this.type = 'react-native';\n this.name = 'react-native';\n this.version = null;\n this.os = null;\n }\n return ReactNativeInfo;\n}());\nexport { ReactNativeInfo };\n// tslint:disable-next-line:max-line-length\nvar SEARCHBOX_UA_REGEX = /alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/;\nvar SEARCHBOT_OS_REGEX = /(nuhk|curl|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask\\ Jeeves\\/Teoma|ia_archiver)/;\nvar REQUIRED_VERSION_PARTS = 3;\nvar userAgentRules = [\n ['aol', /AOLShield\\/([0-9\\._]+)/],\n ['edge', /Edge\\/([0-9\\._]+)/],\n ['edge-ios', /EdgiOS\\/([0-9\\._]+)/],\n ['yandexbrowser', /YaBrowser\\/([0-9\\._]+)/],\n ['kakaotalk', /KAKAOTALK\\s([0-9\\.]+)/],\n ['samsung', /SamsungBrowser\\/([0-9\\.]+)/],\n ['silk', /\\bSilk\\/([0-9._-]+)\\b/],\n ['miui', /MiuiBrowser\\/([0-9\\.]+)$/],\n ['beaker', /BeakerBrowser\\/([0-9\\.]+)/],\n ['edge-chromium', /EdgA?\\/([0-9\\.]+)/],\n [\n 'chromium-webview',\n /(?!Chrom.*OPR)wv\\).*Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/,\n ],\n ['chrome', /(?!Chrom.*OPR)Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/],\n ['phantomjs', /PhantomJS\\/([0-9\\.]+)(:?\\s|$)/],\n ['crios', /CriOS\\/([0-9\\.]+)(:?\\s|$)/],\n ['firefox', /Firefox\\/([0-9\\.]+)(?:\\s|$)/],\n ['fxios', /FxiOS\\/([0-9\\.]+)/],\n ['opera-mini', /Opera Mini.*Version\\/([0-9\\.]+)/],\n ['opera', /Opera\\/([0-9\\.]+)(?:\\s|$)/],\n ['opera', /OPR\\/([0-9\\.]+)(:?\\s|$)/],\n ['pie', /^Microsoft Pocket Internet Explorer\\/(\\d+\\.\\d+)$/],\n ['pie', /^Mozilla\\/\\d\\.\\d+\\s\\(compatible;\\s(?:MSP?IE|MSInternet Explorer) (\\d+\\.\\d+);.*Windows CE.*\\)$/],\n ['netfront', /^Mozilla\\/\\d\\.\\d+.*NetFront\\/(\\d.\\d)/],\n ['ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+).*\\).*Gecko$/],\n ['ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/],\n ['ie', /MSIE\\s(7\\.0)/],\n ['bb10', /BB10;\\sTouch.*Version\\/([0-9\\.]+)/],\n ['android', /Android\\s([0-9\\.]+)/],\n ['ios', /Version\\/([0-9\\._]+).*Mobile.*Safari.*/],\n ['safari', /Version\\/([0-9\\._]+).*Safari/],\n ['facebook', /FB[AS]V\\/([0-9\\.]+)/],\n ['instagram', /Instagram\\s([0-9\\.]+)/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Mobile/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Gecko\\)$/],\n ['curl', /^curl\\/([0-9\\.]+)$/],\n ['searchbot', SEARCHBOX_UA_REGEX],\n];\nvar operatingSystemRules = [\n ['iOS', /iP(hone|od|ad)/],\n ['Android OS', /Android/],\n ['BlackBerry OS', /BlackBerry|BB10/],\n ['Windows Mobile', /IEMobile/],\n ['Amazon OS', /Kindle/],\n ['Windows 3.11', /Win16/],\n ['Windows 95', /(Windows 95)|(Win95)|(Windows_95)/],\n ['Windows 98', /(Windows 98)|(Win98)/],\n ['Windows 2000', /(Windows NT 5.0)|(Windows 2000)/],\n ['Windows XP', /(Windows NT 5.1)|(Windows XP)/],\n ['Windows Server 2003', /(Windows NT 5.2)/],\n ['Windows Vista', /(Windows NT 6.0)/],\n ['Windows 7', /(Windows NT 6.1)/],\n ['Windows 8', /(Windows NT 6.2)/],\n ['Windows 8.1', /(Windows NT 6.3)/],\n ['Windows 10', /(Windows NT 10.0)/],\n ['Windows ME', /Windows ME/],\n ['Windows CE', /Windows CE|WinCE|Microsoft Pocket Internet Explorer/],\n ['Open BSD', /OpenBSD/],\n ['Sun OS', /SunOS/],\n ['Chrome OS', /CrOS/],\n ['Linux', /(Linux)|(X11)/],\n ['Mac OS', /(Mac_PowerPC)|(Macintosh)/],\n ['QNX', /QNX/],\n ['BeOS', /BeOS/],\n ['OS/2', /OS\\/2/],\n];\nexport function detect(userAgent) {\n if (!!userAgent) {\n return parseUserAgent(userAgent);\n }\n if (typeof document === 'undefined' &&\n typeof navigator !== 'undefined' &&\n navigator.product === 'ReactNative') {\n return new ReactNativeInfo();\n }\n if (typeof navigator !== 'undefined') {\n return parseUserAgent(navigator.userAgent);\n }\n return getNodeVersion();\n}\nfunction matchUserAgent(ua) {\n // opted for using reduce here rather than Array#first with a regex.test call\n // this is primarily because using the reduce we only perform the regex\n // execution once rather than once for the test and for the exec again below\n // probably something that needs to be benchmarked though\n return (ua !== '' &&\n userAgentRules.reduce(function (matched, _a) {\n var browser = _a[0], regex = _a[1];\n if (matched) {\n return matched;\n }\n var uaMatch = regex.exec(ua);\n return !!uaMatch && [browser, uaMatch];\n }, false));\n}\nexport function browserName(ua) {\n var data = matchUserAgent(ua);\n return data ? data[0] : null;\n}\nexport function parseUserAgent(ua) {\n var matchedRule = matchUserAgent(ua);\n if (!matchedRule) {\n return null;\n }\n var name = matchedRule[0], match = matchedRule[1];\n if (name === 'searchbot') {\n return new BotInfo();\n }\n // Do not use RegExp for split operation as some browser do not support it (See: http://blog.stevenlevithan.com/archives/cross-browser-split)\n var versionParts = match[1] && match[1].split('.').join('_').split('_').slice(0, 3);\n if (versionParts) {\n if (versionParts.length < REQUIRED_VERSION_PARTS) {\n versionParts = __spreadArray(__spreadArray([], versionParts, true), createVersionParts(REQUIRED_VERSION_PARTS - versionParts.length), true);\n }\n }\n else {\n versionParts = [];\n }\n var version = versionParts.join('.');\n var os = detectOS(ua);\n var searchBotMatch = SEARCHBOT_OS_REGEX.exec(ua);\n if (searchBotMatch && searchBotMatch[1]) {\n return new SearchBotDeviceInfo(name, version, os, searchBotMatch[1]);\n }\n return new BrowserInfo(name, version, os);\n}\nexport function detectOS(ua) {\n for (var ii = 0, count = operatingSystemRules.length; ii < count; ii++) {\n var _a = operatingSystemRules[ii], os = _a[0], regex = _a[1];\n var match = regex.exec(ua);\n if (match) {\n return os;\n }\n }\n return null;\n}\nexport function getNodeVersion() {\n var isNode = typeof process !== 'undefined' && process.version;\n return isNode ? new NodeInfo(process.version.slice(1)) : null;\n}\nfunction createVersionParts(count) {\n var output = [];\n for (var ii = 0; ii < count; ii++) {\n output.push('0');\n }\n return output;\n}\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\nconst filterObject = require('filter-obj');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), ':list='].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), ':list=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSep = options.arrayFormat === 'bracket-separator' ?\n\t\t\t\t'[]=' :\n\t\t\t\t'=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), keyValueSep, encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\t\t}\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(:list)$/.exec(key);\n\t\t\t\tkey = key.replace(/:list$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tcase 'bracket-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[\\])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null ?\n\t\t\t\t\t[] :\n\t\t\t\t\tvalue.split(options.arrayFormatSeparator).map(item => decode(item, options));\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], arrayValue);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(query, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn ret;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of query.split('&')) {\n\t\tif (param === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (url, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url_, hash] = splitOnFirst(url, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url_.split('?')[0] || '',\n\t\t\tquery: parse(extract(url), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (object, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true\n\t}, options);\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(object.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, object.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\thash = `#${options[encodeFragmentIdentifier] ? encode(object.fragmentIdentifier, options) : object.fragmentIdentifier}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n\nexports.pick = (input, filter, options) => {\n\toptions = Object.assign({\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false\n\t}, options);\n\n\tconst {url, query, fragmentIdentifier} = exports.parseUrl(input, options);\n\treturn exports.stringifyUrl({\n\t\turl,\n\t\tquery: filterObject(query, filter),\n\t\tfragmentIdentifier\n\t}, options);\n};\n\nexports.exclude = (input, filter, options) => {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn exports.pick(input, exclusionFilter, options);\n};\n","var global = typeof self !== 'undefined' ? self : this;\nvar __self__ = (function () {\nfunction F() {\nthis.fetch = false;\nthis.DOMException = global.DOMException\n}\nF.prototype = global;\nreturn new F();\n})();\n(function(self) {\n\nvar irrelevant = (function (exports) {\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = 'statusText' in options ? options.statusText : 'OK';\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = self.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n resolve(new Response(body, options));\n };\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.onabort = function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n };\n\n xhr.open(request.method, request.url, true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob';\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!self.fetch) {\n self.fetch = fetch;\n self.Headers = Headers;\n self.Request = Request;\n self.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n return exports;\n\n})({});\n})(__self__);\n__self__.fetch.ponyfill = true;\n// Remove \"polyfill\" property added by whatwg-fetch\ndelete __self__.fetch.polyfill;\n// Choose between native implementation (global) or custom implementation (__self__)\n// var ctx = global.fetch ? global : __self__;\nvar ctx = __self__; // this line disable service worker support temporarily\nexports = ctx.fetch // To enable: import fetch from 'cross-fetch'\nexports.default = ctx.fetch // For TypeScript consumers without esModuleInterop.\nexports.fetch = ctx.fetch // To enable: import {fetch} from 'cross-fetch'\nexports.Headers = ctx.Headers\nexports.Request = ctx.Request\nexports.Response = ctx.Response\nmodule.exports = exports\n","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp('(' + token + ')|([^%]+?)', 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn [decodeURIComponent(components.join(''))];\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher) || [];\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher) || [];\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","'use strict';\nmodule.exports = function (obj, predicate) {\n\tvar ret = {};\n\tvar keys = Object.keys(obj);\n\tvar isArr = Array.isArray(predicate);\n\n\tfor (var i = 0; i < keys.length; i++) {\n\t\tvar key = keys[i];\n\t\tvar val = obj[key];\n\n\t\tif (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n\t\t\tret[key] = val;\n\t\t}\n\t}\n\n\treturn ret;\n};\n","/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright JS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = isEqual;\n","'use strict'\nfunction tryStringify (o) {\n try { return JSON.stringify(o) } catch(e) { return '\"[Circular]\"' }\n}\n\nmodule.exports = format\n\nfunction format(f, args, opts) {\n var ss = (opts && opts.stringify) || tryStringify\n var offset = 1\n if (typeof f === 'object' && f !== null) {\n var len = args.length + offset\n if (len === 1) return f\n var objects = new Array(len)\n objects[0] = ss(f)\n for (var index = 1; index < len; index++) {\n objects[index] = ss(args[index])\n }\n return objects.join(' ')\n }\n if (typeof f !== 'string') {\n return f\n }\n var argLen = args.length\n if (argLen === 0) return f\n var str = ''\n var a = 1 - offset\n var lastPos = -1\n var flen = (f && f.length) || 0\n for (var i = 0; i < flen;) {\n if (f.charCodeAt(i) === 37 && i + 1 < flen) {\n lastPos = lastPos > -1 ? lastPos : 0\n switch (f.charCodeAt(i + 1)) {\n case 100: // 'd'\n case 102: // 'f'\n if (a >= argLen)\n break\n if (args[a] == null) break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += Number(args[a])\n lastPos = i + 2\n i++\n break\n case 105: // 'i'\n if (a >= argLen)\n break\n if (args[a] == null) break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += Math.floor(Number(args[a]))\n lastPos = i + 2\n i++\n break\n case 79: // 'O'\n case 111: // 'o'\n case 106: // 'j'\n if (a >= argLen)\n break\n if (args[a] === undefined) break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n var type = typeof args[a]\n if (type === 'string') {\n str += '\\'' + args[a] + '\\''\n lastPos = i + 2\n i++\n break\n }\n if (type === 'function') {\n str += args[a].name || ''\n lastPos = i + 2\n i++\n break\n }\n str += ss(args[a])\n lastPos = i + 2\n i++\n break\n case 115: // 's'\n if (a >= argLen)\n break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += String(args[a])\n lastPos = i + 2\n i++\n break\n case 37: // '%'\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += '%'\n lastPos = i + 2\n i++\n a--\n break\n }\n ++a\n }\n ++i\n }\n if (lastPos === -1)\n return f\n else if (lastPos < flen) {\n str += f.slice(lastPos)\n }\n\n return str\n}\n","'use strict';\n\nmodule.exports = (string, separator) => {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (separator === '') {\n\t\treturn [string];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [string];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n};\n","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n","'use strict';\n\nmodule.exports = function () {\n throw new Error(\n 'ws does not work in the browser. Browser clients must use the native ' +\n 'WebSocket object'\n );\n};\n","'use strict'\n\nconst format = require('quick-format-unescaped')\n\nmodule.exports = pino\n\nconst _console = pfGlobalThisOrFallback().console || {}\nconst stdSerializers = {\n mapHttpRequest: mock,\n mapHttpResponse: mock,\n wrapRequestSerializer: passthrough,\n wrapResponseSerializer: passthrough,\n wrapErrorSerializer: passthrough,\n req: mock,\n res: mock,\n err: asErrValue\n}\n\nfunction shouldSerialize (serialize, serializers) {\n if (Array.isArray(serialize)) {\n const hasToFilter = serialize.filter(function (k) {\n return k !== '!stdSerializers.err'\n })\n return hasToFilter\n } else if (serialize === true) {\n return Object.keys(serializers)\n }\n\n return false\n}\n\nfunction pino (opts) {\n opts = opts || {}\n opts.browser = opts.browser || {}\n\n const transmit = opts.browser.transmit\n if (transmit && typeof transmit.send !== 'function') { throw Error('pino: transmit option must have a send function') }\n\n const proto = opts.browser.write || _console\n if (opts.browser.write) opts.browser.asObject = true\n const serializers = opts.serializers || {}\n const serialize = shouldSerialize(opts.browser.serialize, serializers)\n let stdErrSerialize = opts.browser.serialize\n\n if (\n Array.isArray(opts.browser.serialize) &&\n opts.browser.serialize.indexOf('!stdSerializers.err') > -1\n ) stdErrSerialize = false\n\n const levels = ['error', 'fatal', 'warn', 'info', 'debug', 'trace']\n\n if (typeof proto === 'function') {\n proto.error = proto.fatal = proto.warn =\n proto.info = proto.debug = proto.trace = proto\n }\n if (opts.enabled === false) opts.level = 'silent'\n const level = opts.level || 'info'\n const logger = Object.create(proto)\n if (!logger.log) logger.log = noop\n\n Object.defineProperty(logger, 'levelVal', {\n get: getLevelVal\n })\n Object.defineProperty(logger, 'level', {\n get: getLevel,\n set: setLevel\n })\n\n const setOpts = {\n transmit,\n serialize,\n asObject: opts.browser.asObject,\n levels,\n timestamp: getTimeFunction(opts)\n }\n logger.levels = pino.levels\n logger.level = level\n\n logger.setMaxListeners = logger.getMaxListeners =\n logger.emit = logger.addListener = logger.on =\n logger.prependListener = logger.once =\n logger.prependOnceListener = logger.removeListener =\n logger.removeAllListeners = logger.listeners =\n logger.listenerCount = logger.eventNames =\n logger.write = logger.flush = noop\n logger.serializers = serializers\n logger._serialize = serialize\n logger._stdErrSerialize = stdErrSerialize\n logger.child = child\n\n if (transmit) logger._logEvent = createLogEventShape()\n\n function getLevelVal () {\n return this.level === 'silent'\n ? Infinity\n : this.levels.values[this.level]\n }\n\n function getLevel () {\n return this._level\n }\n function setLevel (level) {\n if (level !== 'silent' && !this.levels.values[level]) {\n throw Error('unknown level ' + level)\n }\n this._level = level\n\n set(setOpts, logger, 'error', 'log') // <-- must stay first\n set(setOpts, logger, 'fatal', 'error')\n set(setOpts, logger, 'warn', 'error')\n set(setOpts, logger, 'info', 'log')\n set(setOpts, logger, 'debug', 'log')\n set(setOpts, logger, 'trace', 'log')\n }\n\n function child (bindings, childOptions) {\n if (!bindings) {\n throw new Error('missing bindings for child Pino')\n }\n childOptions = childOptions || {}\n if (serialize && bindings.serializers) {\n childOptions.serializers = bindings.serializers\n }\n const childOptionsSerializers = childOptions.serializers\n if (serialize && childOptionsSerializers) {\n var childSerializers = Object.assign({}, serializers, childOptionsSerializers)\n var childSerialize = opts.browser.serialize === true\n ? Object.keys(childSerializers)\n : serialize\n delete bindings.serializers\n applySerializers([bindings], childSerialize, childSerializers, this._stdErrSerialize)\n }\n function Child (parent) {\n this._childLevel = (parent._childLevel | 0) + 1\n this.error = bind(parent, bindings, 'error')\n this.fatal = bind(parent, bindings, 'fatal')\n this.warn = bind(parent, bindings, 'warn')\n this.info = bind(parent, bindings, 'info')\n this.debug = bind(parent, bindings, 'debug')\n this.trace = bind(parent, bindings, 'trace')\n if (childSerializers) {\n this.serializers = childSerializers\n this._serialize = childSerialize\n }\n if (transmit) {\n this._logEvent = createLogEventShape(\n [].concat(parent._logEvent.bindings, bindings)\n )\n }\n }\n Child.prototype = this\n return new Child(this)\n }\n return logger\n}\n\npino.levels = {\n values: {\n fatal: 60,\n error: 50,\n warn: 40,\n info: 30,\n debug: 20,\n trace: 10\n },\n labels: {\n 10: 'trace',\n 20: 'debug',\n 30: 'info',\n 40: 'warn',\n 50: 'error',\n 60: 'fatal'\n }\n}\n\npino.stdSerializers = stdSerializers\npino.stdTimeFunctions = Object.assign({}, { nullTime, epochTime, unixTime, isoTime })\n\nfunction set (opts, logger, level, fallback) {\n const proto = Object.getPrototypeOf(logger)\n logger[level] = logger.levelVal > logger.levels.values[level]\n ? noop\n : (proto[level] ? proto[level] : (_console[level] || _console[fallback] || noop))\n\n wrap(opts, logger, level)\n}\n\nfunction wrap (opts, logger, level) {\n if (!opts.transmit && logger[level] === noop) return\n\n logger[level] = (function (write) {\n return function LOG () {\n const ts = opts.timestamp()\n const args = new Array(arguments.length)\n const proto = (Object.getPrototypeOf && Object.getPrototypeOf(this) === _console) ? _console : this\n for (var i = 0; i < args.length; i++) args[i] = arguments[i]\n\n if (opts.serialize && !opts.asObject) {\n applySerializers(args, this._serialize, this.serializers, this._stdErrSerialize)\n }\n if (opts.asObject) write.call(proto, asObject(this, level, args, ts))\n else write.apply(proto, args)\n\n if (opts.transmit) {\n const transmitLevel = opts.transmit.level || logger.level\n const transmitValue = pino.levels.values[transmitLevel]\n const methodValue = pino.levels.values[level]\n if (methodValue < transmitValue) return\n transmit(this, {\n ts,\n methodLevel: level,\n methodValue,\n transmitLevel,\n transmitValue: pino.levels.values[opts.transmit.level || logger.level],\n send: opts.transmit.send,\n val: logger.levelVal\n }, args)\n }\n }\n })(logger[level])\n}\n\nfunction asObject (logger, level, args, ts) {\n if (logger._serialize) applySerializers(args, logger._serialize, logger.serializers, logger._stdErrSerialize)\n const argsCloned = args.slice()\n let msg = argsCloned[0]\n const o = {}\n if (ts) {\n o.time = ts\n }\n o.level = pino.levels.values[level]\n let lvl = (logger._childLevel | 0) + 1\n if (lvl < 1) lvl = 1\n // deliberate, catching objects, arrays\n if (msg !== null && typeof msg === 'object') {\n while (lvl-- && typeof argsCloned[0] === 'object') {\n Object.assign(o, argsCloned.shift())\n }\n msg = argsCloned.length ? format(argsCloned.shift(), argsCloned) : undefined\n } else if (typeof msg === 'string') msg = format(argsCloned.shift(), argsCloned)\n if (msg !== undefined) o.msg = msg\n return o\n}\n\nfunction applySerializers (args, serialize, serializers, stdErrSerialize) {\n for (const i in args) {\n if (stdErrSerialize && args[i] instanceof Error) {\n args[i] = pino.stdSerializers.err(args[i])\n } else if (typeof args[i] === 'object' && !Array.isArray(args[i])) {\n for (const k in args[i]) {\n if (serialize && serialize.indexOf(k) > -1 && k in serializers) {\n args[i][k] = serializers[k](args[i][k])\n }\n }\n }\n }\n}\n\nfunction bind (parent, bindings, level) {\n return function () {\n const args = new Array(1 + arguments.length)\n args[0] = bindings\n for (var i = 1; i < args.length; i++) {\n args[i] = arguments[i - 1]\n }\n return parent[level].apply(this, args)\n }\n}\n\nfunction transmit (logger, opts, args) {\n const send = opts.send\n const ts = opts.ts\n const methodLevel = opts.methodLevel\n const methodValue = opts.methodValue\n const val = opts.val\n const bindings = logger._logEvent.bindings\n\n applySerializers(\n args,\n logger._serialize || Object.keys(logger.serializers),\n logger.serializers,\n logger._stdErrSerialize === undefined ? true : logger._stdErrSerialize\n )\n logger._logEvent.ts = ts\n logger._logEvent.messages = args.filter(function (arg) {\n // bindings can only be objects, so reference equality check via indexOf is fine\n return bindings.indexOf(arg) === -1\n })\n\n logger._logEvent.level.label = methodLevel\n logger._logEvent.level.value = methodValue\n\n send(methodLevel, logger._logEvent, val)\n\n logger._logEvent = createLogEventShape(bindings)\n}\n\nfunction createLogEventShape (bindings) {\n return {\n ts: 0,\n messages: [],\n bindings: bindings || [],\n level: { label: '', value: 0 }\n }\n}\n\nfunction asErrValue (err) {\n const obj = {\n type: err.constructor.name,\n msg: err.message,\n stack: err.stack\n }\n for (const key in err) {\n if (obj[key] === undefined) {\n obj[key] = err[key]\n }\n }\n return obj\n}\n\nfunction getTimeFunction (opts) {\n if (typeof opts.timestamp === 'function') {\n return opts.timestamp\n }\n if (opts.timestamp === false) {\n return nullTime\n }\n return epochTime\n}\n\nfunction mock () { return {} }\nfunction passthrough (a) { return a }\nfunction noop () {}\n\nfunction nullTime () { return false }\nfunction epochTime () { return Date.now() }\nfunction unixTime () { return Math.round(Date.now() / 1000.0) }\nfunction isoTime () { return new Date(Date.now()).toISOString() } // using Date.now() for testability\n\n/* eslint-disable */\n/* istanbul ignore next */\nfunction pfGlobalThisOrFallback () {\n function defd (o) { return typeof o !== 'undefined' && o }\n try {\n if (typeof globalThis !== 'undefined') return globalThis\n Object.defineProperty(Object.prototype, 'globalThis', {\n get: function () {\n delete Object.prototype.globalThis\n return (this.globalThis = this)\n },\n configurable: true\n })\n return globalThis\n } catch (e) {\n return defd(self) || defd(window) || defd(this) || {}\n }\n}\n/* eslint-enable */\n"],"names":["int_1","require","writeUint16BE","value","out","offset","Uint8Array","writeUint16LE","readInt32BE","array","readUint32BE","readInt32LE","readUint32LE","writeUint32BE","writeUint32LE","writeUint64BE","writeUint64LE","exports","hi","lo","bitLength","Error","length","result","mul","i","isSafeInteger","div","DataView","buffer","byteOffset","byteLength","getFloat32","getFloat64","setFloat32","setFloat64","binary_1","wipe_1","ROUNDS","core","input","key","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","streamXOR","nonce","src","dst","nonceInplaceCounterLength","nc","counterLength","set","block","j","incrementCounter","wipe","counter","pos","len","carry","chacha_1","poly1305_1","constant_time_1","ZEROS","ChaCha20Poly1305","nonceLength","tagLength","this","_key","prototype","seal","plaintext","associatedData","authKey","stream","resultLength","_authenticate","subarray","open","sealed","calculatedTag","equal","clean","tagOut","ciphertext","h","Poly1305","update","tag","digest","compare","a","b","subject","resultIfOne","resultIfZero","random_1","sha512_1","gf","init","r","Float64Array","gf0","gf1","D","D2","X","Y","I","set25519","car25519","o","c","v","Math","floor","sel25519","p","q","t","pack25519","n","m","verify32","x","y","d","neq25519","par25519","add","sub","t0","t1","t2","t3","t4","t5","t6","t7","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","b10","b11","b12","b13","b14","b15","square","inv25519","edadd","e","f","g","cswap","pack","tx","ty","zi","scalarmult","s","scalarbase","generateKeyPairFromSeed","seed","concat","hash","publicKey","secretKey","L","modL","k","reduce","unpackneg","chk","num","den","den2","den4","den6","unpack25519","pow2523","message","signature","hs","SHA512","reset","saveState","restoreState","cleanSavedState","hmac_1","HKDF","salt","info","_counter","_hash","_info","okm","hmac","_hmac","HMAC","_buffer","digestLength","_bufpos","_fillBuffer","ctr","finish","expand","hash_1","_finished","_inner","_outer","blockSize","pad","isSerializableHash","_innerKeyedState","_outerKeyedState","data","savedState","imul","al","bl","Number","isInteger","isFinite","MAX_SAFE_INTEGER","DIGEST_LENGTH","_r","Uint16Array","_h","_pad","_leftover","_fin","_blocks","mpos","bytes","hibit","h0","h1","h2","h3","h4","h5","h6","h7","h8","h9","r0","r1","r2","r3","r4","r5","r6","r7","r8","r9","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","mac","macpos","mask","want","system_1","randomBytes","arguments","undefined","defaultRandomSource","SystemRandomSource","buf","ALPHANUMERIC","randomString","charset","prng","charsLen","maxByte","ceil","randomByte","charAt","bits","log","LN2","_classCallCheck","_createClass","BrowserRandomSource","isAvailable","isInstantiated","browserCrypto","self","crypto","msCrypto","getRandomValues","_crypto","min","NodeRandomSource","nodeCrypto","browser_1","node_1","name","_source","SHA256","_state","Int32Array","_temp","_bufferLength","_bytesHashed","_initState","dataLength","dataPos","hashBlocks","bytesHashed","left","bitLenHi","bitLenLo","padLength","state","bufferLength","K","w","u","BLOCK_SIZE","_stateHi","_stateLo","_tempHi","_tempLo","stateHi","stateLo","wh","wl","hh","hl","l","th","tl","ah0","ah1","ah2","ah3","ah4","ah5","ah6","ah7","al0","al1","al2","al3","al4","al5","al6","al7","bh7","bl7","bh0","bh1","bh2","bh3","bh4","bh5","bh6","bl0","bl1","bl2","bl3","bl4","bl5","bl6","_9","_121665","scalarMult","z","x32","x16","inp","scalarMultBase","mySecretKey","theirPublicKey","rejectZero","zeros","getBrowerCrypto","global","getSubtleCrypto","subtle","webkitSubtle","isReactNative","document","navigator","product","isNode","process","versions","node","tslib_1","__exportStar","asUint8Array","globalThis","Buffer","allocUnsafe","size","arrays","acc","curr","_step","output","_iterator","_createForOfIteratorHelper","done","arr","err","ALPHABET","TypeError","BASE_MAP","xc","charCodeAt","BASE","LEADER","FACTOR","iFACTOR","decodeUnsafe","source","psz","zeroes","b256","it3","it4","vch","encode","ArrayBuffer","isView","Array","isArray","from","pbegin","pend","b58","it1","it2","str","repeat","decode","string","coerce","constructor","Encoder","prefix","baseEncode","Decoder","baseDecode","codePointAt","prefixCodePoint","text","JSON","stringify","slice","decoder","or","ComposedDecoder","decoders","RangeError","Object","keys","right","_objectSpread","_defineProperty","Codec","encoder","_ref3","baseX","_ref4","alphabet","_basex","basex","rfc4648","_ref5","bitsPerChar","codes","end","written","SyntaxError","identity","TextDecoder","toString","TextEncoder","fromString","base2","base8","base10","base16","base16upper","base32","base32upper","base32pad","base32padupper","base32hex","base32hexupper","base32hexpad","base32hexpadupper","base32z","base36","base36upper","base58btc","base58flickr","base64","base64pad","base64url","base64urlpad","alphabetBytesToChars","alphabetCharsToBytes","base256emoji","byts","char","byt","push","encode_1","oldOffset","INT","MSB","MSBALL","pow","read","res","shift","REST$1","MSB$1","N1","N2","N3","N4","N5","N6","N7","N8","N9","encodingLength","varint","encodeTo","int","target","create","code","sizeOffset","digestOffset","Digest","_ref","Hasher","_this","then","sha","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","sent","abrupt","stop","_x","apply","sha256","sha512","textEncoder","textDecoder","parse","parseCIDtoBytes","Symbol","toStringTag","for","base","toStringV0","cache","cid","get","toStringV1","DAG_PB_CODE","SHA_256_CODE","encodeCID","version","multihash","codeOffset","hashOffset","cidSymbol","readonly","writable","configurable","enumerable","hidden","deprecate","range","test","console","warn","IS_CID_DEPRECATION","bases","identityBase","base58","sha2","createCodec","substring","ascii","String","fromCharCode","utf8","hex","latin1","binary","encoding","__spreadArray","to","ar","call","BrowserInfo","os","type","NodeInfo","platform","SearchBotDeviceInfo","bot","BotInfo","ReactNativeInfo","SEARCHBOT_OS_REGEX","REQUIRED_VERSION_PARTS","userAgentRules","operatingSystemRules","detect","userAgent","parseUserAgent","matchUserAgent","ua","matched","_a","browser","regex","uaMatch","exec","matchedRule","match","versionParts","split","join","count","ii","createVersionParts","detectOS","searchBotMatch","RELAY_JSONRPC","waku","publish","batchPublish","subscribe","batchSubscribe","subscription","unsubscribe","batchUnsubscribe","irn","iridium","safeJsonParse","safeJsonStringify","JWT_IRIDIUM_ALG","JWT_IRIDIUM_TYP","JWT_DELIMITER","JWT_ENCODING","JSON_ENCODING","DATA_ENCODING","DID_DELIMITER","DID_PREFIX","DID_METHOD","MULTICODEC_ED25519_ENCODING","MULTICODEC_ED25519_BASE","MULTICODEC_ED25519_HEADER","encodeJSON","val","encodeIss","header","multicodec","encodeJWT","params","payload","generateKeyPair","ed25519","signJWT","_x2","_x3","_x4","_signJWT","aud","ttl","keyPair","iat","iss","_args","fromMiliseconds","Date","now","alg","typ","exp","JsonRpcProvider","_IJsonRpcProvider","_inherits","_super","_createSuper","connection","events","EventEmitter","hasRegisteredEventListeners","setConnection","connected","registerEventListeners","_connect","_disconnect","_callee2","_context2","close","event","listener","on","once","off","removeListener","_request2","_callee3","request","context","_context3","requestStrict","formatJsonRpcRequest","method","_requestStrict","_callee5","_this2","_context5","Promise","_callee4","resolve","reject","_context4","id","response","isJsonRpcError","error","send","_x5","_x6","emit","isJsonRpcResponse","reason","_open","_callee6","_args6","_context6","_close","_callee7","_context7","_this3","onPayload","onClose","IJsonRpcProvider","WS","WebSocket","window","WsConnection","url","registering","isWsUrl","socket","register","onclose","_send","onError","currentMaxListeners","getMaxListeners","listenerCount","setMaxListeners","resetMaxListeners","opts","rejectUnauthorized","isLocalhostUrl","onerror","errorEvent","emitError","onopen","onOpen","onmessage","parseError","formatJsonRpcError","parseConnectionError","DEFAULT_FETCH_OPTS","headers","Accept","HttpConnection","isHttpUrl","body","fetch","assign","json","_register","_args4","jsonrpc","IEvents","time_1","FIVE_SECONDS","pulse","events_1","types_1","constants_1","HeartBeat","_types_1$IHeartBeat","interval","HEARTBEAT_INTERVAL","initialize","clearInterval","intervalRef","setInterval","toMiliseconds","HEARTBEAT_EVENTS","heartbeat","IHeartBeat","_events_1$IEvents","_IBaseJsonRpcProvider","_super3","_IEvents2","IBaseJsonRpcProvider","_super2","INTERNAL_ERROR","SERVER_ERROR","RESERVED_ERROR_CODES","STANDARD_ERROR_MAP","_STANDARD_ERROR_MAP","DEFAULT_ERROR","isReservedErrorCode","getError","includes","getErrorByCode","values","find","random","formatJsonRpcResult","formatErrorMessage","HTTP_REGEX","WS_REGEX","matchRegexProtocol","protocol","matches","RegExp","getUrlProtocol","isJsonRpcPayload","isJsonRpcRequest","isJsonRpcResult","safe_json_utils_1","localStorage_1","__importDefault","shared_1","KeyValueStorage","localStorage","default","entries","map","parseEntry","item","getItem","setItem","removeItem","db","LocalStorage","hasOwnProperty","clear","forEach","__defineGetter__","module","IKeyValueStorage","entry","level","pino_1","getBrowserLoggerContext","logger","PINO_CUSTOM_CONTEXT_KEY","setBrowserLoggerContext","getLoggerContext","customContextKey","bindings","formatChildLoggerContext","childContext","parentContext","trim","PINO_LOGGER_DEFAULTS","child","SIXTY_SECONDS","ONE_MINUTE","SIXTY_MINUTES","ONE_HOUR","TWENTY_FOUR_HOURS","ONE_DAY","SEVEN_DAYS","ONE_WEEK","IWatch","seconds","ONE_THOUSAND","miliseconds","timeout","setTimeout","Watch","timestamps","Map","label","has","started","timestamp","elapsed","_slicedToArray","_toConsumableArray","strictUriEncode","decodeComponent","splitOnFirst","filterObject","encodeFragmentIdentifier","validateArrayFormatSeparator","options","strict","encodeURIComponent","keysSorter","sort","removeHash","hashStart","indexOf","extract","queryStart","parseValue","parseNumbers","isNaN","parseBooleans","toLowerCase","query","arrayFormat","arrayFormatSeparator","formatter","accumulator","replace","isEncodedArray","newValue","arrayValue","parserForArrayFormat","ret","param","_splitOnFirst","_splitOnFirst2","_i","_Object$keys","_i2","_Object$keys2","Boolean","object","shouldFilter","skipNull","skipEmptyString","index","keyValueSep","encoderForArrayFormat","objectCopy","_i3","_Object$keys3","filter","parseUrl","_splitOnFirst3","_splitOnFirst4","url_","parseFragmentIdentifier","fragmentIdentifier","stringifyUrl","queryFromUrl","parsedQueryFromUrl","queryString","getHash","pick","_exports$parseUrl","exclude","exclusionFilter","getFromWindow","getFromWindowOrThrow","window_getters_1","doc","loc","getDocumentOrThrow","getLocationOrThrow","getWindowMetadataOfAny","_len","args","metaTags","getElementsByTagName","_loop","attributes","getAttribute","attr","content","_ret","title","getName","description","origin","icons","links","link","rel","href","absoluteHref","host","path","pathname","pop","absoluteUrl","getIcons","__self__","F","DOMException","support","searchParams","iterable","blob","Blob","formData","arrayBuffer","viewClasses","isArrayBufferView","obj","normalizeName","normalizeValue","iteratorFor","items","iterator","Headers","append","getOwnPropertyNames","consumed","bodyUsed","fileReaderReady","reader","onload","readBlobAsArrayBuffer","FileReader","promise","readAsArrayBuffer","bufferClone","view","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","FormData","_bodyFormData","URLSearchParams","_bodyArrayBuffer","rejected","readAsText","readBlobAsText","chars","readArrayBufferAsText","oldValue","callback","thisArg","methods","Request","credentials","mode","signal","upcased","toUpperCase","normalizeMethod","referrer","form","decodeURIComponent","parseHeaders","rawHeaders","line","parts","Response","bodyInit","status","ok","statusText","clone","redirectStatuses","redirect","location","stack","aborted","xhr","XMLHttpRequest","abortXhr","abort","getAllResponseHeaders","responseURL","responseText","ontimeout","onabort","withCredentials","responseType","setRequestHeader","addEventListener","onreadystatechange","readyState","removeEventListener","polyfill","defineProperty","ponyfill","ctx","token","singleMatcher","multiMatcher","decodeComponents","components","tokens","encodedURI","replaceMap","customDecodeURIComponent","predicate","isArr","HASH_UNDEFINED","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","argsTag","arrayTag","asyncTag","boolTag","dateTag","errorTag","funcTag","genTag","mapTag","numberTag","nullTag","objectTag","promiseTag","proxyTag","regexpTag","setTag","stringTag","symbolTag","undefinedTag","weakMapTag","arrayBufferTag","dataViewTag","reIsHostCtor","reIsUint","typedArrayTags","freeGlobal","freeSelf","root","Function","freeExports","nodeType","freeModule","moduleExports","freeProcess","nodeUtil","binding","nodeIsTypedArray","isTypedArray","arraySome","mapToArray","setToArray","func","transform","arrayProto","funcProto","objectProto","coreJsData","funcToString","maskSrcKey","uid","IE_PROTO","nativeObjectToString","reIsNative","propertyIsEnumerable","splice","symToStringTag","nativeGetSymbols","getOwnPropertySymbols","nativeIsBuffer","isBuffer","nativeKeys","arg","getNative","Set","WeakMap","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","valueOf","Hash","ListCache","MapCache","SetCache","__data__","Stack","arrayLikeKeys","inherited","isArg","isArguments","isBuff","isType","skipIndexes","iteratee","baseTimes","isIndex","assocIndexOf","eq","baseGetTag","isOwn","unmasked","getRawTag","objectToString","baseIsArguments","isObjectLike","baseIsEqual","other","bitmask","customizer","equalFunc","objIsArr","othIsArr","objTag","getTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","convert","isPartial","stacked","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","getAllKeys","objLength","othProps","othLength","skipCtor","objValue","othValue","compared","objCtor","othCtor","equalObjects","baseIsEqualDeep","baseIsNative","isObject","isMasked","isFunction","baseKeys","Ctor","proto","isPrototype","arrLength","seen","arrValue","othIndex","keysFunc","symbolsFunc","arrayPush","baseGetAllKeys","getSymbols","getMapData","isKeyable","getValue","pairs","LARGE_ARRAY_SIZE","resIndex","arrayFilter","symbol","ctorString","isLength","baseUnary","tryStringify","ss","objects","argLen","lastPos","flen","separator","separatorIndex","format","pino","_console","defd","pfGlobalThisOrFallback","stdSerializers","mapHttpRequest","mock","mapHttpResponse","wrapRequestSerializer","passthrough","wrapResponseSerializer","wrapErrorSerializer","req","msg","transmit","write","asObject","serializers","serialize","shouldSerialize","stdErrSerialize","fatal","debug","trace","enabled","noop","Infinity","levels","_level","setOpts","getTimeFunction","addListener","prependListener","prependOnceListener","removeAllListeners","listeners","eventNames","flush","_serialize","_stdErrSerialize","childOptions","childOptionsSerializers","childSerializers","childSerialize","applySerializers","Child","parent","_childLevel","bind","_logEvent","createLogEventShape","fallback","getPrototypeOf","levelVal","ts","argsCloned","time","lvl","transmitLevel","transmitValue","methodValue","methodLevel","messages","nullTime","epochTime","labels","stdTimeFunctions","unixTime","round","isoTime","toISOString"],"sourceRoot":""}