@learncard/ethereum-plugin 1.0.5 → 1.0.6
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/ethereum-plugin.cjs.development.js +11 -1
- package/dist/ethereum-plugin.cjs.development.js.map +2 -2
- package/dist/ethereum-plugin.cjs.production.min.js +1 -1
- package/dist/ethereum-plugin.cjs.production.min.js.map +2 -2
- package/dist/ethereum-plugin.esm.js +11 -1
- package/dist/ethereum-plugin.esm.js.map +2 -2
- package/package.json +1 -1
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../../../../node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js", "../../../../node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js", "../../../../node_modules/.pnpm/buffer@5.7.1/node_modules/buffer/index.js", "../../../../node_modules/.pnpm/buffer@5.7.1/node_modules/buffer/index.js", "../../../../node_modules/.pnpm/bn.js@5.2.1/node_modules/bn.js/lib/bn.js", "../../../../node_modules/.pnpm/js-sha3@0.8.0/node_modules/js-sha3/src/sha3.js", "../../../../node_modules/.pnpm/minimalistic-assert@1.0.1/node_modules/minimalistic-assert/index.js", "../../../../node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits_browser.js", "../../../../node_modules/.pnpm/hash.js@1.1.7/node_modules/hash.js/lib/hash/utils.js", "../../../../node_modules/.pnpm/hash.js@1.1.7/node_modules/hash.js/lib/hash/common.js", "../../../../node_modules/.pnpm/hash.js@1.1.7/node_modules/hash.js/lib/hash/sha/common.js", "../../../../node_modules/.pnpm/hash.js@1.1.7/node_modules/hash.js/lib/hash/sha/1.js", "../../../../node_modules/.pnpm/hash.js@1.1.7/node_modules/hash.js/lib/hash/sha/256.js", "../../../../node_modules/.pnpm/hash.js@1.1.7/node_modules/hash.js/lib/hash/sha/224.js", "../../../../node_modules/.pnpm/hash.js@1.1.7/node_modules/hash.js/lib/hash/sha/512.js", "../../../../node_modules/.pnpm/hash.js@1.1.7/node_modules/hash.js/lib/hash/sha/384.js", "../../../../node_modules/.pnpm/hash.js@1.1.7/node_modules/hash.js/lib/hash/sha.js", "../../../../node_modules/.pnpm/hash.js@1.1.7/node_modules/hash.js/lib/hash/ripemd.js", "../../../../node_modules/.pnpm/hash.js@1.1.7/node_modules/hash.js/lib/hash/hmac.js", "../../../../node_modules/.pnpm/hash.js@1.1.7/node_modules/hash.js/lib/hash.js", "../../../../node_modules/.pnpm/aes-js@3.0.0/node_modules/aes-js/index.js", "../../../../node_modules/.pnpm/scrypt-js@3.0.1/node_modules/scrypt-js/scrypt.js", "../../../../node_modules/.pnpm/bech32@1.1.4/node_modules/bech32/index.js", "../src/index.ts", "../../../../node_modules/.pnpm/ethers@5.6.9/node_modules/ethers/src.ts/ethers.ts", "../../../../node_modules/.pnpm/@ethersproject+bignumber@5.6.2/node_modules/@ethersproject/bignumber/src.ts/bignumber.ts", "../../../../node_modules/.pnpm/@ethersproject+logger@5.6.0/node_modules/@ethersproject/logger/src.ts/_version.ts", "../../../../node_modules/.pnpm/@ethersproject+logger@5.6.0/node_modules/@ethersproject/logger/src.ts/index.ts", "../../../../node_modules/.pnpm/@ethersproject+bytes@5.6.1/node_modules/@ethersproject/bytes/src.ts/_version.ts", "../../../../node_modules/.pnpm/@ethersproject+bytes@5.6.1/node_modules/@ethersproject/bytes/src.ts/index.ts", "../../../../node_modules/.pnpm/@ethersproject+bignumber@5.6.2/node_modules/@ethersproject/bignumber/src.ts/_version.ts", "../../../../node_modules/.pnpm/@ethersproject+bignumber@5.6.2/node_modules/@ethersproject/bignumber/src.ts/fixednumber.ts", "../../../../node_modules/.pnpm/@ethersproject+properties@5.6.0/node_modules/@ethersproject/properties/src.ts/_version.ts", "../../../../node_modules/.pnpm/@ethersproject+properties@5.6.0/node_modules/@ethersproject/properties/src.ts/index.ts", "../../../../node_modules/.pnpm/@ethersproject+abi@5.6.4/node_modules/@ethersproject/abi/src.ts/_version.ts", "../../../../node_modules/.pnpm/@ethersproject+abi@5.6.4/node_modules/@ethersproject/abi/src.ts/fragments.ts", "../../../../node_modules/.pnpm/@ethersproject+abi@5.6.4/node_modules/@ethersproject/abi/src.ts/coders/abstract-coder.ts", "../../../../node_modules/.pnpm/@ethersproject+keccak256@5.6.1/node_modules/@ethersproject/keccak256/src.ts/index.ts", "../../../../node_modules/.pnpm/@ethersproject+rlp@5.6.1/node_modules/@ethersproject/rlp/src.ts/index.ts", "../../../../node_modules/.pnpm/@ethersproject+rlp@5.6.1/node_modules/@ethersproject/rlp/src.ts/_version.ts", "../../../../node_modules/.pnpm/@ethersproject+address@5.6.1/node_modules/@ethersproject/address/src.ts/_version.ts", "../../../../node_modules/.pnpm/@ethersproject+address@5.6.1/node_modules/@ethersproject/address/src.ts/index.ts", "../../../../node_modules/.pnpm/@ethersproject+abi@5.6.4/node_modules/@ethersproject/abi/src.ts/coders/address.ts", "../../../../node_modules/.pnpm/@ethersproject+abi@5.6.4/node_modules/@ethersproject/abi/src.ts/coders/anonymous.ts", "../../../../node_modules/.pnpm/@ethersproject+abi@5.6.4/node_modules/@ethersproject/abi/src.ts/coders/array.ts", "../../../../node_modules/.pnpm/@ethersproject+abi@5.6.4/node_modules/@ethersproject/abi/src.ts/coders/boolean.ts", "../../../../node_modules/.pnpm/@ethersproject+abi@5.6.4/node_modules/@ethersproject/abi/src.ts/coders/bytes.ts", "../../../../node_modules/.pnpm/@ethersproject+abi@5.6.4/node_modules/@ethersproject/abi/src.ts/coders/fixed-bytes.ts", "../../../../node_modules/.pnpm/@ethersproject+abi@5.6.4/node_modules/@ethersproject/abi/src.ts/coders/null.ts", "../../../../node_modules/.pnpm/@ethersproject+constants@5.6.1/node_modules/@ethersproject/constants/src.ts/index.ts", "../../../../node_modules/.pnpm/@ethersproject+constants@5.6.1/node_modules/@ethersproject/constants/src.ts/addresses.ts", "../../../../node_modules/.pnpm/@ethersproject+constants@5.6.1/node_modules/@ethersproject/constants/src.ts/bignumbers.ts", "../../../../node_modules/.pnpm/@ethersproject+constants@5.6.1/node_modules/@ethersproject/constants/src.ts/hashes.ts", "../../../../node_modules/.pnpm/@ethersproject+constants@5.6.1/node_modules/@ethersproject/constants/src.ts/strings.ts", "../../../../node_modules/.pnpm/@ethersproject+abi@5.6.4/node_modules/@ethersproject/abi/src.ts/coders/number.ts", "../../../../node_modules/.pnpm/@ethersproject+strings@5.6.1/node_modules/@ethersproject/strings/src.ts/_version.ts", "../../../../node_modules/.pnpm/@ethersproject+strings@5.6.1/node_modules/@ethersproject/strings/src.ts/utf8.ts", "../../../../node_modules/.pnpm/@ethersproject+strings@5.6.1/node_modules/@ethersproject/strings/src.ts/bytes32.ts", "../../../../node_modules/.pnpm/@ethersproject+strings@5.6.1/node_modules/@ethersproject/strings/src.ts/idna.ts", "../../../../node_modules/.pnpm/@ethersproject+abi@5.6.4/node_modules/@ethersproject/abi/src.ts/coders/string.ts", "../../../../node_modules/.pnpm/@ethersproject+abi@5.6.4/node_modules/@ethersproject/abi/src.ts/coders/tuple.ts", "../../../../node_modules/.pnpm/@ethersproject+abi@5.6.4/node_modules/@ethersproject/abi/src.ts/abi-coder.ts", "../../../../node_modules/.pnpm/@ethersproject+hash@5.6.1/node_modules/@ethersproject/hash/src.ts/id.ts", "../../../../node_modules/.pnpm/@ethersproject+hash@5.6.1/node_modules/@ethersproject/hash/src.ts/_version.ts", "../../../../node_modules/.pnpm/@ethersproject+hash@5.6.1/node_modules/@ethersproject/hash/src.ts/namehash.ts", "../../../../node_modules/.pnpm/@ethersproject+hash@5.6.1/node_modules/@ethersproject/hash/src.ts/message.ts", "../../../../node_modules/.pnpm/@ethersproject+hash@5.6.1/node_modules/@ethersproject/hash/src.ts/typed-data.ts", "../../../../node_modules/.pnpm/@ethersproject+abi@5.6.4/node_modules/@ethersproject/abi/src.ts/interface.ts", "../../../../node_modules/.pnpm/@ethersproject+abstract-provider@5.6.1/node_modules/@ethersproject/abstract-provider/src.ts/_version.ts", "../../../../node_modules/.pnpm/@ethersproject+abstract-provider@5.6.1/node_modules/@ethersproject/abstract-provider/src.ts/index.ts", "../../../../node_modules/.pnpm/@ethersproject+abstract-signer@5.6.2/node_modules/@ethersproject/abstract-signer/src.ts/_version.ts", "../../../../node_modules/.pnpm/@ethersproject+abstract-signer@5.6.2/node_modules/@ethersproject/abstract-signer/src.ts/index.ts", "../../../../node_modules/.pnpm/@ethersproject+signing-key@5.6.2/node_modules/node_modules/minimalistic-assert/index.js", "../../../../node_modules/.pnpm/@ethersproject+signing-key@5.6.2/node_modules/node_modules/minimalistic-crypto-utils/lib/utils.js", "../../../../node_modules/.pnpm/@ethersproject+signing-key@5.6.2/node_modules/node_modules/elliptic/lib/elliptic/utils.js", "../../../../node_modules/.pnpm/@ethersproject+signing-key@5.6.2/node_modules/node_modules/elliptic/lib/elliptic/curve/base.js", "../../../../node_modules/.pnpm/@ethersproject+signing-key@5.6.2/node_modules/node_modules/inherits/inherits_browser.js", "../../../../node_modules/.pnpm/@ethersproject+signing-key@5.6.2/node_modules/node_modules/elliptic/lib/elliptic/curve/short.js", "../../../../node_modules/.pnpm/@ethersproject+signing-key@5.6.2/node_modules/node_modules/elliptic/lib/elliptic/curve/index.js", "../../../../node_modules/.pnpm/@ethersproject+signing-key@5.6.2/node_modules/node_modules/elliptic/lib/elliptic/curves.js", "../../../../node_modules/.pnpm/@ethersproject+signing-key@5.6.2/node_modules/node_modules/hmac-drbg/lib/hmac-drbg.js", "../../../../node_modules/.pnpm/@ethersproject+signing-key@5.6.2/node_modules/node_modules/elliptic/lib/elliptic/ec/key.js", "../../../../node_modules/.pnpm/@ethersproject+signing-key@5.6.2/node_modules/node_modules/elliptic/lib/elliptic/ec/signature.js", "../../../../node_modules/.pnpm/@ethersproject+signing-key@5.6.2/node_modules/node_modules/elliptic/lib/elliptic/ec/index.js", "../../../../node_modules/.pnpm/@ethersproject+signing-key@5.6.2/node_modules/node_modules/elliptic/lib/elliptic.js", "../../../../node_modules/.pnpm/@ethersproject+signing-key@5.6.2/node_modules/@ethersproject/signing-key/lib.esm/elliptic.js", "../../../../node_modules/.pnpm/@ethersproject+signing-key@5.6.2/node_modules/@ethersproject/signing-key/src.ts/_version.ts", "../../../../node_modules/.pnpm/@ethersproject+signing-key@5.6.2/node_modules/@ethersproject/signing-key/src.ts/index.ts", "../../../../node_modules/.pnpm/@ethersproject+transactions@5.6.2/node_modules/@ethersproject/transactions/src.ts/_version.ts", "../../../../node_modules/.pnpm/@ethersproject+transactions@5.6.2/node_modules/@ethersproject/transactions/src.ts/index.ts", "../../../../node_modules/.pnpm/@ethersproject+contracts@5.6.2/node_modules/@ethersproject/contracts/src.ts/_version.ts", "../../../../node_modules/.pnpm/@ethersproject+contracts@5.6.2/node_modules/@ethersproject/contracts/src.ts/index.ts", "../../../../node_modules/.pnpm/@ethersproject+basex@5.6.1/node_modules/@ethersproject/basex/src.ts/index.ts", "../../../../node_modules/.pnpm/@ethersproject+sha2@5.6.1/node_modules/@ethersproject/sha2/src.ts/browser-sha2.ts", "../../../../node_modules/.pnpm/@ethersproject+sha2@5.6.1/node_modules/@ethersproject/sha2/src.ts/types.ts", "../../../../node_modules/.pnpm/@ethersproject+sha2@5.6.1/node_modules/@ethersproject/sha2/src.ts/_version.ts", "../../../../node_modules/.pnpm/@ethersproject+pbkdf2@5.6.1/node_modules/@ethersproject/pbkdf2/src.ts/browser-pbkdf2.ts", "../../../../node_modules/.pnpm/@ethersproject+wordlists@5.6.1/node_modules/@ethersproject/wordlists/src.ts/_version.ts", "../../../../node_modules/.pnpm/@ethersproject+wordlists@5.6.1/node_modules/@ethersproject/wordlists/src.ts/wordlist.ts", "../../../../node_modules/.pnpm/@ethersproject+wordlists@5.6.1/node_modules/@ethersproject/wordlists/src.ts/lang-en.ts", "../../../../node_modules/.pnpm/@ethersproject+wordlists@5.6.1/node_modules/@ethersproject/wordlists/src.ts/browser-wordlists.ts", "../../../../node_modules/.pnpm/@ethersproject+hdnode@5.6.2/node_modules/@ethersproject/hdnode/src.ts/_version.ts", "../../../../node_modules/.pnpm/@ethersproject+hdnode@5.6.2/node_modules/@ethersproject/hdnode/src.ts/index.ts", "../../../../node_modules/.pnpm/@ethersproject+random@5.6.1/node_modules/@ethersproject/random/src.ts/_version.ts", "../../../../node_modules/.pnpm/@ethersproject+random@5.6.1/node_modules/@ethersproject/random/src.ts/browser-random.ts", "../../../../node_modules/.pnpm/@ethersproject+random@5.6.1/node_modules/@ethersproject/random/src.ts/shuffle.ts", "../../../../node_modules/.pnpm/@ethersproject+json-wallets@5.6.1/node_modules/@ethersproject/json-wallets/src.ts/crowdsale.ts", "../../../../node_modules/.pnpm/@ethersproject+json-wallets@5.6.1/node_modules/@ethersproject/json-wallets/src.ts/_version.ts", "../../../../node_modules/.pnpm/@ethersproject+json-wallets@5.6.1/node_modules/@ethersproject/json-wallets/src.ts/utils.ts", "../../../../node_modules/.pnpm/@ethersproject+json-wallets@5.6.1/node_modules/@ethersproject/json-wallets/src.ts/inspect.ts", "../../../../node_modules/.pnpm/@ethersproject+json-wallets@5.6.1/node_modules/@ethersproject/json-wallets/src.ts/keystore.ts", "../../../../node_modules/.pnpm/@ethersproject+json-wallets@5.6.1/node_modules/@ethersproject/json-wallets/src.ts/index.ts", "../../../../node_modules/.pnpm/@ethersproject+wallet@5.6.2/node_modules/@ethersproject/wallet/src.ts/_version.ts", "../../../../node_modules/.pnpm/@ethersproject+wallet@5.6.2/node_modules/@ethersproject/wallet/src.ts/index.ts", "../../../../node_modules/.pnpm/@ethersproject+providers@5.6.8/node_modules/@ethersproject/providers/src.ts/index.ts", "../../../../node_modules/.pnpm/@ethersproject+networks@5.6.4/node_modules/@ethersproject/networks/src.ts/_version.ts", "../../../../node_modules/.pnpm/@ethersproject+networks@5.6.4/node_modules/@ethersproject/networks/src.ts/index.ts", "../../../../node_modules/.pnpm/@ethersproject+base64@5.6.1/node_modules/@ethersproject/base64/src.ts/index.ts", "../../../../node_modules/.pnpm/@ethersproject+base64@5.6.1/node_modules/@ethersproject/base64/src.ts/browser-base64.ts", "../../../../node_modules/.pnpm/@ethersproject+web@5.6.1/node_modules/@ethersproject/web/src.ts/_version.ts", "../../../../node_modules/.pnpm/@ethersproject+web@5.6.1/node_modules/@ethersproject/web/src.ts/browser-geturl.ts", "../../../../node_modules/.pnpm/@ethersproject+web@5.6.1/node_modules/@ethersproject/web/src.ts/index.ts", "../../../../node_modules/.pnpm/@ethersproject+providers@5.6.8/node_modules/@ethersproject/providers/src.ts/base-provider.ts", "../../../../node_modules/.pnpm/@ethersproject+providers@5.6.8/node_modules/@ethersproject/providers/src.ts/_version.ts", "../../../../node_modules/.pnpm/@ethersproject+providers@5.6.8/node_modules/@ethersproject/providers/src.ts/formatter.ts", "../../../../node_modules/.pnpm/@ethersproject+providers@5.6.8/node_modules/@ethersproject/providers/src.ts/json-rpc-provider.ts", "../../../../node_modules/.pnpm/@ethersproject+providers@5.6.8/node_modules/@ethersproject/providers/src.ts/browser-ws.ts", "../../../../node_modules/.pnpm/@ethersproject+providers@5.6.8/node_modules/@ethersproject/providers/src.ts/websocket-provider.ts", "../../../../node_modules/.pnpm/@ethersproject+providers@5.6.8/node_modules/@ethersproject/providers/src.ts/url-json-rpc-provider.ts", "../../../../node_modules/.pnpm/@ethersproject+providers@5.6.8/node_modules/@ethersproject/providers/src.ts/alchemy-provider.ts", "../../../../node_modules/.pnpm/@ethersproject+providers@5.6.8/node_modules/@ethersproject/providers/src.ts/ankr-provider.ts", "../../../../node_modules/.pnpm/@ethersproject+providers@5.6.8/node_modules/@ethersproject/providers/src.ts/cloudflare-provider.ts", "../../../../node_modules/.pnpm/@ethersproject+providers@5.6.8/node_modules/@ethersproject/providers/src.ts/etherscan-provider.ts", "../../../../node_modules/.pnpm/@ethersproject+providers@5.6.8/node_modules/@ethersproject/providers/src.ts/fallback-provider.ts", "../../../../node_modules/.pnpm/@ethersproject+providers@5.6.8/node_modules/@ethersproject/providers/src.ts/browser-ipc-provider.ts", "../../../../node_modules/.pnpm/@ethersproject+providers@5.6.8/node_modules/@ethersproject/providers/src.ts/infura-provider.ts", "../../../../node_modules/.pnpm/@ethersproject+providers@5.6.8/node_modules/@ethersproject/providers/src.ts/json-rpc-batch-provider.ts", "../../../../node_modules/.pnpm/@ethersproject+providers@5.6.8/node_modules/@ethersproject/providers/src.ts/nodesmith-provider.ts", "../../../../node_modules/.pnpm/@ethersproject+providers@5.6.8/node_modules/@ethersproject/providers/src.ts/pocket-provider.ts", "../../../../node_modules/.pnpm/@ethersproject+providers@5.6.8/node_modules/@ethersproject/providers/src.ts/web3-provider.ts", "../../../../node_modules/.pnpm/ethers@5.6.9/node_modules/ethers/src.ts/utils.ts", "../../../../node_modules/.pnpm/@ethersproject+solidity@5.6.1/node_modules/@ethersproject/solidity/src.ts/_version.ts", "../../../../node_modules/.pnpm/@ethersproject+solidity@5.6.1/node_modules/@ethersproject/solidity/src.ts/index.ts", "../../../../node_modules/.pnpm/@ethersproject+units@5.6.1/node_modules/@ethersproject/units/src.ts/_version.ts", "../../../../node_modules/.pnpm/@ethersproject+units@5.6.1/node_modules/@ethersproject/units/src.ts/index.ts", "../../../../node_modules/.pnpm/ethers@5.6.9/node_modules/ethers/src.ts/_version.ts", "../../../../node_modules/.pnpm/ethers@5.6.9/node_modules/ethers/src.ts/index.ts", "../src/helpers.ts", "../src/hardcodedTokens.ts"],
|
4
|
-
"sourcesContent": ["'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n", "/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n", "/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nvar K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n var arr = new Uint8Array(1)\n var proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n var buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n var valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n var b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(\n value[Symbol.toPrimitive]('string'), encodingOrOffset, length\n )\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n var length = byteLength(string, encoding) | 0\n var buf = createBuffer(length)\n\n var actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n var copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n var buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n Buffer.from(buf).copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n var len = string.length\n var mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return '<Buffer ' + str + '>'\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n var strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (var i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n var len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nvar hexSliceLookupTable = (function () {\n var alphabet = '0123456789abcdef'\n var table = new Array(256)\n for (var i = 0; i < 16; ++i) {\n var i16 = i * 16\n for (var j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n", "", "(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n", "/**\n * [js-sha3]{@link https://github.com/emn178/js-sha3}\n *\n * @version 0.8.0\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2015-2018\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var INPUT_ERROR = 'input is invalid type';\n var FINALIZE_ERROR = 'finalize already called';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA3_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA3_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA3_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA3_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var SHAKE_PADDING = [31, 7936, 2031616, 520093696];\n var CSHAKE_PADDING = [4, 1024, 262144, 67108864];\n var KECCAK_PADDING = [1, 256, 65536, 16777216];\n var PADDING = [6, 1536, 393216, 100663296];\n var SHIFT = [0, 8, 16, 24];\n var RC = [1, 0, 32898, 0, 32906, 2147483648, 2147516416, 2147483648, 32907, 0, 2147483649,\n 0, 2147516545, 2147483648, 32777, 2147483648, 138, 0, 136, 0, 2147516425, 0,\n 2147483658, 0, 2147516555, 0, 139, 2147483648, 32905, 2147483648, 32771,\n 2147483648, 32770, 2147483648, 128, 2147483648, 32778, 0, 2147483658, 2147483648,\n 2147516545, 2147483648, 32896, 2147483648, 2147483649, 0, 2147516424, 2147483648];\n var BITS = [224, 256, 384, 512];\n var SHAKE_BITS = [128, 256];\n var OUTPUT_TYPES = ['hex', 'buffer', 'arrayBuffer', 'array', 'digest'];\n var CSHAKE_BYTEPAD = {\n '128': 168,\n '256': 136\n };\n\n if (root.JS_SHA3_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n if (ARRAY_BUFFER && (root.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n var createOutputMethod = function (bits, padding, outputType) {\n return function (message) {\n return new Keccak(bits, padding, bits).update(message)[outputType]();\n };\n };\n\n var createShakeOutputMethod = function (bits, padding, outputType) {\n return function (message, outputBits) {\n return new Keccak(bits, padding, outputBits).update(message)[outputType]();\n };\n };\n\n var createCshakeOutputMethod = function (bits, padding, outputType) {\n return function (message, outputBits, n, s) {\n return methods['cshake' + bits].update(message, outputBits, n, s)[outputType]();\n };\n };\n\n var createKmacOutputMethod = function (bits, padding, outputType) {\n return function (key, message, outputBits, s) {\n return methods['kmac' + bits].update(key, message, outputBits, s)[outputType]();\n };\n };\n\n var createOutputMethods = function (method, createMethod, bits, padding) {\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createMethod(bits, padding, type);\n }\n return method;\n };\n\n var createMethod = function (bits, padding) {\n var method = createOutputMethod(bits, padding, 'hex');\n method.create = function () {\n return new Keccak(bits, padding, bits);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n return createOutputMethods(method, createOutputMethod, bits, padding);\n };\n\n var createShakeMethod = function (bits, padding) {\n var method = createShakeOutputMethod(bits, padding, 'hex');\n method.create = function (outputBits) {\n return new Keccak(bits, padding, outputBits);\n };\n method.update = function (message, outputBits) {\n return method.create(outputBits).update(message);\n };\n return createOutputMethods(method, createShakeOutputMethod, bits, padding);\n };\n\n var createCshakeMethod = function (bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createCshakeOutputMethod(bits, padding, 'hex');\n method.create = function (outputBits, n, s) {\n if (!n && !s) {\n return methods['shake' + bits].create(outputBits);\n } else {\n return new Keccak(bits, padding, outputBits).bytepad([n, s], w);\n }\n };\n method.update = function (message, outputBits, n, s) {\n return method.create(outputBits, n, s).update(message);\n };\n return createOutputMethods(method, createCshakeOutputMethod, bits, padding);\n };\n\n var createKmacMethod = function (bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createKmacOutputMethod(bits, padding, 'hex');\n method.create = function (key, outputBits, s) {\n return new Kmac(bits, padding, outputBits).bytepad(['KMAC', s], w).bytepad([key], w);\n };\n method.update = function (key, message, outputBits, s) {\n return method.create(key, outputBits, s).update(message);\n };\n return createOutputMethods(method, createKmacOutputMethod, bits, padding);\n };\n\n var algorithms = [\n { name: 'keccak', padding: KECCAK_PADDING, bits: BITS, createMethod: createMethod },\n { name: 'sha3', padding: PADDING, bits: BITS, createMethod: createMethod },\n { name: 'shake', padding: SHAKE_PADDING, bits: SHAKE_BITS, createMethod: createShakeMethod },\n { name: 'cshake', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createCshakeMethod },\n { name: 'kmac', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createKmacMethod }\n ];\n\n var methods = {}, methodNames = [];\n\n for (var i = 0; i < algorithms.length; ++i) {\n var algorithm = algorithms[i];\n var bits = algorithm.bits;\n for (var j = 0; j < bits.length; ++j) {\n var methodName = algorithm.name + '_' + bits[j];\n methodNames.push(methodName);\n methods[methodName] = algorithm.createMethod(bits[j], algorithm.padding);\n if (algorithm.name !== 'sha3') {\n var newMethodName = algorithm.name + bits[j];\n methodNames.push(newMethodName);\n methods[newMethodName] = methods[methodName];\n }\n }\n }\n\n function Keccak(bits, padding, outputBits) {\n this.blocks = [];\n this.s = [];\n this.padding = padding;\n this.outputBits = outputBits;\n this.reset = true;\n this.finalized = false;\n this.block = 0;\n this.start = 0;\n this.blockCount = (1600 - (bits << 1)) >> 5;\n this.byteCount = this.blockCount << 2;\n this.outputBlocks = outputBits >> 5;\n this.extraBytes = (outputBits & 31) >> 3;\n\n for (var i = 0; i < 50; ++i) {\n this.s[i] = 0;\n }\n }\n\n Keccak.prototype.update = function (message) {\n if (this.finalized) {\n throw new Error(FINALIZE_ERROR);\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var blocks = this.blocks, byteCount = this.byteCount, length = message.length,\n blockCount = this.blockCount, index = 0, s = this.s, i, code;\n\n while (index < length) {\n if (this.reset) {\n this.reset = false;\n blocks[0] = this.block;\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n if (notString) {\n for (i = this.start; index < length && i < byteCount; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < byteCount; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n this.lastByteIndex = i;\n if (i >= byteCount) {\n this.start = i - byteCount;\n this.block = blocks[blockCount];\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n this.reset = true;\n } else {\n this.start = i;\n }\n }\n return this;\n };\n\n Keccak.prototype.encode = function (x, right) {\n var o = x & 255, n = 1;\n var bytes = [o];\n x = x >> 8;\n o = x & 255;\n while (o > 0) {\n bytes.unshift(o);\n x = x >> 8;\n o = x & 255;\n ++n;\n }\n if (right) {\n bytes.push(n);\n } else {\n bytes.unshift(n);\n }\n this.update(bytes);\n return bytes.length;\n };\n\n Keccak.prototype.encodeString = function (str) {\n var notString, type = typeof str;\n if (type !== 'string') {\n if (type === 'object') {\n if (str === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && str.constructor === ArrayBuffer) {\n str = new Uint8Array(str);\n } else if (!Array.isArray(str)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(str)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var bytes = 0, length = str.length;\n if (notString) {\n bytes = length;\n } else {\n for (var i = 0; i < str.length; ++i) {\n var code = str.charCodeAt(i);\n if (code < 0x80) {\n bytes += 1;\n } else if (code < 0x800) {\n bytes += 2;\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes += 3;\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (str.charCodeAt(++i) & 0x3ff));\n bytes += 4;\n }\n }\n }\n bytes += this.encode(bytes * 8);\n this.update(str);\n return bytes;\n };\n\n Keccak.prototype.bytepad = function (strs, w) {\n var bytes = this.encode(w);\n for (var i = 0; i < strs.length; ++i) {\n bytes += this.encodeString(strs[i]);\n }\n var paddingBytes = w - bytes % w;\n var zeros = [];\n zeros.length = paddingBytes;\n this.update(zeros);\n return this;\n };\n\n Keccak.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex, blockCount = this.blockCount, s = this.s;\n blocks[i >> 2] |= this.padding[i & 3];\n if (this.lastByteIndex === this.byteCount) {\n blocks[0] = blocks[blockCount];\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n blocks[blockCount - 1] |= 0x80000000;\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n };\n\n Keccak.prototype.toString = Keccak.prototype.hex = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var hex = '', block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n block = s[i];\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F] +\n HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F] +\n HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F] +\n HEX_CHARS[(block >> 28) & 0x0F] + HEX_CHARS[(block >> 24) & 0x0F];\n }\n if (j % blockCount === 0) {\n f(s);\n i = 0;\n }\n }\n if (extraBytes) {\n block = s[i];\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F];\n if (extraBytes > 1) {\n hex += HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F];\n }\n if (extraBytes > 2) {\n hex += HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F];\n }\n }\n return hex;\n };\n\n Keccak.prototype.arrayBuffer = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var bytes = this.outputBits >> 3;\n var buffer;\n if (extraBytes) {\n buffer = new ArrayBuffer((outputBlocks + 1) << 2);\n } else {\n buffer = new ArrayBuffer(bytes);\n }\n var array = new Uint32Array(buffer);\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n array[j] = s[i];\n }\n if (j % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n array[i] = s[i];\n buffer = buffer.slice(0, bytes);\n }\n return buffer;\n };\n\n Keccak.prototype.buffer = Keccak.prototype.arrayBuffer;\n\n Keccak.prototype.digest = Keccak.prototype.array = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var array = [], offset, block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n array[offset + 1] = (block >> 8) & 0xFF;\n array[offset + 2] = (block >> 16) & 0xFF;\n array[offset + 3] = (block >> 24) & 0xFF;\n }\n if (j % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n if (extraBytes > 1) {\n array[offset + 1] = (block >> 8) & 0xFF;\n }\n if (extraBytes > 2) {\n array[offset + 2] = (block >> 16) & 0xFF;\n }\n }\n return array;\n };\n\n function Kmac(bits, padding, outputBits) {\n Keccak.call(this, bits, padding, outputBits);\n }\n\n Kmac.prototype = new Keccak();\n\n Kmac.prototype.finalize = function () {\n this.encode(this.outputBits, true);\n return Keccak.prototype.finalize.call(this);\n };\n\n var f = function (s) {\n var h, l, n, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9,\n b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17,\n b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33,\n b34, b35, b36, b37, b38, b39, b40, b41, b42, b43, b44, b45, b46, b47, b48, b49;\n for (n = 0; n < 48; n += 2) {\n c0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40];\n c1 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41];\n c2 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42];\n c3 = s[3] ^ s[13] ^ s[23] ^ s[33] ^ s[43];\n c4 = s[4] ^ s[14] ^ s[24] ^ s[34] ^ s[44];\n c5 = s[5] ^ s[15] ^ s[25] ^ s[35] ^ s[45];\n c6 = s[6] ^ s[16] ^ s[26] ^ s[36] ^ s[46];\n c7 = s[7] ^ s[17] ^ s[27] ^ s[37] ^ s[47];\n c8 = s[8] ^ s[18] ^ s[28] ^ s[38] ^ s[48];\n c9 = s[9] ^ s[19] ^ s[29] ^ s[39] ^ s[49];\n\n h = c8 ^ ((c2 << 1) | (c3 >>> 31));\n l = c9 ^ ((c3 << 1) | (c2 >>> 31));\n s[0] ^= h;\n s[1] ^= l;\n s[10] ^= h;\n s[11] ^= l;\n s[20] ^= h;\n s[21] ^= l;\n s[30] ^= h;\n s[31] ^= l;\n s[40] ^= h;\n s[41] ^= l;\n h = c0 ^ ((c4 << 1) | (c5 >>> 31));\n l = c1 ^ ((c5 << 1) | (c4 >>> 31));\n s[2] ^= h;\n s[3] ^= l;\n s[12] ^= h;\n s[13] ^= l;\n s[22] ^= h;\n s[23] ^= l;\n s[32] ^= h;\n s[33] ^= l;\n s[42] ^= h;\n s[43] ^= l;\n h = c2 ^ ((c6 << 1) | (c7 >>> 31));\n l = c3 ^ ((c7 << 1) | (c6 >>> 31));\n s[4] ^= h;\n s[5] ^= l;\n s[14] ^= h;\n s[15] ^= l;\n s[24] ^= h;\n s[25] ^= l;\n s[34] ^= h;\n s[35] ^= l;\n s[44] ^= h;\n s[45] ^= l;\n h = c4 ^ ((c8 << 1) | (c9 >>> 31));\n l = c5 ^ ((c9 << 1) | (c8 >>> 31));\n s[6] ^= h;\n s[7] ^= l;\n s[16] ^= h;\n s[17] ^= l;\n s[26] ^= h;\n s[27] ^= l;\n s[36] ^= h;\n s[37] ^= l;\n s[46] ^= h;\n s[47] ^= l;\n h = c6 ^ ((c0 << 1) | (c1 >>> 31));\n l = c7 ^ ((c1 << 1) | (c0 >>> 31));\n s[8] ^= h;\n s[9] ^= l;\n s[18] ^= h;\n s[19] ^= l;\n s[28] ^= h;\n s[29] ^= l;\n s[38] ^= h;\n s[39] ^= l;\n s[48] ^= h;\n s[49] ^= l;\n\n b0 = s[0];\n b1 = s[1];\n b32 = (s[11] << 4) | (s[10] >>> 28);\n b33 = (s[10] << 4) | (s[11] >>> 28);\n b14 = (s[20] << 3) | (s[21] >>> 29);\n b15 = (s[21] << 3) | (s[20] >>> 29);\n b46 = (s[31] << 9) | (s[30] >>> 23);\n b47 = (s[30] << 9) | (s[31] >>> 23);\n b28 = (s[40] << 18) | (s[41] >>> 14);\n b29 = (s[41] << 18) | (s[40] >>> 14);\n b20 = (s[2] << 1) | (s[3] >>> 31);\n b21 = (s[3] << 1) | (s[2] >>> 31);\n b2 = (s[13] << 12) | (s[12] >>> 20);\n b3 = (s[12] << 12) | (s[13] >>> 20);\n b34 = (s[22] << 10) | (s[23] >>> 22);\n b35 = (s[23] << 10) | (s[22] >>> 22);\n b16 = (s[33] << 13) | (s[32] >>> 19);\n b17 = (s[32] << 13) | (s[33] >>> 19);\n b48 = (s[42] << 2) | (s[43] >>> 30);\n b49 = (s[43] << 2) | (s[42] >>> 30);\n b40 = (s[5] << 30) | (s[4] >>> 2);\n b41 = (s[4] << 30) | (s[5] >>> 2);\n b22 = (s[14] << 6) | (s[15] >>> 26);\n b23 = (s[15] << 6) | (s[14] >>> 26);\n b4 = (s[25] << 11) | (s[24] >>> 21);\n b5 = (s[24] << 11) | (s[25] >>> 21);\n b36 = (s[34] << 15) | (s[35] >>> 17);\n b37 = (s[35] << 15) | (s[34] >>> 17);\n b18 = (s[45] << 29) | (s[44] >>> 3);\n b19 = (s[44] << 29) | (s[45] >>> 3);\n b10 = (s[6] << 28) | (s[7] >>> 4);\n b11 = (s[7] << 28) | (s[6] >>> 4);\n b42 = (s[17] << 23) | (s[16] >>> 9);\n b43 = (s[16] << 23) | (s[17] >>> 9);\n b24 = (s[26] << 25) | (s[27] >>> 7);\n b25 = (s[27] << 25) | (s[26] >>> 7);\n b6 = (s[36] << 21) | (s[37] >>> 11);\n b7 = (s[37] << 21) | (s[36] >>> 11);\n b38 = (s[47] << 24) | (s[46] >>> 8);\n b39 = (s[46] << 24) | (s[47] >>> 8);\n b30 = (s[8] << 27) | (s[9] >>> 5);\n b31 = (s[9] << 27) | (s[8] >>> 5);\n b12 = (s[18] << 20) | (s[19] >>> 12);\n b13 = (s[19] << 20) | (s[18] >>> 12);\n b44 = (s[29] << 7) | (s[28] >>> 25);\n b45 = (s[28] << 7) | (s[29] >>> 25);\n b26 = (s[38] << 8) | (s[39] >>> 24);\n b27 = (s[39] << 8) | (s[38] >>> 24);\n b8 = (s[48] << 14) | (s[49] >>> 18);\n b9 = (s[49] << 14) | (s[48] >>> 18);\n\n s[0] = b0 ^ (~b2 & b4);\n s[1] = b1 ^ (~b3 & b5);\n s[10] = b10 ^ (~b12 & b14);\n s[11] = b11 ^ (~b13 & b15);\n s[20] = b20 ^ (~b22 & b24);\n s[21] = b21 ^ (~b23 & b25);\n s[30] = b30 ^ (~b32 & b34);\n s[31] = b31 ^ (~b33 & b35);\n s[40] = b40 ^ (~b42 & b44);\n s[41] = b41 ^ (~b43 & b45);\n s[2] = b2 ^ (~b4 & b6);\n s[3] = b3 ^ (~b5 & b7);\n s[12] = b12 ^ (~b14 & b16);\n s[13] = b13 ^ (~b15 & b17);\n s[22] = b22 ^ (~b24 & b26);\n s[23] = b23 ^ (~b25 & b27);\n s[32] = b32 ^ (~b34 & b36);\n s[33] = b33 ^ (~b35 & b37);\n s[42] = b42 ^ (~b44 & b46);\n s[43] = b43 ^ (~b45 & b47);\n s[4] = b4 ^ (~b6 & b8);\n s[5] = b5 ^ (~b7 & b9);\n s[14] = b14 ^ (~b16 & b18);\n s[15] = b15 ^ (~b17 & b19);\n s[24] = b24 ^ (~b26 & b28);\n s[25] = b25 ^ (~b27 & b29);\n s[34] = b34 ^ (~b36 & b38);\n s[35] = b35 ^ (~b37 & b39);\n s[44] = b44 ^ (~b46 & b48);\n s[45] = b45 ^ (~b47 & b49);\n s[6] = b6 ^ (~b8 & b0);\n s[7] = b7 ^ (~b9 & b1);\n s[16] = b16 ^ (~b18 & b10);\n s[17] = b17 ^ (~b19 & b11);\n s[26] = b26 ^ (~b28 & b20);\n s[27] = b27 ^ (~b29 & b21);\n s[36] = b36 ^ (~b38 & b30);\n s[37] = b37 ^ (~b39 & b31);\n s[46] = b46 ^ (~b48 & b40);\n s[47] = b47 ^ (~b49 & b41);\n s[8] = b8 ^ (~b0 & b2);\n s[9] = b9 ^ (~b1 & b3);\n s[18] = b18 ^ (~b10 & b12);\n s[19] = b19 ^ (~b11 & b13);\n s[28] = b28 ^ (~b20 & b22);\n s[29] = b29 ^ (~b21 & b23);\n s[38] = b38 ^ (~b30 & b32);\n s[39] = b39 ^ (~b31 & b33);\n s[48] = b48 ^ (~b40 & b42);\n s[49] = b49 ^ (~b41 & b43);\n\n s[0] ^= RC[n];\n s[1] ^= RC[n + 1];\n }\n };\n\n if (COMMON_JS) {\n module.exports = methods;\n } else {\n for (i = 0; i < methodNames.length; ++i) {\n root[methodNames[i]] = methods[methodNames[i]];\n }\n if (AMD) {\n define(function () {\n return methods;\n });\n }\n }\n})();\n", "module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n", "if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n", "'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n", "'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n", "'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n", "'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n", "'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n", "'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n", "'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n", "'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n", "'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n", "'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n", "'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n", "var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n", "\"use strict\";\n\n(function(root) {\n\n function checkInt(value) {\n return (parseInt(value) === value);\n }\n\n function checkInts(arrayish) {\n if (!checkInt(arrayish.length)) { return false; }\n\n for (var i = 0; i < arrayish.length; i++) {\n if (!checkInt(arrayish[i]) || arrayish[i] < 0 || arrayish[i] > 255) {\n return false;\n }\n }\n\n return true;\n }\n\n function coerceArray(arg, copy) {\n\n // ArrayBuffer view\n if (arg.buffer && ArrayBuffer.isView(arg) && arg.name === 'Uint8Array') {\n\n if (copy) {\n if (arg.slice) {\n arg = arg.slice();\n } else {\n arg = Array.prototype.slice.call(arg);\n }\n }\n\n return arg;\n }\n\n // It's an array; check it is a valid representation of a byte\n if (Array.isArray(arg)) {\n if (!checkInts(arg)) {\n throw new Error('Array contains invalid value: ' + arg);\n }\n\n return new Uint8Array(arg);\n }\n\n // Something else, but behaves like an array (maybe a Buffer? Arguments?)\n if (checkInt(arg.length) && checkInts(arg)) {\n return new Uint8Array(arg);\n }\n\n throw new Error('unsupported array-like object');\n }\n\n function createArray(length) {\n return new Uint8Array(length);\n }\n\n function copyArray(sourceArray, targetArray, targetStart, sourceStart, sourceEnd) {\n if (sourceStart != null || sourceEnd != null) {\n if (sourceArray.slice) {\n sourceArray = sourceArray.slice(sourceStart, sourceEnd);\n } else {\n sourceArray = Array.prototype.slice.call(sourceArray, sourceStart, sourceEnd);\n }\n }\n targetArray.set(sourceArray, targetStart);\n }\n\n\n\n var convertUtf8 = (function() {\n function toBytes(text) {\n var result = [], i = 0;\n text = encodeURI(text);\n while (i < text.length) {\n var c = text.charCodeAt(i++);\n\n // if it is a % sign, encode the following 2 bytes as a hex value\n if (c === 37) {\n result.push(parseInt(text.substr(i, 2), 16))\n i += 2;\n\n // otherwise, just the actual byte\n } else {\n result.push(c)\n }\n }\n\n return coerceArray(result);\n }\n\n function fromBytes(bytes) {\n var result = [], i = 0;\n\n while (i < bytes.length) {\n var c = bytes[i];\n\n if (c < 128) {\n result.push(String.fromCharCode(c));\n i++;\n } else if (c > 191 && c < 224) {\n result.push(String.fromCharCode(((c & 0x1f) << 6) | (bytes[i + 1] & 0x3f)));\n i += 2;\n } else {\n result.push(String.fromCharCode(((c & 0x0f) << 12) | ((bytes[i + 1] & 0x3f) << 6) | (bytes[i + 2] & 0x3f)));\n i += 3;\n }\n }\n\n return result.join('');\n }\n\n return {\n toBytes: toBytes,\n fromBytes: fromBytes,\n }\n })();\n\n var convertHex = (function() {\n function toBytes(text) {\n var result = [];\n for (var i = 0; i < text.length; i += 2) {\n result.push(parseInt(text.substr(i, 2), 16));\n }\n\n return result;\n }\n\n // http://ixti.net/development/javascript/2011/11/11/base64-encodedecode-of-utf8-in-browser-with-js.html\n var Hex = '0123456789abcdef';\n\n function fromBytes(bytes) {\n var result = [];\n for (var i = 0; i < bytes.length; i++) {\n var v = bytes[i];\n result.push(Hex[(v & 0xf0) >> 4] + Hex[v & 0x0f]);\n }\n return result.join('');\n }\n\n return {\n toBytes: toBytes,\n fromBytes: fromBytes,\n }\n })();\n\n\n // Number of rounds by keysize\n var numberOfRounds = {16: 10, 24: 12, 32: 14}\n\n // Round constant words\n var rcon = [0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91];\n\n // S-box and Inverse S-box (S is for Substitution)\n var S = [0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16];\n var Si =[0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d];\n\n // Transformations for encryption\n var T1 = [0xc66363a5, 0xf87c7c84, 0xee777799, 0xf67b7b8d, 0xfff2f20d, 0xd66b6bbd, 0xde6f6fb1, 0x91c5c554, 0x60303050, 0x02010103, 0xce6767a9, 0x562b2b7d, 0xe7fefe19, 0xb5d7d762, 0x4dababe6, 0xec76769a, 0x8fcaca45, 0x1f82829d, 0x89c9c940, 0xfa7d7d87, 0xeffafa15, 0xb25959eb, 0x8e4747c9, 0xfbf0f00b, 0x41adadec, 0xb3d4d467, 0x5fa2a2fd, 0x45afafea, 0x239c9cbf, 0x53a4a4f7, 0xe4727296, 0x9bc0c05b, 0x75b7b7c2, 0xe1fdfd1c, 0x3d9393ae, 0x4c26266a, 0x6c36365a, 0x7e3f3f41, 0xf5f7f702, 0x83cccc4f, 0x6834345c, 0x51a5a5f4, 0xd1e5e534, 0xf9f1f108, 0xe2717193, 0xabd8d873, 0x62313153, 0x2a15153f, 0x0804040c, 0x95c7c752, 0x46232365, 0x9dc3c35e, 0x30181828, 0x379696a1, 0x0a05050f, 0x2f9a9ab5, 0x0e070709, 0x24121236, 0x1b80809b, 0xdfe2e23d, 0xcdebeb26, 0x4e272769, 0x7fb2b2cd, 0xea75759f, 0x1209091b, 0x1d83839e, 0x582c2c74, 0x341a1a2e, 0x361b1b2d, 0xdc6e6eb2, 0xb45a5aee, 0x5ba0a0fb, 0xa45252f6, 0x763b3b4d, 0xb7d6d661, 0x7db3b3ce, 0x5229297b, 0xdde3e33e, 0x5e2f2f71, 0x13848497, 0xa65353f5, 0xb9d1d168, 0x00000000, 0xc1eded2c, 0x40202060, 0xe3fcfc1f, 0x79b1b1c8, 0xb65b5bed, 0xd46a6abe, 0x8dcbcb46, 0x67bebed9, 0x7239394b, 0x944a4ade, 0x984c4cd4, 0xb05858e8, 0x85cfcf4a, 0xbbd0d06b, 0xc5efef2a, 0x4faaaae5, 0xedfbfb16, 0x864343c5, 0x9a4d4dd7, 0x66333355, 0x11858594, 0x8a4545cf, 0xe9f9f910, 0x04020206, 0xfe7f7f81, 0xa05050f0, 0x783c3c44, 0x259f9fba, 0x4ba8a8e3, 0xa25151f3, 0x5da3a3fe, 0x804040c0, 0x058f8f8a, 0x3f9292ad, 0x219d9dbc, 0x70383848, 0xf1f5f504, 0x63bcbcdf, 0x77b6b6c1, 0xafdada75, 0x42212163, 0x20101030, 0xe5ffff1a, 0xfdf3f30e, 0xbfd2d26d, 0x81cdcd4c, 0x180c0c14, 0x26131335, 0xc3ecec2f, 0xbe5f5fe1, 0x359797a2, 0x884444cc, 0x2e171739, 0x93c4c457, 0x55a7a7f2, 0xfc7e7e82, 0x7a3d3d47, 0xc86464ac, 0xba5d5de7, 0x3219192b, 0xe6737395, 0xc06060a0, 0x19818198, 0x9e4f4fd1, 0xa3dcdc7f, 0x44222266, 0x542a2a7e, 0x3b9090ab, 0x0b888883, 0x8c4646ca, 0xc7eeee29, 0x6bb8b8d3, 0x2814143c, 0xa7dede79, 0xbc5e5ee2, 0x160b0b1d, 0xaddbdb76, 0xdbe0e03b, 0x64323256, 0x743a3a4e, 0x140a0a1e, 0x924949db, 0x0c06060a, 0x4824246c, 0xb85c5ce4, 0x9fc2c25d, 0xbdd3d36e, 0x43acacef, 0xc46262a6, 0x399191a8, 0x319595a4, 0xd3e4e437, 0xf279798b, 0xd5e7e732, 0x8bc8c843, 0x6e373759, 0xda6d6db7, 0x018d8d8c, 0xb1d5d564, 0x9c4e4ed2, 0x49a9a9e0, 0xd86c6cb4, 0xac5656fa, 0xf3f4f407, 0xcfeaea25, 0xca6565af, 0xf47a7a8e, 0x47aeaee9, 0x10080818, 0x6fbabad5, 0xf0787888, 0x4a25256f, 0x5c2e2e72, 0x381c1c24, 0x57a6a6f1, 0x73b4b4c7, 0x97c6c651, 0xcbe8e823, 0xa1dddd7c, 0xe874749c, 0x3e1f1f21, 0x964b4bdd, 0x61bdbddc, 0x0d8b8b86, 0x0f8a8a85, 0xe0707090, 0x7c3e3e42, 0x71b5b5c4, 0xcc6666aa, 0x904848d8, 0x06030305, 0xf7f6f601, 0x1c0e0e12, 0xc26161a3, 0x6a35355f, 0xae5757f9, 0x69b9b9d0, 0x17868691, 0x99c1c158, 0x3a1d1d27, 0x279e9eb9, 0xd9e1e138, 0xebf8f813, 0x2b9898b3, 0x22111133, 0xd26969bb, 0xa9d9d970, 0x078e8e89, 0x339494a7, 0x2d9b9bb6, 0x3c1e1e22, 0x15878792, 0xc9e9e920, 0x87cece49, 0xaa5555ff, 0x50282878, 0xa5dfdf7a, 0x038c8c8f, 0x59a1a1f8, 0x09898980, 0x1a0d0d17, 0x65bfbfda, 0xd7e6e631, 0x844242c6, 0xd06868b8, 0x824141c3, 0x299999b0, 0x5a2d2d77, 0x1e0f0f11, 0x7bb0b0cb, 0xa85454fc, 0x6dbbbbd6, 0x2c16163a];\n var T2 = [0xa5c66363, 0x84f87c7c, 0x99ee7777, 0x8df67b7b, 0x0dfff2f2, 0xbdd66b6b, 0xb1de6f6f, 0x5491c5c5, 0x50603030, 0x03020101, 0xa9ce6767, 0x7d562b2b, 0x19e7fefe, 0x62b5d7d7, 0xe64dabab, 0x9aec7676, 0x458fcaca, 0x9d1f8282, 0x4089c9c9, 0x87fa7d7d, 0x15effafa, 0xebb25959, 0xc98e4747, 0x0bfbf0f0, 0xec41adad, 0x67b3d4d4, 0xfd5fa2a2, 0xea45afaf, 0xbf239c9c, 0xf753a4a4, 0x96e47272, 0x5b9bc0c0, 0xc275b7b7, 0x1ce1fdfd, 0xae3d9393, 0x6a4c2626, 0x5a6c3636, 0x417e3f3f, 0x02f5f7f7, 0x4f83cccc, 0x5c683434, 0xf451a5a5, 0x34d1e5e5, 0x08f9f1f1, 0x93e27171, 0x73abd8d8, 0x53623131, 0x3f2a1515, 0x0c080404, 0x5295c7c7, 0x65462323, 0x5e9dc3c3, 0x28301818, 0xa1379696, 0x0f0a0505, 0xb52f9a9a, 0x090e0707, 0x36241212, 0x9b1b8080, 0x3ddfe2e2, 0x26cdebeb, 0x694e2727, 0xcd7fb2b2, 0x9fea7575, 0x1b120909, 0x9e1d8383, 0x74582c2c, 0x2e341a1a, 0x2d361b1b, 0xb2dc6e6e, 0xeeb45a5a, 0xfb5ba0a0, 0xf6a45252, 0x4d763b3b, 0x61b7d6d6, 0xce7db3b3, 0x7b522929, 0x3edde3e3, 0x715e2f2f, 0x97138484, 0xf5a65353, 0x68b9d1d1, 0x00000000, 0x2cc1eded, 0x60402020, 0x1fe3fcfc, 0xc879b1b1, 0xedb65b5b, 0xbed46a6a, 0x468dcbcb, 0xd967bebe, 0x4b723939, 0xde944a4a, 0xd4984c4c, 0xe8b05858, 0x4a85cfcf, 0x6bbbd0d0, 0x2ac5efef, 0xe54faaaa, 0x16edfbfb, 0xc5864343, 0xd79a4d4d, 0x55663333, 0x94118585, 0xcf8a4545, 0x10e9f9f9, 0x06040202, 0x81fe7f7f, 0xf0a05050, 0x44783c3c, 0xba259f9f, 0xe34ba8a8, 0xf3a25151, 0xfe5da3a3, 0xc0804040, 0x8a058f8f, 0xad3f9292, 0xbc219d9d, 0x48703838, 0x04f1f5f5, 0xdf63bcbc, 0xc177b6b6, 0x75afdada, 0x63422121, 0x30201010, 0x1ae5ffff, 0x0efdf3f3, 0x6dbfd2d2, 0x4c81cdcd, 0x14180c0c, 0x35261313, 0x2fc3ecec, 0xe1be5f5f, 0xa2359797, 0xcc884444, 0x392e1717, 0x5793c4c4, 0xf255a7a7, 0x82fc7e7e, 0x477a3d3d, 0xacc86464, 0xe7ba5d5d, 0x2b321919, 0x95e67373, 0xa0c06060, 0x98198181, 0xd19e4f4f, 0x7fa3dcdc, 0x66442222, 0x7e542a2a, 0xab3b9090, 0x830b8888, 0xca8c4646, 0x29c7eeee, 0xd36bb8b8, 0x3c281414, 0x79a7dede, 0xe2bc5e5e, 0x1d160b0b, 0x76addbdb, 0x3bdbe0e0, 0x56643232, 0x4e743a3a, 0x1e140a0a, 0xdb924949, 0x0a0c0606, 0x6c482424, 0xe4b85c5c, 0x5d9fc2c2, 0x6ebdd3d3, 0xef43acac, 0xa6c46262, 0xa8399191, 0xa4319595, 0x37d3e4e4, 0x8bf27979, 0x32d5e7e7, 0x438bc8c8, 0x596e3737, 0xb7da6d6d, 0x8c018d8d, 0x64b1d5d5, 0xd29c4e4e, 0xe049a9a9, 0xb4d86c6c, 0xfaac5656, 0x07f3f4f4, 0x25cfeaea, 0xafca6565, 0x8ef47a7a, 0xe947aeae, 0x18100808, 0xd56fbaba, 0x88f07878, 0x6f4a2525, 0x725c2e2e, 0x24381c1c, 0xf157a6a6, 0xc773b4b4, 0x5197c6c6, 0x23cbe8e8, 0x7ca1dddd, 0x9ce87474, 0x213e1f1f, 0xdd964b4b, 0xdc61bdbd, 0x860d8b8b, 0x850f8a8a, 0x90e07070, 0x427c3e3e, 0xc471b5b5, 0xaacc6666, 0xd8904848, 0x05060303, 0x01f7f6f6, 0x121c0e0e, 0xa3c26161, 0x5f6a3535, 0xf9ae5757, 0xd069b9b9, 0x91178686, 0x5899c1c1, 0x273a1d1d, 0xb9279e9e, 0x38d9e1e1, 0x13ebf8f8, 0xb32b9898, 0x33221111, 0xbbd26969, 0x70a9d9d9, 0x89078e8e, 0xa7339494, 0xb62d9b9b, 0x223c1e1e, 0x92158787, 0x20c9e9e9, 0x4987cece, 0xffaa5555, 0x78502828, 0x7aa5dfdf, 0x8f038c8c, 0xf859a1a1, 0x80098989, 0x171a0d0d, 0xda65bfbf, 0x31d7e6e6, 0xc6844242, 0xb8d06868, 0xc3824141, 0xb0299999, 0x775a2d2d, 0x111e0f0f, 0xcb7bb0b0, 0xfca85454, 0xd66dbbbb, 0x3a2c1616];\n var T3 = [0x63a5c663, 0x7c84f87c, 0x7799ee77, 0x7b8df67b, 0xf20dfff2, 0x6bbdd66b, 0x6fb1de6f, 0xc55491c5, 0x30506030, 0x01030201, 0x67a9ce67, 0x2b7d562b, 0xfe19e7fe, 0xd762b5d7, 0xabe64dab, 0x769aec76, 0xca458fca, 0x829d1f82, 0xc94089c9, 0x7d87fa7d, 0xfa15effa, 0x59ebb259, 0x47c98e47, 0xf00bfbf0, 0xadec41ad, 0xd467b3d4, 0xa2fd5fa2, 0xafea45af, 0x9cbf239c, 0xa4f753a4, 0x7296e472, 0xc05b9bc0, 0xb7c275b7, 0xfd1ce1fd, 0x93ae3d93, 0x266a4c26, 0x365a6c36, 0x3f417e3f, 0xf702f5f7, 0xcc4f83cc, 0x345c6834, 0xa5f451a5, 0xe534d1e5, 0xf108f9f1, 0x7193e271, 0xd873abd8, 0x31536231, 0x153f2a15, 0x040c0804, 0xc75295c7, 0x23654623, 0xc35e9dc3, 0x18283018, 0x96a13796, 0x050f0a05, 0x9ab52f9a, 0x07090e07, 0x12362412, 0x809b1b80, 0xe23ddfe2, 0xeb26cdeb, 0x27694e27, 0xb2cd7fb2, 0x759fea75, 0x091b1209, 0x839e1d83, 0x2c74582c, 0x1a2e341a, 0x1b2d361b, 0x6eb2dc6e, 0x5aeeb45a, 0xa0fb5ba0, 0x52f6a452, 0x3b4d763b, 0xd661b7d6, 0xb3ce7db3, 0x297b5229, 0xe33edde3, 0x2f715e2f, 0x84971384, 0x53f5a653, 0xd168b9d1, 0x00000000, 0xed2cc1ed, 0x20604020, 0xfc1fe3fc, 0xb1c879b1, 0x5bedb65b, 0x6abed46a, 0xcb468dcb, 0xbed967be, 0x394b7239, 0x4ade944a, 0x4cd4984c, 0x58e8b058, 0xcf4a85cf, 0xd06bbbd0, 0xef2ac5ef, 0xaae54faa, 0xfb16edfb, 0x43c58643, 0x4dd79a4d, 0x33556633, 0x85941185, 0x45cf8a45, 0xf910e9f9, 0x02060402, 0x7f81fe7f, 0x50f0a050, 0x3c44783c, 0x9fba259f, 0xa8e34ba8, 0x51f3a251, 0xa3fe5da3, 0x40c08040, 0x8f8a058f, 0x92ad3f92, 0x9dbc219d, 0x38487038, 0xf504f1f5, 0xbcdf63bc, 0xb6c177b6, 0xda75afda, 0x21634221, 0x10302010, 0xff1ae5ff, 0xf30efdf3, 0xd26dbfd2, 0xcd4c81cd, 0x0c14180c, 0x13352613, 0xec2fc3ec, 0x5fe1be5f, 0x97a23597, 0x44cc8844, 0x17392e17, 0xc45793c4, 0xa7f255a7, 0x7e82fc7e, 0x3d477a3d, 0x64acc864, 0x5de7ba5d, 0x192b3219, 0x7395e673, 0x60a0c060, 0x81981981, 0x4fd19e4f, 0xdc7fa3dc, 0x22664422, 0x2a7e542a, 0x90ab3b90, 0x88830b88, 0x46ca8c46, 0xee29c7ee, 0xb8d36bb8, 0x143c2814, 0xde79a7de, 0x5ee2bc5e, 0x0b1d160b, 0xdb76addb, 0xe03bdbe0, 0x32566432, 0x3a4e743a, 0x0a1e140a, 0x49db9249, 0x060a0c06, 0x246c4824, 0x5ce4b85c, 0xc25d9fc2, 0xd36ebdd3, 0xacef43ac, 0x62a6c462, 0x91a83991, 0x95a43195, 0xe437d3e4, 0x798bf279, 0xe732d5e7, 0xc8438bc8, 0x37596e37, 0x6db7da6d, 0x8d8c018d, 0xd564b1d5, 0x4ed29c4e, 0xa9e049a9, 0x6cb4d86c, 0x56faac56, 0xf407f3f4, 0xea25cfea, 0x65afca65, 0x7a8ef47a, 0xaee947ae, 0x08181008, 0xbad56fba, 0x7888f078, 0x256f4a25, 0x2e725c2e, 0x1c24381c, 0xa6f157a6, 0xb4c773b4, 0xc65197c6, 0xe823cbe8, 0xdd7ca1dd, 0x749ce874, 0x1f213e1f, 0x4bdd964b, 0xbddc61bd, 0x8b860d8b, 0x8a850f8a, 0x7090e070, 0x3e427c3e, 0xb5c471b5, 0x66aacc66, 0x48d89048, 0x03050603, 0xf601f7f6, 0x0e121c0e, 0x61a3c261, 0x355f6a35, 0x57f9ae57, 0xb9d069b9, 0x86911786, 0xc15899c1, 0x1d273a1d, 0x9eb9279e, 0xe138d9e1, 0xf813ebf8, 0x98b32b98, 0x11332211, 0x69bbd269, 0xd970a9d9, 0x8e89078e, 0x94a73394, 0x9bb62d9b, 0x1e223c1e, 0x87921587, 0xe920c9e9, 0xce4987ce, 0x55ffaa55, 0x28785028, 0xdf7aa5df, 0x8c8f038c, 0xa1f859a1, 0x89800989, 0x0d171a0d, 0xbfda65bf, 0xe631d7e6, 0x42c68442, 0x68b8d068, 0x41c38241, 0x99b02999, 0x2d775a2d, 0x0f111e0f, 0xb0cb7bb0, 0x54fca854, 0xbbd66dbb, 0x163a2c16];\n var T4 = [0x6363a5c6, 0x7c7c84f8, 0x777799ee, 0x7b7b8df6, 0xf2f20dff, 0x6b6bbdd6, 0x6f6fb1de, 0xc5c55491, 0x30305060, 0x01010302, 0x6767a9ce, 0x2b2b7d56, 0xfefe19e7, 0xd7d762b5, 0xababe64d, 0x76769aec, 0xcaca458f, 0x82829d1f, 0xc9c94089, 0x7d7d87fa, 0xfafa15ef, 0x5959ebb2, 0x4747c98e, 0xf0f00bfb, 0xadadec41, 0xd4d467b3, 0xa2a2fd5f, 0xafafea45, 0x9c9cbf23, 0xa4a4f753, 0x727296e4, 0xc0c05b9b, 0xb7b7c275, 0xfdfd1ce1, 0x9393ae3d, 0x26266a4c, 0x36365a6c, 0x3f3f417e, 0xf7f702f5, 0xcccc4f83, 0x34345c68, 0xa5a5f451, 0xe5e534d1, 0xf1f108f9, 0x717193e2, 0xd8d873ab, 0x31315362, 0x15153f2a, 0x04040c08, 0xc7c75295, 0x23236546, 0xc3c35e9d, 0x18182830, 0x9696a137, 0x05050f0a, 0x9a9ab52f, 0x0707090e, 0x12123624, 0x80809b1b, 0xe2e23ddf, 0xebeb26cd, 0x2727694e, 0xb2b2cd7f, 0x75759fea, 0x09091b12, 0x83839e1d, 0x2c2c7458, 0x1a1a2e34, 0x1b1b2d36, 0x6e6eb2dc, 0x5a5aeeb4, 0xa0a0fb5b, 0x5252f6a4, 0x3b3b4d76, 0xd6d661b7, 0xb3b3ce7d, 0x29297b52, 0xe3e33edd, 0x2f2f715e, 0x84849713, 0x5353f5a6, 0xd1d168b9, 0x00000000, 0xeded2cc1, 0x20206040, 0xfcfc1fe3, 0xb1b1c879, 0x5b5bedb6, 0x6a6abed4, 0xcbcb468d, 0xbebed967, 0x39394b72, 0x4a4ade94, 0x4c4cd498, 0x5858e8b0, 0xcfcf4a85, 0xd0d06bbb, 0xefef2ac5, 0xaaaae54f, 0xfbfb16ed, 0x4343c586, 0x4d4dd79a, 0x33335566, 0x85859411, 0x4545cf8a, 0xf9f910e9, 0x02020604, 0x7f7f81fe, 0x5050f0a0, 0x3c3c4478, 0x9f9fba25, 0xa8a8e34b, 0x5151f3a2, 0xa3a3fe5d, 0x4040c080, 0x8f8f8a05, 0x9292ad3f, 0x9d9dbc21, 0x38384870, 0xf5f504f1, 0xbcbcdf63, 0xb6b6c177, 0xdada75af, 0x21216342, 0x10103020, 0xffff1ae5, 0xf3f30efd, 0xd2d26dbf, 0xcdcd4c81, 0x0c0c1418, 0x13133526, 0xecec2fc3, 0x5f5fe1be, 0x9797a235, 0x4444cc88, 0x1717392e, 0xc4c45793, 0xa7a7f255, 0x7e7e82fc, 0x3d3d477a, 0x6464acc8, 0x5d5de7ba, 0x19192b32, 0x737395e6, 0x6060a0c0, 0x81819819, 0x4f4fd19e, 0xdcdc7fa3, 0x22226644, 0x2a2a7e54, 0x9090ab3b, 0x8888830b, 0x4646ca8c, 0xeeee29c7, 0xb8b8d36b, 0x14143c28, 0xdede79a7, 0x5e5ee2bc, 0x0b0b1d16, 0xdbdb76ad, 0xe0e03bdb, 0x32325664, 0x3a3a4e74, 0x0a0a1e14, 0x4949db92, 0x06060a0c, 0x24246c48, 0x5c5ce4b8, 0xc2c25d9f, 0xd3d36ebd, 0xacacef43, 0x6262a6c4, 0x9191a839, 0x9595a431, 0xe4e437d3, 0x79798bf2, 0xe7e732d5, 0xc8c8438b, 0x3737596e, 0x6d6db7da, 0x8d8d8c01, 0xd5d564b1, 0x4e4ed29c, 0xa9a9e049, 0x6c6cb4d8, 0x5656faac, 0xf4f407f3, 0xeaea25cf, 0x6565afca, 0x7a7a8ef4, 0xaeaee947, 0x08081810, 0xbabad56f, 0x787888f0, 0x25256f4a, 0x2e2e725c, 0x1c1c2438, 0xa6a6f157, 0xb4b4c773, 0xc6c65197, 0xe8e823cb, 0xdddd7ca1, 0x74749ce8, 0x1f1f213e, 0x4b4bdd96, 0xbdbddc61, 0x8b8b860d, 0x8a8a850f, 0x707090e0, 0x3e3e427c, 0xb5b5c471, 0x6666aacc, 0x4848d890, 0x03030506, 0xf6f601f7, 0x0e0e121c, 0x6161a3c2, 0x35355f6a, 0x5757f9ae, 0xb9b9d069, 0x86869117, 0xc1c15899, 0x1d1d273a, 0x9e9eb927, 0xe1e138d9, 0xf8f813eb, 0x9898b32b, 0x11113322, 0x6969bbd2, 0xd9d970a9, 0x8e8e8907, 0x9494a733, 0x9b9bb62d, 0x1e1e223c, 0x87879215, 0xe9e920c9, 0xcece4987, 0x5555ffaa, 0x28287850, 0xdfdf7aa5, 0x8c8c8f03, 0xa1a1f859, 0x89898009, 0x0d0d171a, 0xbfbfda65, 0xe6e631d7, 0x4242c684, 0x6868b8d0, 0x4141c382, 0x9999b029, 0x2d2d775a, 0x0f0f111e, 0xb0b0cb7b, 0x5454fca8, 0xbbbbd66d, 0x16163a2c];\n\n // Transformations for decryption\n var T5 = [0x51f4a750, 0x7e416553, 0x1a17a4c3, 0x3a275e96, 0x3bab6bcb, 0x1f9d45f1, 0xacfa58ab, 0x4be30393, 0x2030fa55, 0xad766df6, 0x88cc7691, 0xf5024c25, 0x4fe5d7fc, 0xc52acbd7, 0x26354480, 0xb562a38f, 0xdeb15a49, 0x25ba1b67, 0x45ea0e98, 0x5dfec0e1, 0xc32f7502, 0x814cf012, 0x8d4697a3, 0x6bd3f9c6, 0x038f5fe7, 0x15929c95, 0xbf6d7aeb, 0x955259da, 0xd4be832d, 0x587421d3, 0x49e06929, 0x8ec9c844, 0x75c2896a, 0xf48e7978, 0x99583e6b, 0x27b971dd, 0xbee14fb6, 0xf088ad17, 0xc920ac66, 0x7dce3ab4, 0x63df4a18, 0xe51a3182, 0x97513360, 0x62537f45, 0xb16477e0, 0xbb6bae84, 0xfe81a01c, 0xf9082b94, 0x70486858, 0x8f45fd19, 0x94de6c87, 0x527bf8b7, 0xab73d323, 0x724b02e2, 0xe31f8f57, 0x6655ab2a, 0xb2eb2807, 0x2fb5c203, 0x86c57b9a, 0xd33708a5, 0x302887f2, 0x23bfa5b2, 0x02036aba, 0xed16825c, 0x8acf1c2b, 0xa779b492, 0xf307f2f0, 0x4e69e2a1, 0x65daf4cd, 0x0605bed5, 0xd134621f, 0xc4a6fe8a, 0x342e539d, 0xa2f355a0, 0x058ae132, 0xa4f6eb75, 0x0b83ec39, 0x4060efaa, 0x5e719f06, 0xbd6e1051, 0x3e218af9, 0x96dd063d, 0xdd3e05ae, 0x4de6bd46, 0x91548db5, 0x71c45d05, 0x0406d46f, 0x605015ff, 0x1998fb24, 0xd6bde997, 0x894043cc, 0x67d99e77, 0xb0e842bd, 0x07898b88, 0xe7195b38, 0x79c8eedb, 0xa17c0a47, 0x7c420fe9, 0xf8841ec9, 0x00000000, 0x09808683, 0x322bed48, 0x1e1170ac, 0x6c5a724e, 0xfd0efffb, 0x0f853856, 0x3daed51e, 0x362d3927, 0x0a0fd964, 0x685ca621, 0x9b5b54d1, 0x24362e3a, 0x0c0a67b1, 0x9357e70f, 0xb4ee96d2, 0x1b9b919e, 0x80c0c54f, 0x61dc20a2, 0x5a774b69, 0x1c121a16, 0xe293ba0a, 0xc0a02ae5, 0x3c22e043, 0x121b171d, 0x0e090d0b, 0xf28bc7ad, 0x2db6a8b9, 0x141ea9c8, 0x57f11985, 0xaf75074c, 0xee99ddbb, 0xa37f60fd, 0xf701269f, 0x5c72f5bc, 0x44663bc5, 0x5bfb7e34, 0x8b432976, 0xcb23c6dc, 0xb6edfc68, 0xb8e4f163, 0xd731dcca, 0x42638510, 0x13972240, 0x84c61120, 0x854a247d, 0xd2bb3df8, 0xaef93211, 0xc729a16d, 0x1d9e2f4b, 0xdcb230f3, 0x0d8652ec, 0x77c1e3d0, 0x2bb3166c, 0xa970b999, 0x119448fa, 0x47e96422, 0xa8fc8cc4, 0xa0f03f1a, 0x567d2cd8, 0x223390ef, 0x87494ec7, 0xd938d1c1, 0x8ccaa2fe, 0x98d40b36, 0xa6f581cf, 0xa57ade28, 0xdab78e26, 0x3fadbfa4, 0x2c3a9de4, 0x5078920d, 0x6a5fcc9b, 0x547e4662, 0xf68d13c2, 0x90d8b8e8, 0x2e39f75e, 0x82c3aff5, 0x9f5d80be, 0x69d0937c, 0x6fd52da9, 0xcf2512b3, 0xc8ac993b, 0x10187da7, 0xe89c636e, 0xdb3bbb7b, 0xcd267809, 0x6e5918f4, 0xec9ab701, 0x834f9aa8, 0xe6956e65, 0xaaffe67e, 0x21bccf08, 0xef15e8e6, 0xbae79bd9, 0x4a6f36ce, 0xea9f09d4, 0x29b07cd6, 0x31a4b2af, 0x2a3f2331, 0xc6a59430, 0x35a266c0, 0x744ebc37, 0xfc82caa6, 0xe090d0b0, 0x33a7d815, 0xf104984a, 0x41ecdaf7, 0x7fcd500e, 0x1791f62f, 0x764dd68d, 0x43efb04d, 0xccaa4d54, 0xe49604df, 0x9ed1b5e3, 0x4c6a881b, 0xc12c1fb8, 0x4665517f, 0x9d5eea04, 0x018c355d, 0xfa877473, 0xfb0b412e, 0xb3671d5a, 0x92dbd252, 0xe9105633, 0x6dd64713, 0x9ad7618c, 0x37a10c7a, 0x59f8148e, 0xeb133c89, 0xcea927ee, 0xb761c935, 0xe11ce5ed, 0x7a47b13c, 0x9cd2df59, 0x55f2733f, 0x1814ce79, 0x73c737bf, 0x53f7cdea, 0x5ffdaa5b, 0xdf3d6f14, 0x7844db86, 0xcaaff381, 0xb968c43e, 0x3824342c, 0xc2a3405f, 0x161dc372, 0xbce2250c, 0x283c498b, 0xff0d9541, 0x39a80171, 0x080cb3de, 0xd8b4e49c, 0x6456c190, 0x7bcb8461, 0xd532b670, 0x486c5c74, 0xd0b85742];\n var T6 = [0x5051f4a7, 0x537e4165, 0xc31a17a4, 0x963a275e, 0xcb3bab6b, 0xf11f9d45, 0xabacfa58, 0x934be303, 0x552030fa, 0xf6ad766d, 0x9188cc76, 0x25f5024c, 0xfc4fe5d7, 0xd7c52acb, 0x80263544, 0x8fb562a3, 0x49deb15a, 0x6725ba1b, 0x9845ea0e, 0xe15dfec0, 0x02c32f75, 0x12814cf0, 0xa38d4697, 0xc66bd3f9, 0xe7038f5f, 0x9515929c, 0xebbf6d7a, 0xda955259, 0x2dd4be83, 0xd3587421, 0x2949e069, 0x448ec9c8, 0x6a75c289, 0x78f48e79, 0x6b99583e, 0xdd27b971, 0xb6bee14f, 0x17f088ad, 0x66c920ac, 0xb47dce3a, 0x1863df4a, 0x82e51a31, 0x60975133, 0x4562537f, 0xe0b16477, 0x84bb6bae, 0x1cfe81a0, 0x94f9082b, 0x58704868, 0x198f45fd, 0x8794de6c, 0xb7527bf8, 0x23ab73d3, 0xe2724b02, 0x57e31f8f, 0x2a6655ab, 0x07b2eb28, 0x032fb5c2, 0x9a86c57b, 0xa5d33708, 0xf2302887, 0xb223bfa5, 0xba02036a, 0x5ced1682, 0x2b8acf1c, 0x92a779b4, 0xf0f307f2, 0xa14e69e2, 0xcd65daf4, 0xd50605be, 0x1fd13462, 0x8ac4a6fe, 0x9d342e53, 0xa0a2f355, 0x32058ae1, 0x75a4f6eb, 0x390b83ec, 0xaa4060ef, 0x065e719f, 0x51bd6e10, 0xf93e218a, 0x3d96dd06, 0xaedd3e05, 0x464de6bd, 0xb591548d, 0x0571c45d, 0x6f0406d4, 0xff605015, 0x241998fb, 0x97d6bde9, 0xcc894043, 0x7767d99e, 0xbdb0e842, 0x8807898b, 0x38e7195b, 0xdb79c8ee, 0x47a17c0a, 0xe97c420f, 0xc9f8841e, 0x00000000, 0x83098086, 0x48322bed, 0xac1e1170, 0x4e6c5a72, 0xfbfd0eff, 0x560f8538, 0x1e3daed5, 0x27362d39, 0x640a0fd9, 0x21685ca6, 0xd19b5b54, 0x3a24362e, 0xb10c0a67, 0x0f9357e7, 0xd2b4ee96, 0x9e1b9b91, 0x4f80c0c5, 0xa261dc20, 0x695a774b, 0x161c121a, 0x0ae293ba, 0xe5c0a02a, 0x433c22e0, 0x1d121b17, 0x0b0e090d, 0xadf28bc7, 0xb92db6a8, 0xc8141ea9, 0x8557f119, 0x4caf7507, 0xbbee99dd, 0xfda37f60, 0x9ff70126, 0xbc5c72f5, 0xc544663b, 0x345bfb7e, 0x768b4329, 0xdccb23c6, 0x68b6edfc, 0x63b8e4f1, 0xcad731dc, 0x10426385, 0x40139722, 0x2084c611, 0x7d854a24, 0xf8d2bb3d, 0x11aef932, 0x6dc729a1, 0x4b1d9e2f, 0xf3dcb230, 0xec0d8652, 0xd077c1e3, 0x6c2bb316, 0x99a970b9, 0xfa119448, 0x2247e964, 0xc4a8fc8c, 0x1aa0f03f, 0xd8567d2c, 0xef223390, 0xc787494e, 0xc1d938d1, 0xfe8ccaa2, 0x3698d40b, 0xcfa6f581, 0x28a57ade, 0x26dab78e, 0xa43fadbf, 0xe42c3a9d, 0x0d507892, 0x9b6a5fcc, 0x62547e46, 0xc2f68d13, 0xe890d8b8, 0x5e2e39f7, 0xf582c3af, 0xbe9f5d80, 0x7c69d093, 0xa96fd52d, 0xb3cf2512, 0x3bc8ac99, 0xa710187d, 0x6ee89c63, 0x7bdb3bbb, 0x09cd2678, 0xf46e5918, 0x01ec9ab7, 0xa8834f9a, 0x65e6956e, 0x7eaaffe6, 0x0821bccf, 0xe6ef15e8, 0xd9bae79b, 0xce4a6f36, 0xd4ea9f09, 0xd629b07c, 0xaf31a4b2, 0x312a3f23, 0x30c6a594, 0xc035a266, 0x37744ebc, 0xa6fc82ca, 0xb0e090d0, 0x1533a7d8, 0x4af10498, 0xf741ecda, 0x0e7fcd50, 0x2f1791f6, 0x8d764dd6, 0x4d43efb0, 0x54ccaa4d, 0xdfe49604, 0xe39ed1b5, 0x1b4c6a88, 0xb8c12c1f, 0x7f466551, 0x049d5eea, 0x5d018c35, 0x73fa8774, 0x2efb0b41, 0x5ab3671d, 0x5292dbd2, 0x33e91056, 0x136dd647, 0x8c9ad761, 0x7a37a10c, 0x8e59f814, 0x89eb133c, 0xeecea927, 0x35b761c9, 0xede11ce5, 0x3c7a47b1, 0x599cd2df, 0x3f55f273, 0x791814ce, 0xbf73c737, 0xea53f7cd, 0x5b5ffdaa, 0x14df3d6f, 0x867844db, 0x81caaff3, 0x3eb968c4, 0x2c382434, 0x5fc2a340, 0x72161dc3, 0x0cbce225, 0x8b283c49, 0x41ff0d95, 0x7139a801, 0xde080cb3, 0x9cd8b4e4, 0x906456c1, 0x617bcb84, 0x70d532b6, 0x74486c5c, 0x42d0b857];\n var T7 = [0xa75051f4, 0x65537e41, 0xa4c31a17, 0x5e963a27, 0x6bcb3bab, 0x45f11f9d, 0x58abacfa, 0x03934be3, 0xfa552030, 0x6df6ad76, 0x769188cc, 0x4c25f502, 0xd7fc4fe5, 0xcbd7c52a, 0x44802635, 0xa38fb562, 0x5a49deb1, 0x1b6725ba, 0x0e9845ea, 0xc0e15dfe, 0x7502c32f, 0xf012814c, 0x97a38d46, 0xf9c66bd3, 0x5fe7038f, 0x9c951592, 0x7aebbf6d, 0x59da9552, 0x832dd4be, 0x21d35874, 0x692949e0, 0xc8448ec9, 0x896a75c2, 0x7978f48e, 0x3e6b9958, 0x71dd27b9, 0x4fb6bee1, 0xad17f088, 0xac66c920, 0x3ab47dce, 0x4a1863df, 0x3182e51a, 0x33609751, 0x7f456253, 0x77e0b164, 0xae84bb6b, 0xa01cfe81, 0x2b94f908, 0x68587048, 0xfd198f45, 0x6c8794de, 0xf8b7527b, 0xd323ab73, 0x02e2724b, 0x8f57e31f, 0xab2a6655, 0x2807b2eb, 0xc2032fb5, 0x7b9a86c5, 0x08a5d337, 0x87f23028, 0xa5b223bf, 0x6aba0203, 0x825ced16, 0x1c2b8acf, 0xb492a779, 0xf2f0f307, 0xe2a14e69, 0xf4cd65da, 0xbed50605, 0x621fd134, 0xfe8ac4a6, 0x539d342e, 0x55a0a2f3, 0xe132058a, 0xeb75a4f6, 0xec390b83, 0xefaa4060, 0x9f065e71, 0x1051bd6e, 0x8af93e21, 0x063d96dd, 0x05aedd3e, 0xbd464de6, 0x8db59154, 0x5d0571c4, 0xd46f0406, 0x15ff6050, 0xfb241998, 0xe997d6bd, 0x43cc8940, 0x9e7767d9, 0x42bdb0e8, 0x8b880789, 0x5b38e719, 0xeedb79c8, 0x0a47a17c, 0x0fe97c42, 0x1ec9f884, 0x00000000, 0x86830980, 0xed48322b, 0x70ac1e11, 0x724e6c5a, 0xfffbfd0e, 0x38560f85, 0xd51e3dae, 0x3927362d, 0xd9640a0f, 0xa621685c, 0x54d19b5b, 0x2e3a2436, 0x67b10c0a, 0xe70f9357, 0x96d2b4ee, 0x919e1b9b, 0xc54f80c0, 0x20a261dc, 0x4b695a77, 0x1a161c12, 0xba0ae293, 0x2ae5c0a0, 0xe0433c22, 0x171d121b, 0x0d0b0e09, 0xc7adf28b, 0xa8b92db6, 0xa9c8141e, 0x198557f1, 0x074caf75, 0xddbbee99, 0x60fda37f, 0x269ff701, 0xf5bc5c72, 0x3bc54466, 0x7e345bfb, 0x29768b43, 0xc6dccb23, 0xfc68b6ed, 0xf163b8e4, 0xdccad731, 0x85104263, 0x22401397, 0x112084c6, 0x247d854a, 0x3df8d2bb, 0x3211aef9, 0xa16dc729, 0x2f4b1d9e, 0x30f3dcb2, 0x52ec0d86, 0xe3d077c1, 0x166c2bb3, 0xb999a970, 0x48fa1194, 0x642247e9, 0x8cc4a8fc, 0x3f1aa0f0, 0x2cd8567d, 0x90ef2233, 0x4ec78749, 0xd1c1d938, 0xa2fe8cca, 0x0b3698d4, 0x81cfa6f5, 0xde28a57a, 0x8e26dab7, 0xbfa43fad, 0x9de42c3a, 0x920d5078, 0xcc9b6a5f, 0x4662547e, 0x13c2f68d, 0xb8e890d8, 0xf75e2e39, 0xaff582c3, 0x80be9f5d, 0x937c69d0, 0x2da96fd5, 0x12b3cf25, 0x993bc8ac, 0x7da71018, 0x636ee89c, 0xbb7bdb3b, 0x7809cd26, 0x18f46e59, 0xb701ec9a, 0x9aa8834f, 0x6e65e695, 0xe67eaaff, 0xcf0821bc, 0xe8e6ef15, 0x9bd9bae7, 0x36ce4a6f, 0x09d4ea9f, 0x7cd629b0, 0xb2af31a4, 0x23312a3f, 0x9430c6a5, 0x66c035a2, 0xbc37744e, 0xcaa6fc82, 0xd0b0e090, 0xd81533a7, 0x984af104, 0xdaf741ec, 0x500e7fcd, 0xf62f1791, 0xd68d764d, 0xb04d43ef, 0x4d54ccaa, 0x04dfe496, 0xb5e39ed1, 0x881b4c6a, 0x1fb8c12c, 0x517f4665, 0xea049d5e, 0x355d018c, 0x7473fa87, 0x412efb0b, 0x1d5ab367, 0xd25292db, 0x5633e910, 0x47136dd6, 0x618c9ad7, 0x0c7a37a1, 0x148e59f8, 0x3c89eb13, 0x27eecea9, 0xc935b761, 0xe5ede11c, 0xb13c7a47, 0xdf599cd2, 0x733f55f2, 0xce791814, 0x37bf73c7, 0xcdea53f7, 0xaa5b5ffd, 0x6f14df3d, 0xdb867844, 0xf381caaf, 0xc43eb968, 0x342c3824, 0x405fc2a3, 0xc372161d, 0x250cbce2, 0x498b283c, 0x9541ff0d, 0x017139a8, 0xb3de080c, 0xe49cd8b4, 0xc1906456, 0x84617bcb, 0xb670d532, 0x5c74486c, 0x5742d0b8];\n var T8 = [0xf4a75051, 0x4165537e, 0x17a4c31a, 0x275e963a, 0xab6bcb3b, 0x9d45f11f, 0xfa58abac, 0xe303934b, 0x30fa5520, 0x766df6ad, 0xcc769188, 0x024c25f5, 0xe5d7fc4f, 0x2acbd7c5, 0x35448026, 0x62a38fb5, 0xb15a49de, 0xba1b6725, 0xea0e9845, 0xfec0e15d, 0x2f7502c3, 0x4cf01281, 0x4697a38d, 0xd3f9c66b, 0x8f5fe703, 0x929c9515, 0x6d7aebbf, 0x5259da95, 0xbe832dd4, 0x7421d358, 0xe0692949, 0xc9c8448e, 0xc2896a75, 0x8e7978f4, 0x583e6b99, 0xb971dd27, 0xe14fb6be, 0x88ad17f0, 0x20ac66c9, 0xce3ab47d, 0xdf4a1863, 0x1a3182e5, 0x51336097, 0x537f4562, 0x6477e0b1, 0x6bae84bb, 0x81a01cfe, 0x082b94f9, 0x48685870, 0x45fd198f, 0xde6c8794, 0x7bf8b752, 0x73d323ab, 0x4b02e272, 0x1f8f57e3, 0x55ab2a66, 0xeb2807b2, 0xb5c2032f, 0xc57b9a86, 0x3708a5d3, 0x2887f230, 0xbfa5b223, 0x036aba02, 0x16825ced, 0xcf1c2b8a, 0x79b492a7, 0x07f2f0f3, 0x69e2a14e, 0xdaf4cd65, 0x05bed506, 0x34621fd1, 0xa6fe8ac4, 0x2e539d34, 0xf355a0a2, 0x8ae13205, 0xf6eb75a4, 0x83ec390b, 0x60efaa40, 0x719f065e, 0x6e1051bd, 0x218af93e, 0xdd063d96, 0x3e05aedd, 0xe6bd464d, 0x548db591, 0xc45d0571, 0x06d46f04, 0x5015ff60, 0x98fb2419, 0xbde997d6, 0x4043cc89, 0xd99e7767, 0xe842bdb0, 0x898b8807, 0x195b38e7, 0xc8eedb79, 0x7c0a47a1, 0x420fe97c, 0x841ec9f8, 0x00000000, 0x80868309, 0x2bed4832, 0x1170ac1e, 0x5a724e6c, 0x0efffbfd, 0x8538560f, 0xaed51e3d, 0x2d392736, 0x0fd9640a, 0x5ca62168, 0x5b54d19b, 0x362e3a24, 0x0a67b10c, 0x57e70f93, 0xee96d2b4, 0x9b919e1b, 0xc0c54f80, 0xdc20a261, 0x774b695a, 0x121a161c, 0x93ba0ae2, 0xa02ae5c0, 0x22e0433c, 0x1b171d12, 0x090d0b0e, 0x8bc7adf2, 0xb6a8b92d, 0x1ea9c814, 0xf1198557, 0x75074caf, 0x99ddbbee, 0x7f60fda3, 0x01269ff7, 0x72f5bc5c, 0x663bc544, 0xfb7e345b, 0x4329768b, 0x23c6dccb, 0xedfc68b6, 0xe4f163b8, 0x31dccad7, 0x63851042, 0x97224013, 0xc6112084, 0x4a247d85, 0xbb3df8d2, 0xf93211ae, 0x29a16dc7, 0x9e2f4b1d, 0xb230f3dc, 0x8652ec0d, 0xc1e3d077, 0xb3166c2b, 0x70b999a9, 0x9448fa11, 0xe9642247, 0xfc8cc4a8, 0xf03f1aa0, 0x7d2cd856, 0x3390ef22, 0x494ec787, 0x38d1c1d9, 0xcaa2fe8c, 0xd40b3698, 0xf581cfa6, 0x7ade28a5, 0xb78e26da, 0xadbfa43f, 0x3a9de42c, 0x78920d50, 0x5fcc9b6a, 0x7e466254, 0x8d13c2f6, 0xd8b8e890, 0x39f75e2e, 0xc3aff582, 0x5d80be9f, 0xd0937c69, 0xd52da96f, 0x2512b3cf, 0xac993bc8, 0x187da710, 0x9c636ee8, 0x3bbb7bdb, 0x267809cd, 0x5918f46e, 0x9ab701ec, 0x4f9aa883, 0x956e65e6, 0xffe67eaa, 0xbccf0821, 0x15e8e6ef, 0xe79bd9ba, 0x6f36ce4a, 0x9f09d4ea, 0xb07cd629, 0xa4b2af31, 0x3f23312a, 0xa59430c6, 0xa266c035, 0x4ebc3774, 0x82caa6fc, 0x90d0b0e0, 0xa7d81533, 0x04984af1, 0xecdaf741, 0xcd500e7f, 0x91f62f17, 0x4dd68d76, 0xefb04d43, 0xaa4d54cc, 0x9604dfe4, 0xd1b5e39e, 0x6a881b4c, 0x2c1fb8c1, 0x65517f46, 0x5eea049d, 0x8c355d01, 0x877473fa, 0x0b412efb, 0x671d5ab3, 0xdbd25292, 0x105633e9, 0xd647136d, 0xd7618c9a, 0xa10c7a37, 0xf8148e59, 0x133c89eb, 0xa927eece, 0x61c935b7, 0x1ce5ede1, 0x47b13c7a, 0xd2df599c, 0xf2733f55, 0x14ce7918, 0xc737bf73, 0xf7cdea53, 0xfdaa5b5f, 0x3d6f14df, 0x44db8678, 0xaff381ca, 0x68c43eb9, 0x24342c38, 0xa3405fc2, 0x1dc37216, 0xe2250cbc, 0x3c498b28, 0x0d9541ff, 0xa8017139, 0x0cb3de08, 0xb4e49cd8, 0x56c19064, 0xcb84617b, 0x32b670d5, 0x6c5c7448, 0xb85742d0];\n\n // Transformations for decryption key expansion\n var U1 = [0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927, 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45, 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb, 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381, 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf, 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66, 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28, 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012, 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec, 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e, 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd, 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7, 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89, 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b, 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815, 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f, 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa, 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8, 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36, 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c, 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742, 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea, 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4, 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e, 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360, 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502, 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87, 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd, 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3, 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621, 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f, 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55, 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26, 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844, 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba, 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480, 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce, 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67, 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929, 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713, 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed, 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f, 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3];\n var U2 = [0x00000000, 0x0b0e090d, 0x161c121a, 0x1d121b17, 0x2c382434, 0x27362d39, 0x3a24362e, 0x312a3f23, 0x58704868, 0x537e4165, 0x4e6c5a72, 0x4562537f, 0x74486c5c, 0x7f466551, 0x62547e46, 0x695a774b, 0xb0e090d0, 0xbbee99dd, 0xa6fc82ca, 0xadf28bc7, 0x9cd8b4e4, 0x97d6bde9, 0x8ac4a6fe, 0x81caaff3, 0xe890d8b8, 0xe39ed1b5, 0xfe8ccaa2, 0xf582c3af, 0xc4a8fc8c, 0xcfa6f581, 0xd2b4ee96, 0xd9bae79b, 0x7bdb3bbb, 0x70d532b6, 0x6dc729a1, 0x66c920ac, 0x57e31f8f, 0x5ced1682, 0x41ff0d95, 0x4af10498, 0x23ab73d3, 0x28a57ade, 0x35b761c9, 0x3eb968c4, 0x0f9357e7, 0x049d5eea, 0x198f45fd, 0x12814cf0, 0xcb3bab6b, 0xc035a266, 0xdd27b971, 0xd629b07c, 0xe7038f5f, 0xec0d8652, 0xf11f9d45, 0xfa119448, 0x934be303, 0x9845ea0e, 0x8557f119, 0x8e59f814, 0xbf73c737, 0xb47dce3a, 0xa96fd52d, 0xa261dc20, 0xf6ad766d, 0xfda37f60, 0xe0b16477, 0xebbf6d7a, 0xda955259, 0xd19b5b54, 0xcc894043, 0xc787494e, 0xaedd3e05, 0xa5d33708, 0xb8c12c1f, 0xb3cf2512, 0x82e51a31, 0x89eb133c, 0x94f9082b, 0x9ff70126, 0x464de6bd, 0x4d43efb0, 0x5051f4a7, 0x5b5ffdaa, 0x6a75c289, 0x617bcb84, 0x7c69d093, 0x7767d99e, 0x1e3daed5, 0x1533a7d8, 0x0821bccf, 0x032fb5c2, 0x32058ae1, 0x390b83ec, 0x241998fb, 0x2f1791f6, 0x8d764dd6, 0x867844db, 0x9b6a5fcc, 0x906456c1, 0xa14e69e2, 0xaa4060ef, 0xb7527bf8, 0xbc5c72f5, 0xd50605be, 0xde080cb3, 0xc31a17a4, 0xc8141ea9, 0xf93e218a, 0xf2302887, 0xef223390, 0xe42c3a9d, 0x3d96dd06, 0x3698d40b, 0x2b8acf1c, 0x2084c611, 0x11aef932, 0x1aa0f03f, 0x07b2eb28, 0x0cbce225, 0x65e6956e, 0x6ee89c63, 0x73fa8774, 0x78f48e79, 0x49deb15a, 0x42d0b857, 0x5fc2a340, 0x54ccaa4d, 0xf741ecda, 0xfc4fe5d7, 0xe15dfec0, 0xea53f7cd, 0xdb79c8ee, 0xd077c1e3, 0xcd65daf4, 0xc66bd3f9, 0xaf31a4b2, 0xa43fadbf, 0xb92db6a8, 0xb223bfa5, 0x83098086, 0x8807898b, 0x9515929c, 0x9e1b9b91, 0x47a17c0a, 0x4caf7507, 0x51bd6e10, 0x5ab3671d, 0x6b99583e, 0x60975133, 0x7d854a24, 0x768b4329, 0x1fd13462, 0x14df3d6f, 0x09cd2678, 0x02c32f75, 0x33e91056, 0x38e7195b, 0x25f5024c, 0x2efb0b41, 0x8c9ad761, 0x8794de6c, 0x9a86c57b, 0x9188cc76, 0xa0a2f355, 0xabacfa58, 0xb6bee14f, 0xbdb0e842, 0xd4ea9f09, 0xdfe49604, 0xc2f68d13, 0xc9f8841e, 0xf8d2bb3d, 0xf3dcb230, 0xeecea927, 0xe5c0a02a, 0x3c7a47b1, 0x37744ebc, 0x2a6655ab, 0x21685ca6, 0x10426385, 0x1b4c6a88, 0x065e719f, 0x0d507892, 0x640a0fd9, 0x6f0406d4, 0x72161dc3, 0x791814ce, 0x48322bed, 0x433c22e0, 0x5e2e39f7, 0x552030fa, 0x01ec9ab7, 0x0ae293ba, 0x17f088ad, 0x1cfe81a0, 0x2dd4be83, 0x26dab78e, 0x3bc8ac99, 0x30c6a594, 0x599cd2df, 0x5292dbd2, 0x4f80c0c5, 0x448ec9c8, 0x75a4f6eb, 0x7eaaffe6, 0x63b8e4f1, 0x68b6edfc, 0xb10c0a67, 0xba02036a, 0xa710187d, 0xac1e1170, 0x9d342e53, 0x963a275e, 0x8b283c49, 0x80263544, 0xe97c420f, 0xe2724b02, 0xff605015, 0xf46e5918, 0xc544663b, 0xce4a6f36, 0xd3587421, 0xd8567d2c, 0x7a37a10c, 0x7139a801, 0x6c2bb316, 0x6725ba1b, 0x560f8538, 0x5d018c35, 0x40139722, 0x4b1d9e2f, 0x2247e964, 0x2949e069, 0x345bfb7e, 0x3f55f273, 0x0e7fcd50, 0x0571c45d, 0x1863df4a, 0x136dd647, 0xcad731dc, 0xc1d938d1, 0xdccb23c6, 0xd7c52acb, 0xe6ef15e8, 0xede11ce5, 0xf0f307f2, 0xfbfd0eff, 0x92a779b4, 0x99a970b9, 0x84bb6bae, 0x8fb562a3, 0xbe9f5d80, 0xb591548d, 0xa8834f9a, 0xa38d4697];\n var U3 = [0x00000000, 0x0d0b0e09, 0x1a161c12, 0x171d121b, 0x342c3824, 0x3927362d, 0x2e3a2436, 0x23312a3f, 0x68587048, 0x65537e41, 0x724e6c5a, 0x7f456253, 0x5c74486c, 0x517f4665, 0x4662547e, 0x4b695a77, 0xd0b0e090, 0xddbbee99, 0xcaa6fc82, 0xc7adf28b, 0xe49cd8b4, 0xe997d6bd, 0xfe8ac4a6, 0xf381caaf, 0xb8e890d8, 0xb5e39ed1, 0xa2fe8cca, 0xaff582c3, 0x8cc4a8fc, 0x81cfa6f5, 0x96d2b4ee, 0x9bd9bae7, 0xbb7bdb3b, 0xb670d532, 0xa16dc729, 0xac66c920, 0x8f57e31f, 0x825ced16, 0x9541ff0d, 0x984af104, 0xd323ab73, 0xde28a57a, 0xc935b761, 0xc43eb968, 0xe70f9357, 0xea049d5e, 0xfd198f45, 0xf012814c, 0x6bcb3bab, 0x66c035a2, 0x71dd27b9, 0x7cd629b0, 0x5fe7038f, 0x52ec0d86, 0x45f11f9d, 0x48fa1194, 0x03934be3, 0x0e9845ea, 0x198557f1, 0x148e59f8, 0x37bf73c7, 0x3ab47dce, 0x2da96fd5, 0x20a261dc, 0x6df6ad76, 0x60fda37f, 0x77e0b164, 0x7aebbf6d, 0x59da9552, 0x54d19b5b, 0x43cc8940, 0x4ec78749, 0x05aedd3e, 0x08a5d337, 0x1fb8c12c, 0x12b3cf25, 0x3182e51a, 0x3c89eb13, 0x2b94f908, 0x269ff701, 0xbd464de6, 0xb04d43ef, 0xa75051f4, 0xaa5b5ffd, 0x896a75c2, 0x84617bcb, 0x937c69d0, 0x9e7767d9, 0xd51e3dae, 0xd81533a7, 0xcf0821bc, 0xc2032fb5, 0xe132058a, 0xec390b83, 0xfb241998, 0xf62f1791, 0xd68d764d, 0xdb867844, 0xcc9b6a5f, 0xc1906456, 0xe2a14e69, 0xefaa4060, 0xf8b7527b, 0xf5bc5c72, 0xbed50605, 0xb3de080c, 0xa4c31a17, 0xa9c8141e, 0x8af93e21, 0x87f23028, 0x90ef2233, 0x9de42c3a, 0x063d96dd, 0x0b3698d4, 0x1c2b8acf, 0x112084c6, 0x3211aef9, 0x3f1aa0f0, 0x2807b2eb, 0x250cbce2, 0x6e65e695, 0x636ee89c, 0x7473fa87, 0x7978f48e, 0x5a49deb1, 0x5742d0b8, 0x405fc2a3, 0x4d54ccaa, 0xdaf741ec, 0xd7fc4fe5, 0xc0e15dfe, 0xcdea53f7, 0xeedb79c8, 0xe3d077c1, 0xf4cd65da, 0xf9c66bd3, 0xb2af31a4, 0xbfa43fad, 0xa8b92db6, 0xa5b223bf, 0x86830980, 0x8b880789, 0x9c951592, 0x919e1b9b, 0x0a47a17c, 0x074caf75, 0x1051bd6e, 0x1d5ab367, 0x3e6b9958, 0x33609751, 0x247d854a, 0x29768b43, 0x621fd134, 0x6f14df3d, 0x7809cd26, 0x7502c32f, 0x5633e910, 0x5b38e719, 0x4c25f502, 0x412efb0b, 0x618c9ad7, 0x6c8794de, 0x7b9a86c5, 0x769188cc, 0x55a0a2f3, 0x58abacfa, 0x4fb6bee1, 0x42bdb0e8, 0x09d4ea9f, 0x04dfe496, 0x13c2f68d, 0x1ec9f884, 0x3df8d2bb, 0x30f3dcb2, 0x27eecea9, 0x2ae5c0a0, 0xb13c7a47, 0xbc37744e, 0xab2a6655, 0xa621685c, 0x85104263, 0x881b4c6a, 0x9f065e71, 0x920d5078, 0xd9640a0f, 0xd46f0406, 0xc372161d, 0xce791814, 0xed48322b, 0xe0433c22, 0xf75e2e39, 0xfa552030, 0xb701ec9a, 0xba0ae293, 0xad17f088, 0xa01cfe81, 0x832dd4be, 0x8e26dab7, 0x993bc8ac, 0x9430c6a5, 0xdf599cd2, 0xd25292db, 0xc54f80c0, 0xc8448ec9, 0xeb75a4f6, 0xe67eaaff, 0xf163b8e4, 0xfc68b6ed, 0x67b10c0a, 0x6aba0203, 0x7da71018, 0x70ac1e11, 0x539d342e, 0x5e963a27, 0x498b283c, 0x44802635, 0x0fe97c42, 0x02e2724b, 0x15ff6050, 0x18f46e59, 0x3bc54466, 0x36ce4a6f, 0x21d35874, 0x2cd8567d, 0x0c7a37a1, 0x017139a8, 0x166c2bb3, 0x1b6725ba, 0x38560f85, 0x355d018c, 0x22401397, 0x2f4b1d9e, 0x642247e9, 0x692949e0, 0x7e345bfb, 0x733f55f2, 0x500e7fcd, 0x5d0571c4, 0x4a1863df, 0x47136dd6, 0xdccad731, 0xd1c1d938, 0xc6dccb23, 0xcbd7c52a, 0xe8e6ef15, 0xe5ede11c, 0xf2f0f307, 0xfffbfd0e, 0xb492a779, 0xb999a970, 0xae84bb6b, 0xa38fb562, 0x80be9f5d, 0x8db59154, 0x9aa8834f, 0x97a38d46];\n var U4 = [0x00000000, 0x090d0b0e, 0x121a161c, 0x1b171d12, 0x24342c38, 0x2d392736, 0x362e3a24, 0x3f23312a, 0x48685870, 0x4165537e, 0x5a724e6c, 0x537f4562, 0x6c5c7448, 0x65517f46, 0x7e466254, 0x774b695a, 0x90d0b0e0, 0x99ddbbee, 0x82caa6fc, 0x8bc7adf2, 0xb4e49cd8, 0xbde997d6, 0xa6fe8ac4, 0xaff381ca, 0xd8b8e890, 0xd1b5e39e, 0xcaa2fe8c, 0xc3aff582, 0xfc8cc4a8, 0xf581cfa6, 0xee96d2b4, 0xe79bd9ba, 0x3bbb7bdb, 0x32b670d5, 0x29a16dc7, 0x20ac66c9, 0x1f8f57e3, 0x16825ced, 0x0d9541ff, 0x04984af1, 0x73d323ab, 0x7ade28a5, 0x61c935b7, 0x68c43eb9, 0x57e70f93, 0x5eea049d, 0x45fd198f, 0x4cf01281, 0xab6bcb3b, 0xa266c035, 0xb971dd27, 0xb07cd629, 0x8f5fe703, 0x8652ec0d, 0x9d45f11f, 0x9448fa11, 0xe303934b, 0xea0e9845, 0xf1198557, 0xf8148e59, 0xc737bf73, 0xce3ab47d, 0xd52da96f, 0xdc20a261, 0x766df6ad, 0x7f60fda3, 0x6477e0b1, 0x6d7aebbf, 0x5259da95, 0x5b54d19b, 0x4043cc89, 0x494ec787, 0x3e05aedd, 0x3708a5d3, 0x2c1fb8c1, 0x2512b3cf, 0x1a3182e5, 0x133c89eb, 0x082b94f9, 0x01269ff7, 0xe6bd464d, 0xefb04d43, 0xf4a75051, 0xfdaa5b5f, 0xc2896a75, 0xcb84617b, 0xd0937c69, 0xd99e7767, 0xaed51e3d, 0xa7d81533, 0xbccf0821, 0xb5c2032f, 0x8ae13205, 0x83ec390b, 0x98fb2419, 0x91f62f17, 0x4dd68d76, 0x44db8678, 0x5fcc9b6a, 0x56c19064, 0x69e2a14e, 0x60efaa40, 0x7bf8b752, 0x72f5bc5c, 0x05bed506, 0x0cb3de08, 0x17a4c31a, 0x1ea9c814, 0x218af93e, 0x2887f230, 0x3390ef22, 0x3a9de42c, 0xdd063d96, 0xd40b3698, 0xcf1c2b8a, 0xc6112084, 0xf93211ae, 0xf03f1aa0, 0xeb2807b2, 0xe2250cbc, 0x956e65e6, 0x9c636ee8, 0x877473fa, 0x8e7978f4, 0xb15a49de, 0xb85742d0, 0xa3405fc2, 0xaa4d54cc, 0xecdaf741, 0xe5d7fc4f, 0xfec0e15d, 0xf7cdea53, 0xc8eedb79, 0xc1e3d077, 0xdaf4cd65, 0xd3f9c66b, 0xa4b2af31, 0xadbfa43f, 0xb6a8b92d, 0xbfa5b223, 0x80868309, 0x898b8807, 0x929c9515, 0x9b919e1b, 0x7c0a47a1, 0x75074caf, 0x6e1051bd, 0x671d5ab3, 0x583e6b99, 0x51336097, 0x4a247d85, 0x4329768b, 0x34621fd1, 0x3d6f14df, 0x267809cd, 0x2f7502c3, 0x105633e9, 0x195b38e7, 0x024c25f5, 0x0b412efb, 0xd7618c9a, 0xde6c8794, 0xc57b9a86, 0xcc769188, 0xf355a0a2, 0xfa58abac, 0xe14fb6be, 0xe842bdb0, 0x9f09d4ea, 0x9604dfe4, 0x8d13c2f6, 0x841ec9f8, 0xbb3df8d2, 0xb230f3dc, 0xa927eece, 0xa02ae5c0, 0x47b13c7a, 0x4ebc3774, 0x55ab2a66, 0x5ca62168, 0x63851042, 0x6a881b4c, 0x719f065e, 0x78920d50, 0x0fd9640a, 0x06d46f04, 0x1dc37216, 0x14ce7918, 0x2bed4832, 0x22e0433c, 0x39f75e2e, 0x30fa5520, 0x9ab701ec, 0x93ba0ae2, 0x88ad17f0, 0x81a01cfe, 0xbe832dd4, 0xb78e26da, 0xac993bc8, 0xa59430c6, 0xd2df599c, 0xdbd25292, 0xc0c54f80, 0xc9c8448e, 0xf6eb75a4, 0xffe67eaa, 0xe4f163b8, 0xedfc68b6, 0x0a67b10c, 0x036aba02, 0x187da710, 0x1170ac1e, 0x2e539d34, 0x275e963a, 0x3c498b28, 0x35448026, 0x420fe97c, 0x4b02e272, 0x5015ff60, 0x5918f46e, 0x663bc544, 0x6f36ce4a, 0x7421d358, 0x7d2cd856, 0xa10c7a37, 0xa8017139, 0xb3166c2b, 0xba1b6725, 0x8538560f, 0x8c355d01, 0x97224013, 0x9e2f4b1d, 0xe9642247, 0xe0692949, 0xfb7e345b, 0xf2733f55, 0xcd500e7f, 0xc45d0571, 0xdf4a1863, 0xd647136d, 0x31dccad7, 0x38d1c1d9, 0x23c6dccb, 0x2acbd7c5, 0x15e8e6ef, 0x1ce5ede1, 0x07f2f0f3, 0x0efffbfd, 0x79b492a7, 0x70b999a9, 0x6bae84bb, 0x62a38fb5, 0x5d80be9f, 0x548db591, 0x4f9aa883, 0x4697a38d];\n\n function convertToInt32(bytes) {\n var result = [];\n for (var i = 0; i < bytes.length; i += 4) {\n result.push(\n (bytes[i ] << 24) |\n (bytes[i + 1] << 16) |\n (bytes[i + 2] << 8) |\n bytes[i + 3]\n );\n }\n return result;\n }\n\n var AES = function(key) {\n if (!(this instanceof AES)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n Object.defineProperty(this, 'key', {\n value: coerceArray(key, true)\n });\n\n this._prepare();\n }\n\n\n AES.prototype._prepare = function() {\n\n var rounds = numberOfRounds[this.key.length];\n if (rounds == null) {\n throw new Error('invalid key size (must be 16, 24 or 32 bytes)');\n }\n\n // encryption round keys\n this._Ke = [];\n\n // decryption round keys\n this._Kd = [];\n\n for (var i = 0; i <= rounds; i++) {\n this._Ke.push([0, 0, 0, 0]);\n this._Kd.push([0, 0, 0, 0]);\n }\n\n var roundKeyCount = (rounds + 1) * 4;\n var KC = this.key.length / 4;\n\n // convert the key into ints\n var tk = convertToInt32(this.key);\n\n // copy values into round key arrays\n var index;\n for (var i = 0; i < KC; i++) {\n index = i >> 2;\n this._Ke[index][i % 4] = tk[i];\n this._Kd[rounds - index][i % 4] = tk[i];\n }\n\n // key expansion (fips-197 section 5.2)\n var rconpointer = 0;\n var t = KC, tt;\n while (t < roundKeyCount) {\n tt = tk[KC - 1];\n tk[0] ^= ((S[(tt >> 16) & 0xFF] << 24) ^\n (S[(tt >> 8) & 0xFF] << 16) ^\n (S[ tt & 0xFF] << 8) ^\n S[(tt >> 24) & 0xFF] ^\n (rcon[rconpointer] << 24));\n rconpointer += 1;\n\n // key expansion (for non-256 bit)\n if (KC != 8) {\n for (var i = 1; i < KC; i++) {\n tk[i] ^= tk[i - 1];\n }\n\n // key expansion for 256-bit keys is \"slightly different\" (fips-197)\n } else {\n for (var i = 1; i < (KC / 2); i++) {\n tk[i] ^= tk[i - 1];\n }\n tt = tk[(KC / 2) - 1];\n\n tk[KC / 2] ^= (S[ tt & 0xFF] ^\n (S[(tt >> 8) & 0xFF] << 8) ^\n (S[(tt >> 16) & 0xFF] << 16) ^\n (S[(tt >> 24) & 0xFF] << 24));\n\n for (var i = (KC / 2) + 1; i < KC; i++) {\n tk[i] ^= tk[i - 1];\n }\n }\n\n // copy values into round key arrays\n var i = 0, r, c;\n while (i < KC && t < roundKeyCount) {\n r = t >> 2;\n c = t % 4;\n this._Ke[r][c] = tk[i];\n this._Kd[rounds - r][c] = tk[i++];\n t++;\n }\n }\n\n // inverse-cipher-ify the decryption round key (fips-197 section 5.3)\n for (var r = 1; r < rounds; r++) {\n for (var c = 0; c < 4; c++) {\n tt = this._Kd[r][c];\n this._Kd[r][c] = (U1[(tt >> 24) & 0xFF] ^\n U2[(tt >> 16) & 0xFF] ^\n U3[(tt >> 8) & 0xFF] ^\n U4[ tt & 0xFF]);\n }\n }\n }\n\n AES.prototype.encrypt = function(plaintext) {\n if (plaintext.length != 16) {\n throw new Error('invalid plaintext size (must be 16 bytes)');\n }\n\n var rounds = this._Ke.length - 1;\n var a = [0, 0, 0, 0];\n\n // convert plaintext to (ints ^ key)\n var t = convertToInt32(plaintext);\n for (var i = 0; i < 4; i++) {\n t[i] ^= this._Ke[0][i];\n }\n\n // apply round transforms\n for (var r = 1; r < rounds; r++) {\n for (var i = 0; i < 4; i++) {\n a[i] = (T1[(t[ i ] >> 24) & 0xff] ^\n T2[(t[(i + 1) % 4] >> 16) & 0xff] ^\n T3[(t[(i + 2) % 4] >> 8) & 0xff] ^\n T4[ t[(i + 3) % 4] & 0xff] ^\n this._Ke[r][i]);\n }\n t = a.slice();\n }\n\n // the last round is special\n var result = createArray(16), tt;\n for (var i = 0; i < 4; i++) {\n tt = this._Ke[rounds][i];\n result[4 * i ] = (S[(t[ i ] >> 24) & 0xff] ^ (tt >> 24)) & 0xff;\n result[4 * i + 1] = (S[(t[(i + 1) % 4] >> 16) & 0xff] ^ (tt >> 16)) & 0xff;\n result[4 * i + 2] = (S[(t[(i + 2) % 4] >> 8) & 0xff] ^ (tt >> 8)) & 0xff;\n result[4 * i + 3] = (S[ t[(i + 3) % 4] & 0xff] ^ tt ) & 0xff;\n }\n\n return result;\n }\n\n AES.prototype.decrypt = function(ciphertext) {\n if (ciphertext.length != 16) {\n throw new Error('invalid ciphertext size (must be 16 bytes)');\n }\n\n var rounds = this._Kd.length - 1;\n var a = [0, 0, 0, 0];\n\n // convert plaintext to (ints ^ key)\n var t = convertToInt32(ciphertext);\n for (var i = 0; i < 4; i++) {\n t[i] ^= this._Kd[0][i];\n }\n\n // apply round transforms\n for (var r = 1; r < rounds; r++) {\n for (var i = 0; i < 4; i++) {\n a[i] = (T5[(t[ i ] >> 24) & 0xff] ^\n T6[(t[(i + 3) % 4] >> 16) & 0xff] ^\n T7[(t[(i + 2) % 4] >> 8) & 0xff] ^\n T8[ t[(i + 1) % 4] & 0xff] ^\n this._Kd[r][i]);\n }\n t = a.slice();\n }\n\n // the last round is special\n var result = createArray(16), tt;\n for (var i = 0; i < 4; i++) {\n tt = this._Kd[rounds][i];\n result[4 * i ] = (Si[(t[ i ] >> 24) & 0xff] ^ (tt >> 24)) & 0xff;\n result[4 * i + 1] = (Si[(t[(i + 3) % 4] >> 16) & 0xff] ^ (tt >> 16)) & 0xff;\n result[4 * i + 2] = (Si[(t[(i + 2) % 4] >> 8) & 0xff] ^ (tt >> 8)) & 0xff;\n result[4 * i + 3] = (Si[ t[(i + 1) % 4] & 0xff] ^ tt ) & 0xff;\n }\n\n return result;\n }\n\n\n /**\n * Mode Of Operation - Electonic Codebook (ECB)\n */\n var ModeOfOperationECB = function(key) {\n if (!(this instanceof ModeOfOperationECB)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Electronic Code Block\";\n this.name = \"ecb\";\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationECB.prototype.encrypt = function(plaintext) {\n plaintext = coerceArray(plaintext);\n\n if ((plaintext.length % 16) !== 0) {\n throw new Error('invalid plaintext size (must be multiple of 16 bytes)');\n }\n\n var ciphertext = createArray(plaintext.length);\n var block = createArray(16);\n\n for (var i = 0; i < plaintext.length; i += 16) {\n copyArray(plaintext, block, 0, i, i + 16);\n block = this._aes.encrypt(block);\n copyArray(block, ciphertext, i);\n }\n\n return ciphertext;\n }\n\n ModeOfOperationECB.prototype.decrypt = function(ciphertext) {\n ciphertext = coerceArray(ciphertext);\n\n if ((ciphertext.length % 16) !== 0) {\n throw new Error('invalid ciphertext size (must be multiple of 16 bytes)');\n }\n\n var plaintext = createArray(ciphertext.length);\n var block = createArray(16);\n\n for (var i = 0; i < ciphertext.length; i += 16) {\n copyArray(ciphertext, block, 0, i, i + 16);\n block = this._aes.decrypt(block);\n copyArray(block, plaintext, i);\n }\n\n return plaintext;\n }\n\n\n /**\n * Mode Of Operation - Cipher Block Chaining (CBC)\n */\n var ModeOfOperationCBC = function(key, iv) {\n if (!(this instanceof ModeOfOperationCBC)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Cipher Block Chaining\";\n this.name = \"cbc\";\n\n if (!iv) {\n iv = createArray(16);\n\n } else if (iv.length != 16) {\n throw new Error('invalid initialation vector size (must be 16 bytes)');\n }\n\n this._lastCipherblock = coerceArray(iv, true);\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationCBC.prototype.encrypt = function(plaintext) {\n plaintext = coerceArray(plaintext);\n\n if ((plaintext.length % 16) !== 0) {\n throw new Error('invalid plaintext size (must be multiple of 16 bytes)');\n }\n\n var ciphertext = createArray(plaintext.length);\n var block = createArray(16);\n\n for (var i = 0; i < plaintext.length; i += 16) {\n copyArray(plaintext, block, 0, i, i + 16);\n\n for (var j = 0; j < 16; j++) {\n block[j] ^= this._lastCipherblock[j];\n }\n\n this._lastCipherblock = this._aes.encrypt(block);\n copyArray(this._lastCipherblock, ciphertext, i);\n }\n\n return ciphertext;\n }\n\n ModeOfOperationCBC.prototype.decrypt = function(ciphertext) {\n ciphertext = coerceArray(ciphertext);\n\n if ((ciphertext.length % 16) !== 0) {\n throw new Error('invalid ciphertext size (must be multiple of 16 bytes)');\n }\n\n var plaintext = createArray(ciphertext.length);\n var block = createArray(16);\n\n for (var i = 0; i < ciphertext.length; i += 16) {\n copyArray(ciphertext, block, 0, i, i + 16);\n block = this._aes.decrypt(block);\n\n for (var j = 0; j < 16; j++) {\n plaintext[i + j] = block[j] ^ this._lastCipherblock[j];\n }\n\n copyArray(ciphertext, this._lastCipherblock, 0, i, i + 16);\n }\n\n return plaintext;\n }\n\n\n /**\n * Mode Of Operation - Cipher Feedback (CFB)\n */\n var ModeOfOperationCFB = function(key, iv, segmentSize) {\n if (!(this instanceof ModeOfOperationCFB)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Cipher Feedback\";\n this.name = \"cfb\";\n\n if (!iv) {\n iv = createArray(16);\n\n } else if (iv.length != 16) {\n throw new Error('invalid initialation vector size (must be 16 size)');\n }\n\n if (!segmentSize) { segmentSize = 1; }\n\n this.segmentSize = segmentSize;\n\n this._shiftRegister = coerceArray(iv, true);\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationCFB.prototype.encrypt = function(plaintext) {\n if ((plaintext.length % this.segmentSize) != 0) {\n throw new Error('invalid plaintext size (must be segmentSize bytes)');\n }\n\n var encrypted = coerceArray(plaintext, true);\n\n var xorSegment;\n for (var i = 0; i < encrypted.length; i += this.segmentSize) {\n xorSegment = this._aes.encrypt(this._shiftRegister);\n for (var j = 0; j < this.segmentSize; j++) {\n encrypted[i + j] ^= xorSegment[j];\n }\n\n // Shift the register\n copyArray(this._shiftRegister, this._shiftRegister, 0, this.segmentSize);\n copyArray(encrypted, this._shiftRegister, 16 - this.segmentSize, i, i + this.segmentSize);\n }\n\n return encrypted;\n }\n\n ModeOfOperationCFB.prototype.decrypt = function(ciphertext) {\n if ((ciphertext.length % this.segmentSize) != 0) {\n throw new Error('invalid ciphertext size (must be segmentSize bytes)');\n }\n\n var plaintext = coerceArray(ciphertext, true);\n\n var xorSegment;\n for (var i = 0; i < plaintext.length; i += this.segmentSize) {\n xorSegment = this._aes.encrypt(this._shiftRegister);\n\n for (var j = 0; j < this.segmentSize; j++) {\n plaintext[i + j] ^= xorSegment[j];\n }\n\n // Shift the register\n copyArray(this._shiftRegister, this._shiftRegister, 0, this.segmentSize);\n copyArray(ciphertext, this._shiftRegister, 16 - this.segmentSize, i, i + this.segmentSize);\n }\n\n return plaintext;\n }\n\n /**\n * Mode Of Operation - Output Feedback (OFB)\n */\n var ModeOfOperationOFB = function(key, iv) {\n if (!(this instanceof ModeOfOperationOFB)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Output Feedback\";\n this.name = \"ofb\";\n\n if (!iv) {\n iv = createArray(16);\n\n } else if (iv.length != 16) {\n throw new Error('invalid initialation vector size (must be 16 bytes)');\n }\n\n this._lastPrecipher = coerceArray(iv, true);\n this._lastPrecipherIndex = 16;\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationOFB.prototype.encrypt = function(plaintext) {\n var encrypted = coerceArray(plaintext, true);\n\n for (var i = 0; i < encrypted.length; i++) {\n if (this._lastPrecipherIndex === 16) {\n this._lastPrecipher = this._aes.encrypt(this._lastPrecipher);\n this._lastPrecipherIndex = 0;\n }\n encrypted[i] ^= this._lastPrecipher[this._lastPrecipherIndex++];\n }\n\n return encrypted;\n }\n\n // Decryption is symetric\n ModeOfOperationOFB.prototype.decrypt = ModeOfOperationOFB.prototype.encrypt;\n\n\n /**\n * Counter object for CTR common mode of operation\n */\n var Counter = function(initialValue) {\n if (!(this instanceof Counter)) {\n throw Error('Counter must be instanitated with `new`');\n }\n\n // We allow 0, but anything false-ish uses the default 1\n if (initialValue !== 0 && !initialValue) { initialValue = 1; }\n\n if (typeof(initialValue) === 'number') {\n this._counter = createArray(16);\n this.setValue(initialValue);\n\n } else {\n this.setBytes(initialValue);\n }\n }\n\n Counter.prototype.setValue = function(value) {\n if (typeof(value) !== 'number' || parseInt(value) != value) {\n throw new Error('invalid counter value (must be an integer)');\n }\n\n for (var index = 15; index >= 0; --index) {\n this._counter[index] = value % 256;\n value = value >> 8;\n }\n }\n\n Counter.prototype.setBytes = function(bytes) {\n bytes = coerceArray(bytes, true);\n\n if (bytes.length != 16) {\n throw new Error('invalid counter bytes size (must be 16 bytes)');\n }\n\n this._counter = bytes;\n };\n\n Counter.prototype.increment = function() {\n for (var i = 15; i >= 0; i--) {\n if (this._counter[i] === 255) {\n this._counter[i] = 0;\n } else {\n this._counter[i]++;\n break;\n }\n }\n }\n\n\n /**\n * Mode Of Operation - Counter (CTR)\n */\n var ModeOfOperationCTR = function(key, counter) {\n if (!(this instanceof ModeOfOperationCTR)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Counter\";\n this.name = \"ctr\";\n\n if (!(counter instanceof Counter)) {\n counter = new Counter(counter)\n }\n\n this._counter = counter;\n\n this._remainingCounter = null;\n this._remainingCounterIndex = 16;\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationCTR.prototype.encrypt = function(plaintext) {\n var encrypted = coerceArray(plaintext, true);\n\n for (var i = 0; i < encrypted.length; i++) {\n if (this._remainingCounterIndex === 16) {\n this._remainingCounter = this._aes.encrypt(this._counter._counter);\n this._remainingCounterIndex = 0;\n this._counter.increment();\n }\n encrypted[i] ^= this._remainingCounter[this._remainingCounterIndex++];\n }\n\n return encrypted;\n }\n\n // Decryption is symetric\n ModeOfOperationCTR.prototype.decrypt = ModeOfOperationCTR.prototype.encrypt;\n\n\n ///////////////////////\n // Padding\n\n // See:https://tools.ietf.org/html/rfc2315\n function pkcs7pad(data) {\n data = coerceArray(data, true);\n var padder = 16 - (data.length % 16);\n var result = createArray(data.length + padder);\n copyArray(data, result);\n for (var i = data.length; i < result.length; i++) {\n result[i] = padder;\n }\n return result;\n }\n\n function pkcs7strip(data) {\n data = coerceArray(data, true);\n if (data.length < 16) { throw new Error('PKCS#7 invalid length'); }\n\n var padder = data[data.length - 1];\n if (padder > 16) { throw new Error('PKCS#7 padding byte out of range'); }\n\n var length = data.length - padder;\n for (var i = 0; i < padder; i++) {\n if (data[length + i] !== padder) {\n throw new Error('PKCS#7 invalid padding byte');\n }\n }\n\n var result = createArray(length);\n copyArray(data, result, 0, 0, length);\n return result;\n }\n\n ///////////////////////\n // Exporting\n\n\n // The block cipher\n var aesjs = {\n AES: AES,\n Counter: Counter,\n\n ModeOfOperation: {\n ecb: ModeOfOperationECB,\n cbc: ModeOfOperationCBC,\n cfb: ModeOfOperationCFB,\n ofb: ModeOfOperationOFB,\n ctr: ModeOfOperationCTR\n },\n\n utils: {\n hex: convertHex,\n utf8: convertUtf8\n },\n\n padding: {\n pkcs7: {\n pad: pkcs7pad,\n strip: pkcs7strip\n }\n },\n\n _arrayTest: {\n coerceArray: coerceArray,\n createArray: createArray,\n copyArray: copyArray,\n }\n };\n\n\n // node.js\n if (typeof exports !== 'undefined') {\n module.exports = aesjs\n\n // RequireJS/AMD\n // http://www.requirejs.org/docs/api.html\n // https://github.com/amdjs/amdjs-api/wiki/AMD\n } else if (typeof(define) === 'function' && define.amd) {\n define(aesjs);\n\n // Web Browsers\n } else {\n\n // If there was an existing library at \"aesjs\" make sure it's still available\n if (root.aesjs) {\n aesjs._aesjs = root.aesjs;\n }\n\n root.aesjs = aesjs;\n }\n\n\n})(this);\n", "\"use strict\";\n\n(function(root) {\n const MAX_VALUE = 0x7fffffff;\n\n // The SHA256 and PBKDF2 implementation are from scrypt-async-js:\n // See: https://github.com/dchest/scrypt-async-js\n function SHA256(m) {\n const K = new Uint32Array([\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\n let h0 = 0x6a09e667, h1 = 0xbb67ae85, h2 = 0x3c6ef372, h3 = 0xa54ff53a;\n let h4 = 0x510e527f, h5 = 0x9b05688c, h6 = 0x1f83d9ab, h7 = 0x5be0cd19;\n const w = new Uint32Array(64);\n\n function blocks(p) {\n let off = 0, len = p.length;\n while (len >= 64) {\n let a = h0, b = h1, c = h2, d = h3, e = h4, f = h5, g = h6, h = h7, u, i, j, t1, t2;\n\n for (i = 0; i < 16; i++) {\n j = off + i*4;\n w[i] = ((p[j] & 0xff)<<24) | ((p[j+1] & 0xff)<<16) |\n ((p[j+2] & 0xff)<<8) | (p[j+3] & 0xff);\n }\n\n for (i = 16; i < 64; i++) {\n u = w[i-2];\n t1 = ((u>>>17) | (u<<(32-17))) ^ ((u>>>19) | (u<<(32-19))) ^ (u>>>10);\n\n u = w[i-15];\n 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)) | 0;\n }\n\n for (i = 0; i < 64; i++) {\n 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 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 h0 = (h0 + a) | 0;\n h1 = (h1 + b) | 0;\n h2 = (h2 + c) | 0;\n h3 = (h3 + d) | 0;\n h4 = (h4 + e) | 0;\n h5 = (h5 + f) | 0;\n h6 = (h6 + g) | 0;\n h7 = (h7 + h) | 0;\n\n off += 64;\n len -= 64;\n }\n }\n\n blocks(m);\n\n let i, bytesLeft = m.length % 64,\n bitLenHi = (m.length / 0x20000000) | 0,\n bitLenLo = m.length << 3,\n numZeros = (bytesLeft < 56) ? 56 : 120,\n p = m.slice(m.length - bytesLeft, m.length);\n\n p.push(0x80);\n for (i = bytesLeft + 1; i < numZeros; i++) { p.push(0); }\n p.push((bitLenHi >>> 24) & 0xff);\n p.push((bitLenHi >>> 16) & 0xff);\n p.push((bitLenHi >>> 8) & 0xff);\n p.push((bitLenHi >>> 0) & 0xff);\n p.push((bitLenLo >>> 24) & 0xff);\n p.push((bitLenLo >>> 16) & 0xff);\n p.push((bitLenLo >>> 8) & 0xff);\n p.push((bitLenLo >>> 0) & 0xff);\n\n blocks(p);\n\n return [\n (h0 >>> 24) & 0xff, (h0 >>> 16) & 0xff, (h0 >>> 8) & 0xff, (h0 >>> 0) & 0xff,\n (h1 >>> 24) & 0xff, (h1 >>> 16) & 0xff, (h1 >>> 8) & 0xff, (h1 >>> 0) & 0xff,\n (h2 >>> 24) & 0xff, (h2 >>> 16) & 0xff, (h2 >>> 8) & 0xff, (h2 >>> 0) & 0xff,\n (h3 >>> 24) & 0xff, (h3 >>> 16) & 0xff, (h3 >>> 8) & 0xff, (h3 >>> 0) & 0xff,\n (h4 >>> 24) & 0xff, (h4 >>> 16) & 0xff, (h4 >>> 8) & 0xff, (h4 >>> 0) & 0xff,\n (h5 >>> 24) & 0xff, (h5 >>> 16) & 0xff, (h5 >>> 8) & 0xff, (h5 >>> 0) & 0xff,\n (h6 >>> 24) & 0xff, (h6 >>> 16) & 0xff, (h6 >>> 8) & 0xff, (h6 >>> 0) & 0xff,\n (h7 >>> 24) & 0xff, (h7 >>> 16) & 0xff, (h7 >>> 8) & 0xff, (h7 >>> 0) & 0xff\n ];\n }\n\n function PBKDF2_HMAC_SHA256_OneIter(password, salt, dkLen) {\n // compress password if it's longer than hash block length\n password = (password.length <= 64) ? password : SHA256(password);\n\n const innerLen = 64 + salt.length + 4;\n const inner = new Array(innerLen);\n const outerKey = new Array(64);\n\n let i;\n let dk = [];\n\n // inner = (password ^ ipad) || salt || counter\n for (i = 0; i < 64; i++) { inner[i] = 0x36; }\n for (i = 0; i < password.length; i++) { inner[i] ^= password[i]; }\n for (i = 0; i < salt.length; i++) { inner[64 + i] = salt[i]; }\n for (i = innerLen - 4; i < innerLen; i++) { inner[i] = 0; }\n\n // outerKey = password ^ opad\n for (i = 0; i < 64; i++) outerKey[i] = 0x5c;\n for (i = 0; i < password.length; i++) outerKey[i] ^= password[i];\n\n // increments counter inside inner\n function incrementCounter() {\n for (let i = innerLen - 1; i >= innerLen - 4; i--) {\n inner[i]++;\n if (inner[i] <= 0xff) return;\n inner[i] = 0;\n }\n }\n\n // output blocks = SHA256(outerKey || SHA256(inner)) ...\n while (dkLen >= 32) {\n incrementCounter();\n dk = dk.concat(SHA256(outerKey.concat(SHA256(inner))));\n dkLen -= 32;\n }\n if (dkLen > 0) {\n incrementCounter();\n dk = dk.concat(SHA256(outerKey.concat(SHA256(inner))).slice(0, dkLen));\n }\n\n return dk;\n }\n\n // The following is an adaptation of scryptsy\n // See: https://www.npmjs.com/package/scryptsy\n function blockmix_salsa8(BY, Yi, r, x, _X) {\n let i;\n\n arraycopy(BY, (2 * r - 1) * 16, _X, 0, 16);\n for (i = 0; i < 2 * r; i++) {\n blockxor(BY, i * 16, _X, 16);\n salsa20_8(_X, x);\n arraycopy(_X, 0, BY, Yi + (i * 16), 16);\n }\n\n for (i = 0; i < r; i++) {\n arraycopy(BY, Yi + (i * 2) * 16, BY, (i * 16), 16);\n }\n\n for (i = 0; i < r; i++) {\n arraycopy(BY, Yi + (i * 2 + 1) * 16, BY, (i + r) * 16, 16);\n }\n }\n\n function R(a, b) {\n return (a << b) | (a >>> (32 - b));\n }\n\n function salsa20_8(B, x) {\n arraycopy(B, 0, x, 0, 16);\n\n for (let i = 8; i > 0; i -= 2) {\n x[ 4] ^= R(x[ 0] + x[12], 7);\n x[ 8] ^= R(x[ 4] + x[ 0], 9);\n x[12] ^= R(x[ 8] + x[ 4], 13);\n x[ 0] ^= R(x[12] + x[ 8], 18);\n x[ 9] ^= R(x[ 5] + x[ 1], 7);\n x[13] ^= R(x[ 9] + x[ 5], 9);\n x[ 1] ^= R(x[13] + x[ 9], 13);\n x[ 5] ^= R(x[ 1] + x[13], 18);\n x[14] ^= R(x[10] + x[ 6], 7);\n x[ 2] ^= R(x[14] + x[10], 9);\n x[ 6] ^= R(x[ 2] + x[14], 13);\n x[10] ^= R(x[ 6] + x[ 2], 18);\n x[ 3] ^= R(x[15] + x[11], 7);\n x[ 7] ^= R(x[ 3] + x[15], 9);\n x[11] ^= R(x[ 7] + x[ 3], 13);\n x[15] ^= R(x[11] + x[ 7], 18);\n x[ 1] ^= R(x[ 0] + x[ 3], 7);\n x[ 2] ^= R(x[ 1] + x[ 0], 9);\n x[ 3] ^= R(x[ 2] + x[ 1], 13);\n x[ 0] ^= R(x[ 3] + x[ 2], 18);\n x[ 6] ^= R(x[ 5] + x[ 4], 7);\n x[ 7] ^= R(x[ 6] + x[ 5], 9);\n x[ 4] ^= R(x[ 7] + x[ 6], 13);\n x[ 5] ^= R(x[ 4] + x[ 7], 18);\n x[11] ^= R(x[10] + x[ 9], 7);\n x[ 8] ^= R(x[11] + x[10], 9);\n x[ 9] ^= R(x[ 8] + x[11], 13);\n x[10] ^= R(x[ 9] + x[ 8], 18);\n x[12] ^= R(x[15] + x[14], 7);\n x[13] ^= R(x[12] + x[15], 9);\n x[14] ^= R(x[13] + x[12], 13);\n x[15] ^= R(x[14] + x[13], 18);\n }\n\n for (let i = 0; i < 16; ++i) {\n B[i] += x[i];\n }\n }\n\n // naive approach... going back to loop unrolling may yield additional performance\n function blockxor(S, Si, D, len) {\n for (let i = 0; i < len; i++) {\n D[i] ^= S[Si + i]\n }\n }\n\n function arraycopy(src, srcPos, dest, destPos, length) {\n while (length--) {\n dest[destPos++] = src[srcPos++];\n }\n }\n\n function checkBufferish(o) {\n if (!o || typeof(o.length) !== 'number') { return false; }\n\n for (let i = 0; i < o.length; i++) {\n const v = o[i];\n if (typeof(v) !== 'number' || v % 1 || v < 0 || v >= 256) {\n return false;\n }\n }\n\n return true;\n }\n\n function ensureInteger(value, name) {\n if (typeof(value) !== \"number\" || (value % 1)) { throw new Error('invalid ' + name); }\n return value;\n }\n\n // N = Cpu cost, r = Memory cost, p = parallelization cost\n // callback(error, progress, key)\n function _scrypt(password, salt, N, r, p, dkLen, callback) {\n\n N = ensureInteger(N, 'N');\n r = ensureInteger(r, 'r');\n p = ensureInteger(p, 'p');\n\n dkLen = ensureInteger(dkLen, 'dkLen');\n\n if (N === 0 || (N & (N - 1)) !== 0) { throw new Error('N must be power of 2'); }\n\n if (N > MAX_VALUE / 128 / r) { throw new Error('N too large'); }\n if (r > MAX_VALUE / 128 / p) { throw new Error('r too large'); }\n\n if (!checkBufferish(password)) {\n throw new Error('password must be an array or buffer');\n }\n password = Array.prototype.slice.call(password);\n\n if (!checkBufferish(salt)) {\n throw new Error('salt must be an array or buffer');\n }\n salt = Array.prototype.slice.call(salt);\n\n let b = PBKDF2_HMAC_SHA256_OneIter(password, salt, p * 128 * r);\n const B = new Uint32Array(p * 32 * r)\n for (let i = 0; i < B.length; i++) {\n const j = i * 4;\n B[i] = ((b[j + 3] & 0xff) << 24) |\n ((b[j + 2] & 0xff) << 16) |\n ((b[j + 1] & 0xff) << 8) |\n ((b[j + 0] & 0xff) << 0);\n }\n\n const XY = new Uint32Array(64 * r);\n const V = new Uint32Array(32 * r * N);\n\n const Yi = 32 * r;\n\n // scratch space\n const x = new Uint32Array(16); // salsa20_8\n const _X = new Uint32Array(16); // blockmix_salsa8\n\n const totalOps = p * N * 2;\n let currentOp = 0;\n let lastPercent10 = null;\n\n // Set this to true to abandon the scrypt on the next step\n let stop = false;\n\n // State information\n let state = 0;\n let i0 = 0, i1;\n let Bi;\n\n // How many blockmix_salsa8 can we do per step?\n const limit = callback ? parseInt(1000 / r): 0xffffffff;\n\n // Trick from scrypt-async; if there is a setImmediate shim in place, use it\n const nextTick = (typeof(setImmediate) !== 'undefined') ? setImmediate : setTimeout;\n\n // This is really all I changed; making scryptsy a state machine so we occasionally\n // stop and give other evnts on the evnt loop a chance to run. ~RicMoo\n const incrementalSMix = function() {\n if (stop) {\n return callback(new Error('cancelled'), currentOp / totalOps);\n }\n\n let steps;\n\n switch (state) {\n case 0:\n // for (var i = 0; i < p; i++)...\n Bi = i0 * 32 * r;\n\n arraycopy(B, Bi, XY, 0, Yi); // ROMix - 1\n\n state = 1; // Move to ROMix 2\n i1 = 0;\n\n // Fall through\n\n case 1:\n\n // Run up to 1000 steps of the first inner smix loop\n steps = N - i1;\n if (steps > limit) { steps = limit; }\n for (let i = 0; i < steps; i++) { // ROMix - 2\n arraycopy(XY, 0, V, (i1 + i) * Yi, Yi) // ROMix - 3\n blockmix_salsa8(XY, Yi, r, x, _X); // ROMix - 4\n }\n\n // for (var i = 0; i < N; i++)\n i1 += steps;\n currentOp += steps;\n\n if (callback) {\n // Call the callback with the progress (optionally stopping us)\n const percent10 = parseInt(1000 * currentOp / totalOps);\n if (percent10 !== lastPercent10) {\n stop = callback(null, currentOp / totalOps);\n if (stop) { break; }\n lastPercent10 = percent10;\n }\n }\n\n if (i1 < N) { break; }\n\n i1 = 0; // Move to ROMix 6\n state = 2;\n\n // Fall through\n\n case 2:\n\n // Run up to 1000 steps of the second inner smix loop\n steps = N - i1;\n if (steps > limit) { steps = limit; }\n for (let i = 0; i < steps; i++) { // ROMix - 6\n const offset = (2 * r - 1) * 16; // ROMix - 7\n const j = XY[offset] & (N - 1);\n blockxor(V, j * Yi, XY, Yi); // ROMix - 8 (inner)\n blockmix_salsa8(XY, Yi, r, x, _X); // ROMix - 9 (outer)\n }\n\n // for (var i = 0; i < N; i++)...\n i1 += steps;\n currentOp += steps;\n\n // Call the callback with the progress (optionally stopping us)\n if (callback) {\n const percent10 = parseInt(1000 * currentOp / totalOps);\n if (percent10 !== lastPercent10) {\n stop = callback(null, currentOp / totalOps);\n if (stop) { break; }\n lastPercent10 = percent10;\n }\n }\n\n if (i1 < N) { break; }\n\n arraycopy(XY, 0, B, Bi, Yi); // ROMix - 10\n\n // for (var i = 0; i < p; i++)...\n i0++;\n if (i0 < p) {\n state = 0;\n break;\n }\n\n b = [];\n for (let i = 0; i < B.length; i++) {\n b.push((B[i] >> 0) & 0xff);\n b.push((B[i] >> 8) & 0xff);\n b.push((B[i] >> 16) & 0xff);\n b.push((B[i] >> 24) & 0xff);\n }\n\n const derivedKey = PBKDF2_HMAC_SHA256_OneIter(password, b, dkLen);\n\n // Send the result to the callback\n if (callback) { callback(null, 1.0, derivedKey); }\n\n // Done; don't break (which would reschedule)\n return derivedKey;\n }\n\n // Schedule the next steps\n if (callback) { nextTick(incrementalSMix); }\n }\n\n // Run the smix state machine until completion\n if (!callback) {\n while (true) {\n const derivedKey = incrementalSMix();\n if (derivedKey != undefined) { return derivedKey; }\n }\n }\n\n // Bootstrap the async incremental smix\n incrementalSMix();\n }\n\n const lib = {\n scrypt: function(password, salt, N, r, p, dkLen, progressCallback) {\n return new Promise(function(resolve, reject) {\n let lastProgress = 0;\n if (progressCallback) { progressCallback(0); }\n _scrypt(password, salt, N, r, p, dkLen, function(error, progress, key) {\n if (error) {\n reject(error);\n } else if (key) {\n if (progressCallback && lastProgress !== 1) {\n progressCallback(1);\n }\n resolve(new Uint8Array(key));\n } else if (progressCallback && progress !== lastProgress) {\n lastProgress = progress;\n return progressCallback(progress);\n }\n });\n });\n },\n syncScrypt: function(password, salt, N, r, p, dkLen) {\n return new Uint8Array(_scrypt(password, salt, N, r, p, dkLen));\n }\n };\n\n // node.js\n if (typeof(exports) !== 'undefined') {\n module.exports = lib;\n\n // RequireJS/AMD\n // http://www.requirejs.org/docs/api.html\n // https://github.com/amdjs/amdjs-api/wiki/AMD\n } else if (typeof(define) === 'function' && define.amd) {\n define(lib);\n\n // Web Browsers\n } else if (root) {\n\n // If there was an existing library \"scrypt\", make sure it is still available\n if (root.scrypt) {\n root._scrypt = root.scrypt;\n }\n\n root.scrypt = lib;\n }\n\n})(this);\n", "'use strict'\nvar ALPHABET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l'\n\n// pre-compute lookup table\nvar ALPHABET_MAP = {}\nfor (var z = 0; z < ALPHABET.length; z++) {\n var x = ALPHABET.charAt(z)\n\n if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')\n ALPHABET_MAP[x] = z\n}\n\nfunction polymodStep (pre) {\n var b = pre >> 25\n return ((pre & 0x1FFFFFF) << 5) ^\n (-((b >> 0) & 1) & 0x3b6a57b2) ^\n (-((b >> 1) & 1) & 0x26508e6d) ^\n (-((b >> 2) & 1) & 0x1ea119fa) ^\n (-((b >> 3) & 1) & 0x3d4233dd) ^\n (-((b >> 4) & 1) & 0x2a1462b3)\n}\n\nfunction prefixChk (prefix) {\n var chk = 1\n for (var i = 0; i < prefix.length; ++i) {\n var c = prefix.charCodeAt(i)\n if (c < 33 || c > 126) return 'Invalid prefix (' + prefix + ')'\n\n chk = polymodStep(chk) ^ (c >> 5)\n }\n chk = polymodStep(chk)\n\n for (i = 0; i < prefix.length; ++i) {\n var v = prefix.charCodeAt(i)\n chk = polymodStep(chk) ^ (v & 0x1f)\n }\n return chk\n}\n\nfunction encode (prefix, words, LIMIT) {\n LIMIT = LIMIT || 90\n if ((prefix.length + 7 + words.length) > LIMIT) throw new TypeError('Exceeds length limit')\n\n prefix = prefix.toLowerCase()\n\n // determine chk mod\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') throw new Error(chk)\n\n var result = prefix + '1'\n for (var i = 0; i < words.length; ++i) {\n var x = words[i]\n if ((x >> 5) !== 0) throw new Error('Non 5-bit word')\n\n chk = polymodStep(chk) ^ x\n result += ALPHABET.charAt(x)\n }\n\n for (i = 0; i < 6; ++i) {\n chk = polymodStep(chk)\n }\n chk ^= 1\n\n for (i = 0; i < 6; ++i) {\n var v = (chk >> ((5 - i) * 5)) & 0x1f\n result += ALPHABET.charAt(v)\n }\n\n return result\n}\n\nfunction __decode (str, LIMIT) {\n LIMIT = LIMIT || 90\n if (str.length < 8) return str + ' too short'\n if (str.length > LIMIT) return 'Exceeds length limit'\n\n // don't allow mixed case\n var lowered = str.toLowerCase()\n var uppered = str.toUpperCase()\n if (str !== lowered && str !== uppered) return 'Mixed-case string ' + str\n str = lowered\n\n var split = str.lastIndexOf('1')\n if (split === -1) return 'No separator character for ' + str\n if (split === 0) return 'Missing prefix for ' + str\n\n var prefix = str.slice(0, split)\n var wordChars = str.slice(split + 1)\n if (wordChars.length < 6) return 'Data too short'\n\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') return chk\n\n var words = []\n for (var i = 0; i < wordChars.length; ++i) {\n var c = wordChars.charAt(i)\n var v = ALPHABET_MAP[c]\n if (v === undefined) return 'Unknown character ' + c\n chk = polymodStep(chk) ^ v\n\n // not in the checksum?\n if (i + 6 >= wordChars.length) continue\n words.push(v)\n }\n\n if (chk !== 1) return 'Invalid checksum for ' + str\n return { prefix: prefix, words: words }\n}\n\nfunction decodeUnsafe () {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n}\n\nfunction decode (str) {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n\n throw new Error(res)\n}\n\nfunction convert (data, inBits, outBits, pad) {\n var value = 0\n var bits = 0\n var maxV = (1 << outBits) - 1\n\n var result = []\n for (var i = 0; i < data.length; ++i) {\n value = (value << inBits) | data[i]\n bits += inBits\n\n while (bits >= outBits) {\n bits -= outBits\n result.push((value >> bits) & maxV)\n }\n }\n\n if (pad) {\n if (bits > 0) {\n result.push((value << (outBits - bits)) & maxV)\n }\n } else {\n if (bits >= inBits) return 'Excess padding'\n if ((value << (outBits - bits)) & maxV) return 'Non-zero padding'\n }\n\n return result\n}\n\nfunction toWordsUnsafe (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n}\n\nfunction toWords (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nfunction fromWordsUnsafe (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n}\n\nfunction fromWords (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nmodule.exports = {\n decodeUnsafe: decodeUnsafe,\n decode: decode,\n encode: encode,\n toWordsUnsafe: toWordsUnsafe,\n toWords: toWords,\n fromWordsUnsafe: fromWordsUnsafe,\n fromWords: fromWords\n}\n", "import { Buffer } from 'buffer';\n\nimport { LearnCard } from '@learncard/core';\nimport { ethers } from 'ethers';\n\nimport { EthereumConfig, EthereumPlugin, TokenList } from './types';\nimport {\n formatUnits,\n parseUnits,\n getTokenFromSymbolOrAddress,\n getChainIdFromProvider,\n} from './helpers';\nimport hardcodedTokens from './hardcodedTokens';\n\nexport * from './types';\n\nconst ERC20ABI = require('./erc20.abi.json');\n\n/**\n * @group Plugins\n */\nexport const getEthereumPlugin = (\n initLearnCard: LearnCard<any, 'id'>,\n config: EthereumConfig\n): EthereumPlugin => {\n let { infuraProjectId, network = 'mainnet' } = config;\n\n // Ethers wallet\n const secpKeypair = initLearnCard.id.keypair('secp256k1');\n\n if (!secpKeypair) {\n throw new Error('LearnCard must support secp256k1 JWK in order to add Ethereum Plugin');\n }\n\n const privateKey = Buffer.from(secpKeypair.d, 'base64').toString('hex');\n let ethersWallet = new ethers.Wallet(privateKey);\n const publicKey: string = ethersWallet.address;\n\n // Provider\n const getProvider = () => {\n let provider: ethers.providers.Provider;\n if (infuraProjectId) {\n provider = new ethers.providers.InfuraProvider(network, infuraProjectId);\n } else {\n provider = ethers.getDefaultProvider(network);\n }\n\n ethersWallet = ethersWallet.connect(provider);\n return provider;\n };\n let provider = getProvider();\n\n const getDefaultTokenList = (): TokenList => {\n return require('@uniswap/default-token-list/build/uniswap-default.tokenlist.json').tokens.concat(\n hardcodedTokens\n );\n };\n const defaultTokenList: TokenList = getDefaultTokenList();\n\n const getTokenAddress = async (tokenSymbolOrAddress: string) => {\n return (\n await getTokenFromSymbolOrAddress(\n tokenSymbolOrAddress,\n defaultTokenList,\n await getChainIdFromProvider(provider)\n )\n )?.address;\n };\n\n const getErc20TokenBalance = async (\n tokenContractAddress: string,\n walletPublicAddress = publicKey\n ) => {\n const contract = new ethers.Contract(tokenContractAddress, ERC20ABI, provider);\n\n const balance = await contract.balanceOf(walletPublicAddress);\n const formattedBalance = formatUnits(\n balance,\n tokenContractAddress,\n defaultTokenList,\n await getChainIdFromProvider(provider)\n );\n\n return formattedBalance;\n };\n\n // Core Methods\n const getBalance = async (walletAddress = publicKey, tokenSymbolOrAddress = 'ETH') => {\n if (!tokenSymbolOrAddress || tokenSymbolOrAddress === 'ETH') {\n // check ETH by default\n const balance = await provider.getBalance(walletAddress);\n const formattedBalance = ethers.utils.formatEther(balance);\n\n return formattedBalance;\n }\n\n const tokenAddress = await getTokenAddress(tokenSymbolOrAddress);\n\n if (!tokenAddress) {\n throw new Error(`Unable to determine token address for \\\"${tokenSymbolOrAddress}\\\"`);\n }\n\n const balance = await getErc20TokenBalance(tokenAddress, walletAddress);\n\n return balance;\n };\n\n return {\n name: 'Ethereum',\n displayName: 'Ethereum',\n description: 'Provides access to currency',\n methods: {\n getEthereumAddress: () => publicKey,\n\n getBalance: async (_learnCard, symbolOrAddress = 'ETH') =>\n getBalance(publicKey, symbolOrAddress),\n getBalanceForAddress: async (_learnCard, walletAddress, symbolOrAddress) =>\n getBalance(walletAddress, symbolOrAddress),\n\n transferTokens: async (_learnCard, tokenSymbolOrAddress, amount, toAddress) => {\n if (tokenSymbolOrAddress === 'ETH') {\n const transaction = {\n to: toAddress,\n\n // Convert ETH to wei\n value: ethers.utils.parseEther(amount.toString()),\n };\n\n return (await ethersWallet.sendTransaction(transaction)).hash;\n }\n\n const tokenAddress = await getTokenAddress(tokenSymbolOrAddress);\n if (!tokenAddress) {\n throw new Error(\n `Unable to determine token address for \\\"${tokenSymbolOrAddress}\\\"`\n );\n }\n\n const tokenContract = new ethers.Contract(tokenAddress, ERC20ABI, ethersWallet);\n\n return (\n await tokenContract.transfer(\n toAddress,\n await parseUnits(\n amount.toString(),\n tokenContract.address,\n defaultTokenList,\n await getChainIdFromProvider(provider)\n )\n )\n ).hash;\n },\n\n getGasPrice: async () => {\n return ethers.utils.formatUnits(await provider.getGasPrice());\n },\n\n /* Configuration-type methods */\n getCurrentNetwork: () => {\n return network;\n },\n changeNetwork: (_learnCard, _network: ethers.providers.Networkish) => {\n const oldNetwork = network;\n try {\n network = _network;\n provider = getProvider();\n } catch (e) {\n network = oldNetwork;\n provider = getProvider();\n throw e;\n }\n },\n addInfuraProjectId: (_learnCard, infuraProjectIdToAdd) => {\n infuraProjectId = infuraProjectIdToAdd;\n provider = getProvider();\n },\n },\n };\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, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n", "'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n", "'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n", "'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n", "if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n", "'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '<EC Point Infinity>';\n return '<EC Point x: ' + this.x.fromRed().toString(16, 2) +\n ' y: ' + this.y.fromRed().toString(16, 2) + '>';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '<EC JPoint Infinity>';\n return '<EC JPoint x: ' + this.x.toString(16, 2) +\n ' y: ' + this.y.toString(16, 2) +\n ' z: ' + this.z.toString(16, 2) + '>';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n", "'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n", "'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n", "'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n", "'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '<Key priv: ' + (this.priv && this.priv.toString(16, 2)) +\n ' pub: ' + (this.pub && this.pub.inspect()) + ' >';\n};\n", "'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n", "'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n", "'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n", "import _ec from \"elliptic\";\nvar EC = _ec.ec;\nexport { EC };\n//# sourceMappingURL=elliptic.js.map", 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, 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, null, "import { ethers } from 'ethers';\n\nimport { Token, TokenList } from './types';\n\nexport const isAddress = (maybeAddress: string) => {\n return maybeAddress.startsWith('0x') && maybeAddress.length === 42;\n};\n\n/* From Ethereum-compatible numbers to human-readable numbers */\nexport const formatUnits = async (\n units: ethers.BigNumberish,\n symbolOrAddress: string,\n tokenList: TokenList,\n chainId: number\n) => {\n const token = await getTokenFromSymbolOrAddress(symbolOrAddress, tokenList, chainId);\n\n return ethers.utils.formatUnits(units, token?.decimals);\n};\n\n/* From human-readable numbers to Ethereum-compatible numbers */\nexport const parseUnits = async (\n units: string,\n symbolOrAddress: string,\n tokenList: TokenList,\n chainId: number\n) => {\n const token = await getTokenFromSymbolOrAddress(symbolOrAddress, tokenList, chainId);\n\n return ethers.utils.parseUnits(units, token?.decimals);\n};\n\nexport const getTokenFromSymbolOrAddress = async (\n symbolOrAddress: string,\n tokenList: TokenList,\n chainId: number\n): Promise<Token | undefined> => {\n let token;\n if (isAddress(symbolOrAddress)) {\n token = await getTokenFromAddress(symbolOrAddress, tokenList, chainId);\n } else {\n token = await getTokenFromSymbol(symbolOrAddress, tokenList, chainId);\n }\n return token;\n};\n\nconst getTokenFromAddress = async (address: string, tokenList: TokenList, chainId: number) => {\n const token = tokenList.find(token => token.chainId === chainId && token.address === address);\n\n return token;\n};\n\nconst getTokenFromSymbol = async (symbol: string, tokenList: TokenList, chainId: number) => {\n const token = tokenList.find(\n token => token.chainId === chainId && token.symbol.toUpperCase() === symbol.toUpperCase()\n );\n\n return token;\n};\n\nexport const getChainIdFromProvider = async (provider: ethers.providers.Provider) => {\n return (await provider.getNetwork()).chainId;\n};\n", "export const hardcodedTokens = [\n {\n name: 'USDCoin',\n address: '0x07865c6e87b9f70255377e024ace6630c1eaa37f',\n symbol: 'USDC',\n decimals: 6,\n chainId: 5,\n logoURI:\n 'https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png',\n extensions: {\n bridgeInfo: {\n '10': {\n tokenAddress: '0x7F5c764cBc14f9669B88837ca1490cCa17c31607',\n },\n '137': {\n tokenAddress: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174',\n },\n '42161': {\n tokenAddress: '0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8',\n },\n },\n },\n },\n];\n\nexport default hardcodedTokens;\n"],
|
5
|
-
"mappings": "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KAAK,KAAK,GAAG,IAAK;AAClC,cAAO,MAAM,KAAK,KAAK,KAAK,GAAG,IAAK;AACpC,cAAO,MAAM,KAAK,KAAK,KAAK,GAAG,IAAK;AACpC,aAAM,KAAK,KAAK,KAAK,KAAK,GAAG,IAAK;AAClC,aAAM,KAAK,KAAK,KAAK,KAAK,GAAG,IAAK;AAClC,cAAO,MAAM,KAAK,KAAK,KAAK,GAAG,IAAK;AACpC,cAAO,MAAM,KAAK,KAAK,KAAK,GAAG,IAAK;AACpC,aAAM,KAAK,KAAK,KAAK,KAAK,GAAG,IAAK;AAClC,aAAM,KAAK,KAAK,KAAK,KAAK,GAAG,IAAK;AAClC,cAAO,MAAM,KAAK,KAAK,KAAK,GAAG,IAAK;AACpC,cAAO,MAAM,KAAK,KAAK,KAAK,GAAG,IAAK;AACpC,aAAM,KAAK,KAAK,KAAK,KAAK,GAAG,IAAK;AAClC,aAAM,KAAK,KAAK,KAAK,KAAK,GAAG,IAAK;AAClC,cAAO,MAAM,KAAK,KAAK,KAAK,GAAG,IAAK;AACpC,cAAO,MAAM,KAAK,KAAK,KAAK,GAAG,IAAK;AACpC,aAAM,KAAK,KAAK,KAAK,KAAK,GAAG,IAAK;AAClC,aAAM,KAAK,KAAK,KAAK,KAAK,GAAG,IAAK;AAClC,cAAO,MAAM,KAAK,KAAK,KAAK,GAAG,IAAK;AACpC,cAAO,MAAM,KAAK,KAAK,KAAK,GAAG,IAAK;AACpC,aAAM,KAAK,KAAK,KAAK,KAAK,GAAG,IAAK;AAClC,aAAM,KAAK,KAAK,KAAK,KAAK,GAAG,IAAK;AAClC,cAAO,MAAM,KAAK,KAAK,KAAK,GAAG,IAAK;AACpC,cAAO,MAAM,KAAK,KAAK,KAAK,GAAG,IAAK;AACpC,aAAM,KAAK,KAAK,KAAK,KAAK,GAAG,IAAK;AAClC,aAAM,KAAK,KAAK,KAAK,KAAK,GAAG,IAAK;AAClC,cAAO,MAAM,KAAK,KAAK,KAAK,GAAG,IAAK;AACpC,cAAO,MAAM,KAAK,KAAK,KAAK,GAAG,IAAK;AACpC,aAAM,KAAK,KAAK,KAAK,KAAK,GAAG,IAAK;AAClC,aAAM,KAAK,KAAK,KAAK,KAAK,GAAG,IAAK;AAClC,cAAO,MAAM,KAAK,KAAK,KAAK,G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,IAAM,KAAM,IAAM,IAAM,KAAM,KAAM,KAAM,IAAM,KAAM,IAAM,IAAM,KAAM,IAAM,KAAM,IAAM,KAAM,IAAM,IAAM,KAAM,KAAM,IAAM,KAAM,KAAM,IAAM,KAAM,IAAM,IAAM,KAAM,KAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAM,KAAM,KAAM,IAAM,IAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,IAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,IAAM,GAAM,KAAM,IAAM,IAAM,IAAM,IAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,IAAM,IAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,IAAM,KAAM,IAAM,KAAM,IAAM,IAAM,KAAM,IAAM,KAAM,EAAI;AACvgD,UAAI,KAAI,CAAC,IAAM,GAAM,KAAM,KAAM,IAAM,IAAM,KAAM,IAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,IAAM,KAAM,KAAM,IAAM,KAAM,IAAM,IAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,IAAM,KAAM,KAAM,IAAM,IAAM,KAAM,IAAM,KAAM,IAAM,IAAM,KAAM,KAAM,IAAM,GAAM,IAAM,KAAM,KAAM,IAAM,KAAM,IAAM,KAAM,KAAM,IAAM,KAAM,IAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,IAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,IAAM,KAAM,KAAM,KAAM,KAAM,IAAM,IAAM,IAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,IAAM,GAAM,KAAM,KAAM,IAAM,GAAM,KAAM,IAAM,IAAM,KAAM,KAAM,IAAM,IAAM,GAAM,KAAM,KAAM,KAAM,GAAM,GAAM,IAAM,KAAM,KAAM,IAAM,KAAM,IAAM,IAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,IAAM,KAAM,IAAM,KAAM,KAAM,KAAM,IAAM,KAAM,IAAM,KAAM,IAAM,IAAM,KAAM,KAAM,KAAM,KAAM,IAAM,IAAM,KAAM,IAAM,KAAM,IAAM,KAAM,IAAM,IAAM,IAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,IAAM,KAAM,KAAM,IAAM,KAAM,GAAM,KAAM,IAAM,KAAM,IAAM,IAAM,IAAM,IAAM,KAAM,KAAM,IAAM,IAAM,IAAM,KAAM,KAAM,IAAM,KAAM,IAAM,IAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,IAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,IAAM,KAAM,IAAM,IAAM,IAAM,GAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAI;AAGvgD,UAAI,KAAK,CAAC,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,GAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,UAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,WAAY,WAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,SAAU;AACxgG,UAAI,KAAK,CAAC,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,GAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,YAAY,YAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,UAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,SAAU;AACxgG,UAAI,KAAK,CAAC,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,UAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,UAAY,YAAY,WAAY,YAAY,WAAY,YAAY,UAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,GAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,WAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,SAAU;AACxgG,UAAI,KAAK,CAAC,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,UAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,UAAY,YAAY,WAAY,YAAY,WAAY,YAAY,UAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,GAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,WAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,SAAU;AAGxgG,UAAI,KAAK,CAAC,YAAY,YAAY,WAAY,WAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,WAAY,UAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,UAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,GAAY,WAAY,WAAY,WAAY,YAAY,YAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAU;AACxgG,UAAI,KAAK,CAAC,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,WAAY,UAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,GAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,WAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,UAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,UAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAU;AACxgG,UAAI,KAAK,CAAC,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,UAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,GAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,YAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,UAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAU;AACxgG,UAAI,KAAK,CAAC,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,UAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,UAAY,YAAY,UAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,UAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,GAAY,YAAY,WAAY,WAAY,YAAY,WAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,WAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,UAAU;AAGxgG,UAAI,KAAK,CAAC,GAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,WAAY,YAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,UAAY,WAAY,WAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAU;AACxgG,UAAI,KAAK,CAAC,GAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,YAAY,WAAY,UAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,YAAY,WAAY,UAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAU;AACxgG,UAAI,KAAK,CAAC,GAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,WAAY,WAAY,WAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,UAAY,WAAY,WAAY,YAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,UAAY,WAAY,WAAY,YAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAU;AACxgG,UAAI,KAAK,CAAC,GAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,WAAY,WAA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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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",
|
4
|
+
"sourcesContent": ["'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n", "/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n", "/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nvar K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n var arr = new Uint8Array(1)\n var proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n var buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n var valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n var b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(\n value[Symbol.toPrimitive]('string'), encodingOrOffset, length\n )\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n var length = byteLength(string, encoding) | 0\n var buf = createBuffer(length)\n\n var actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n var copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n var buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n Buffer.from(buf).copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n var len = string.length\n var mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return '<Buffer ' + str + '>'\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n var strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (var i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n var len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nvar hexSliceLookupTable = (function () {\n var alphabet = '0123456789abcdef'\n var table = new Array(256)\n for (var i = 0; i < 16; ++i) {\n var i16 = i * 16\n for (var j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n", "", "(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n", "/**\n * [js-sha3]{@link https://github.com/emn178/js-sha3}\n *\n * @version 0.8.0\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2015-2018\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var INPUT_ERROR = 'input is invalid type';\n var FINALIZE_ERROR = 'finalize already called';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA3_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA3_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA3_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA3_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var SHAKE_PADDING = [31, 7936, 2031616, 520093696];\n var CSHAKE_PADDING = [4, 1024, 262144, 67108864];\n var KECCAK_PADDING = [1, 256, 65536, 16777216];\n var PADDING = [6, 1536, 393216, 100663296];\n var SHIFT = [0, 8, 16, 24];\n var RC = [1, 0, 32898, 0, 32906, 2147483648, 2147516416, 2147483648, 32907, 0, 2147483649,\n 0, 2147516545, 2147483648, 32777, 2147483648, 138, 0, 136, 0, 2147516425, 0,\n 2147483658, 0, 2147516555, 0, 139, 2147483648, 32905, 2147483648, 32771,\n 2147483648, 32770, 2147483648, 128, 2147483648, 32778, 0, 2147483658, 2147483648,\n 2147516545, 2147483648, 32896, 2147483648, 2147483649, 0, 2147516424, 2147483648];\n var BITS = [224, 256, 384, 512];\n var SHAKE_BITS = [128, 256];\n var OUTPUT_TYPES = ['hex', 'buffer', 'arrayBuffer', 'array', 'digest'];\n var CSHAKE_BYTEPAD = {\n '128': 168,\n '256': 136\n };\n\n if (root.JS_SHA3_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n if (ARRAY_BUFFER && (root.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n var createOutputMethod = function (bits, padding, outputType) {\n return function (message) {\n return new Keccak(bits, padding, bits).update(message)[outputType]();\n };\n };\n\n var createShakeOutputMethod = function (bits, padding, outputType) {\n return function (message, outputBits) {\n return new Keccak(bits, padding, outputBits).update(message)[outputType]();\n };\n };\n\n var createCshakeOutputMethod = function (bits, padding, outputType) {\n return function (message, outputBits, n, s) {\n return methods['cshake' + bits].update(message, outputBits, n, s)[outputType]();\n };\n };\n\n var createKmacOutputMethod = function (bits, padding, outputType) {\n return function (key, message, outputBits, s) {\n return methods['kmac' + bits].update(key, message, outputBits, s)[outputType]();\n };\n };\n\n var createOutputMethods = function (method, createMethod, bits, padding) {\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createMethod(bits, padding, type);\n }\n return method;\n };\n\n var createMethod = function (bits, padding) {\n var method = createOutputMethod(bits, padding, 'hex');\n method.create = function () {\n return new Keccak(bits, padding, bits);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n return createOutputMethods(method, createOutputMethod, bits, padding);\n };\n\n var createShakeMethod = function (bits, padding) {\n var method = createShakeOutputMethod(bits, padding, 'hex');\n method.create = function (outputBits) {\n return new Keccak(bits, padding, outputBits);\n };\n method.update = function (message, outputBits) {\n return method.create(outputBits).update(message);\n };\n return createOutputMethods(method, createShakeOutputMethod, bits, padding);\n };\n\n var createCshakeMethod = function (bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createCshakeOutputMethod(bits, padding, 'hex');\n method.create = function (outputBits, n, s) {\n if (!n && !s) {\n return methods['shake' + bits].create(outputBits);\n } else {\n return new Keccak(bits, padding, outputBits).bytepad([n, s], w);\n }\n };\n method.update = function (message, outputBits, n, s) {\n return method.create(outputBits, n, s).update(message);\n };\n return createOutputMethods(method, createCshakeOutputMethod, bits, padding);\n };\n\n var createKmacMethod = function (bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createKmacOutputMethod(bits, padding, 'hex');\n method.create = function (key, outputBits, s) {\n return new Kmac(bits, padding, outputBits).bytepad(['KMAC', s], w).bytepad([key], w);\n };\n method.update = function (key, message, outputBits, s) {\n return method.create(key, outputBits, s).update(message);\n };\n return createOutputMethods(method, createKmacOutputMethod, bits, padding);\n };\n\n var algorithms = [\n { name: 'keccak', padding: KECCAK_PADDING, bits: BITS, createMethod: createMethod },\n { name: 'sha3', padding: PADDING, bits: BITS, createMethod: createMethod },\n { name: 'shake', padding: SHAKE_PADDING, bits: SHAKE_BITS, createMethod: createShakeMethod },\n { name: 'cshake', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createCshakeMethod },\n { name: 'kmac', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createKmacMethod }\n ];\n\n var methods = {}, methodNames = [];\n\n for (var i = 0; i < algorithms.length; ++i) {\n var algorithm = algorithms[i];\n var bits = algorithm.bits;\n for (var j = 0; j < bits.length; ++j) {\n var methodName = algorithm.name + '_' + bits[j];\n methodNames.push(methodName);\n methods[methodName] = algorithm.createMethod(bits[j], algorithm.padding);\n if (algorithm.name !== 'sha3') {\n var newMethodName = algorithm.name + bits[j];\n methodNames.push(newMethodName);\n methods[newMethodName] = methods[methodName];\n }\n }\n }\n\n function Keccak(bits, padding, outputBits) {\n this.blocks = [];\n this.s = [];\n this.padding = padding;\n this.outputBits = outputBits;\n this.reset = true;\n this.finalized = false;\n this.block = 0;\n this.start = 0;\n this.blockCount = (1600 - (bits << 1)) >> 5;\n this.byteCount = this.blockCount << 2;\n this.outputBlocks = outputBits >> 5;\n this.extraBytes = (outputBits & 31) >> 3;\n\n for (var i = 0; i < 50; ++i) {\n this.s[i] = 0;\n }\n }\n\n Keccak.prototype.update = function (message) {\n if (this.finalized) {\n throw new Error(FINALIZE_ERROR);\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var blocks = this.blocks, byteCount = this.byteCount, length = message.length,\n blockCount = this.blockCount, index = 0, s = this.s, i, code;\n\n while (index < length) {\n if (this.reset) {\n this.reset = false;\n blocks[0] = this.block;\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n if (notString) {\n for (i = this.start; index < length && i < byteCount; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < byteCount; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n this.lastByteIndex = i;\n if (i >= byteCount) {\n this.start = i - byteCount;\n this.block = blocks[blockCount];\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n this.reset = true;\n } else {\n this.start = i;\n }\n }\n return this;\n };\n\n Keccak.prototype.encode = function (x, right) {\n var o = x & 255, n = 1;\n var bytes = [o];\n x = x >> 8;\n o = x & 255;\n while (o > 0) {\n bytes.unshift(o);\n x = x >> 8;\n o = x & 255;\n ++n;\n }\n if (right) {\n bytes.push(n);\n } else {\n bytes.unshift(n);\n }\n this.update(bytes);\n return bytes.length;\n };\n\n Keccak.prototype.encodeString = function (str) {\n var notString, type = typeof str;\n if (type !== 'string') {\n if (type === 'object') {\n if (str === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && str.constructor === ArrayBuffer) {\n str = new Uint8Array(str);\n } else if (!Array.isArray(str)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(str)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var bytes = 0, length = str.length;\n if (notString) {\n bytes = length;\n } else {\n for (var i = 0; i < str.length; ++i) {\n var code = str.charCodeAt(i);\n if (code < 0x80) {\n bytes += 1;\n } else if (code < 0x800) {\n bytes += 2;\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes += 3;\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (str.charCodeAt(++i) & 0x3ff));\n bytes += 4;\n }\n }\n }\n bytes += this.encode(bytes * 8);\n this.update(str);\n return bytes;\n };\n\n Keccak.prototype.bytepad = function (strs, w) {\n var bytes = this.encode(w);\n for (var i = 0; i < strs.length; ++i) {\n bytes += this.encodeString(strs[i]);\n }\n var paddingBytes = w - bytes % w;\n var zeros = [];\n zeros.length = paddingBytes;\n this.update(zeros);\n return this;\n };\n\n Keccak.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex, blockCount = this.blockCount, s = this.s;\n blocks[i >> 2] |= this.padding[i & 3];\n if (this.lastByteIndex === this.byteCount) {\n blocks[0] = blocks[blockCount];\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n blocks[blockCount - 1] |= 0x80000000;\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n };\n\n Keccak.prototype.toString = Keccak.prototype.hex = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var hex = '', block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n block = s[i];\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F] +\n HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F] +\n HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F] +\n HEX_CHARS[(block >> 28) & 0x0F] + HEX_CHARS[(block >> 24) & 0x0F];\n }\n if (j % blockCount === 0) {\n f(s);\n i = 0;\n }\n }\n if (extraBytes) {\n block = s[i];\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F];\n if (extraBytes > 1) {\n hex += HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F];\n }\n if (extraBytes > 2) {\n hex += HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F];\n }\n }\n return hex;\n };\n\n Keccak.prototype.arrayBuffer = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var bytes = this.outputBits >> 3;\n var buffer;\n if (extraBytes) {\n buffer = new ArrayBuffer((outputBlocks + 1) << 2);\n } else {\n buffer = new ArrayBuffer(bytes);\n }\n var array = new Uint32Array(buffer);\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n array[j] = s[i];\n }\n if (j % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n array[i] = s[i];\n buffer = buffer.slice(0, bytes);\n }\n return buffer;\n };\n\n Keccak.prototype.buffer = Keccak.prototype.arrayBuffer;\n\n Keccak.prototype.digest = Keccak.prototype.array = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var array = [], offset, block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n array[offset + 1] = (block >> 8) & 0xFF;\n array[offset + 2] = (block >> 16) & 0xFF;\n array[offset + 3] = (block >> 24) & 0xFF;\n }\n if (j % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n if (extraBytes > 1) {\n array[offset + 1] = (block >> 8) & 0xFF;\n }\n if (extraBytes > 2) {\n array[offset + 2] = (block >> 16) & 0xFF;\n }\n }\n return array;\n };\n\n function Kmac(bits, padding, outputBits) {\n Keccak.call(this, bits, padding, outputBits);\n }\n\n Kmac.prototype = new Keccak();\n\n Kmac.prototype.finalize = function () {\n this.encode(this.outputBits, true);\n return Keccak.prototype.finalize.call(this);\n };\n\n var f = function (s) {\n var h, l, n, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9,\n b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17,\n b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33,\n b34, b35, b36, b37, b38, b39, b40, b41, b42, b43, b44, b45, b46, b47, b48, b49;\n for (n = 0; n < 48; n += 2) {\n c0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40];\n c1 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41];\n c2 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42];\n c3 = s[3] ^ s[13] ^ s[23] ^ s[33] ^ s[43];\n c4 = s[4] ^ s[14] ^ s[24] ^ s[34] ^ s[44];\n c5 = s[5] ^ s[15] ^ s[25] ^ s[35] ^ s[45];\n c6 = s[6] ^ s[16] ^ s[26] ^ s[36] ^ s[46];\n c7 = s[7] ^ s[17] ^ s[27] ^ s[37] ^ s[47];\n c8 = s[8] ^ s[18] ^ s[28] ^ s[38] ^ s[48];\n c9 = s[9] ^ s[19] ^ s[29] ^ s[39] ^ s[49];\n\n h = c8 ^ ((c2 << 1) | (c3 >>> 31));\n l = c9 ^ ((c3 << 1) | (c2 >>> 31));\n s[0] ^= h;\n s[1] ^= l;\n s[10] ^= h;\n s[11] ^= l;\n s[20] ^= h;\n s[21] ^= l;\n s[30] ^= h;\n s[31] ^= l;\n s[40] ^= h;\n s[41] ^= l;\n h = c0 ^ ((c4 << 1) | (c5 >>> 31));\n l = c1 ^ ((c5 << 1) | (c4 >>> 31));\n s[2] ^= h;\n s[3] ^= l;\n s[12] ^= h;\n s[13] ^= l;\n s[22] ^= h;\n s[23] ^= l;\n s[32] ^= h;\n s[33] ^= l;\n s[42] ^= h;\n s[43] ^= l;\n h = c2 ^ ((c6 << 1) | (c7 >>> 31));\n l = c3 ^ ((c7 << 1) | (c6 >>> 31));\n s[4] ^= h;\n s[5] ^= l;\n s[14] ^= h;\n s[15] ^= l;\n s[24] ^= h;\n s[25] ^= l;\n s[34] ^= h;\n s[35] ^= l;\n s[44] ^= h;\n s[45] ^= l;\n h = c4 ^ ((c8 << 1) | (c9 >>> 31));\n l = c5 ^ ((c9 << 1) | (c8 >>> 31));\n s[6] ^= h;\n s[7] ^= l;\n s[16] ^= h;\n s[17] ^= l;\n s[26] ^= h;\n s[27] ^= l;\n s[36] ^= h;\n s[37] ^= l;\n s[46] ^= h;\n s[47] ^= l;\n h = c6 ^ ((c0 << 1) | (c1 >>> 31));\n l = c7 ^ ((c1 << 1) | (c0 >>> 31));\n s[8] ^= h;\n s[9] ^= l;\n s[18] ^= h;\n s[19] ^= l;\n s[28] ^= h;\n s[29] ^= l;\n s[38] ^= h;\n s[39] ^= l;\n s[48] ^= h;\n s[49] ^= l;\n\n b0 = s[0];\n b1 = s[1];\n b32 = (s[11] << 4) | (s[10] >>> 28);\n b33 = (s[10] << 4) | (s[11] >>> 28);\n b14 = (s[20] << 3) | (s[21] >>> 29);\n b15 = (s[21] << 3) | (s[20] >>> 29);\n b46 = (s[31] << 9) | (s[30] >>> 23);\n b47 = (s[30] << 9) | (s[31] >>> 23);\n b28 = (s[40] << 18) | (s[41] >>> 14);\n b29 = (s[41] << 18) | (s[40] >>> 14);\n b20 = (s[2] << 1) | (s[3] >>> 31);\n b21 = (s[3] << 1) | (s[2] >>> 31);\n b2 = (s[13] << 12) | (s[12] >>> 20);\n b3 = (s[12] << 12) | (s[13] >>> 20);\n b34 = (s[22] << 10) | (s[23] >>> 22);\n b35 = (s[23] << 10) | (s[22] >>> 22);\n b16 = (s[33] << 13) | (s[32] >>> 19);\n b17 = (s[32] << 13) | (s[33] >>> 19);\n b48 = (s[42] << 2) | (s[43] >>> 30);\n b49 = (s[43] << 2) | (s[42] >>> 30);\n b40 = (s[5] << 30) | (s[4] >>> 2);\n b41 = (s[4] << 30) | (s[5] >>> 2);\n b22 = (s[14] << 6) | (s[15] >>> 26);\n b23 = (s[15] << 6) | (s[14] >>> 26);\n b4 = (s[25] << 11) | (s[24] >>> 21);\n b5 = (s[24] << 11) | (s[25] >>> 21);\n b36 = (s[34] << 15) | (s[35] >>> 17);\n b37 = (s[35] << 15) | (s[34] >>> 17);\n b18 = (s[45] << 29) | (s[44] >>> 3);\n b19 = (s[44] << 29) | (s[45] >>> 3);\n b10 = (s[6] << 28) | (s[7] >>> 4);\n b11 = (s[7] << 28) | (s[6] >>> 4);\n b42 = (s[17] << 23) | (s[16] >>> 9);\n b43 = (s[16] << 23) | (s[17] >>> 9);\n b24 = (s[26] << 25) | (s[27] >>> 7);\n b25 = (s[27] << 25) | (s[26] >>> 7);\n b6 = (s[36] << 21) | (s[37] >>> 11);\n b7 = (s[37] << 21) | (s[36] >>> 11);\n b38 = (s[47] << 24) | (s[46] >>> 8);\n b39 = (s[46] << 24) | (s[47] >>> 8);\n b30 = (s[8] << 27) | (s[9] >>> 5);\n b31 = (s[9] << 27) | (s[8] >>> 5);\n b12 = (s[18] << 20) | (s[19] >>> 12);\n b13 = (s[19] << 20) | (s[18] >>> 12);\n b44 = (s[29] << 7) | (s[28] >>> 25);\n b45 = (s[28] << 7) | (s[29] >>> 25);\n b26 = (s[38] << 8) | (s[39] >>> 24);\n b27 = (s[39] << 8) | (s[38] >>> 24);\n b8 = (s[48] << 14) | (s[49] >>> 18);\n b9 = (s[49] << 14) | (s[48] >>> 18);\n\n s[0] = b0 ^ (~b2 & b4);\n s[1] = b1 ^ (~b3 & b5);\n s[10] = b10 ^ (~b12 & b14);\n s[11] = b11 ^ (~b13 & b15);\n s[20] = b20 ^ (~b22 & b24);\n s[21] = b21 ^ (~b23 & b25);\n s[30] = b30 ^ (~b32 & b34);\n s[31] = b31 ^ (~b33 & b35);\n s[40] = b40 ^ (~b42 & b44);\n s[41] = b41 ^ (~b43 & b45);\n s[2] = b2 ^ (~b4 & b6);\n s[3] = b3 ^ (~b5 & b7);\n s[12] = b12 ^ (~b14 & b16);\n s[13] = b13 ^ (~b15 & b17);\n s[22] = b22 ^ (~b24 & b26);\n s[23] = b23 ^ (~b25 & b27);\n s[32] = b32 ^ (~b34 & b36);\n s[33] = b33 ^ (~b35 & b37);\n s[42] = b42 ^ (~b44 & b46);\n s[43] = b43 ^ (~b45 & b47);\n s[4] = b4 ^ (~b6 & b8);\n s[5] = b5 ^ (~b7 & b9);\n s[14] = b14 ^ (~b16 & b18);\n s[15] = b15 ^ (~b17 & b19);\n s[24] = b24 ^ (~b26 & b28);\n s[25] = b25 ^ (~b27 & b29);\n s[34] = b34 ^ (~b36 & b38);\n s[35] = b35 ^ (~b37 & b39);\n s[44] = b44 ^ (~b46 & b48);\n s[45] = b45 ^ (~b47 & b49);\n s[6] = b6 ^ (~b8 & b0);\n s[7] = b7 ^ (~b9 & b1);\n s[16] = b16 ^ (~b18 & b10);\n s[17] = b17 ^ (~b19 & b11);\n s[26] = b26 ^ (~b28 & b20);\n s[27] = b27 ^ (~b29 & b21);\n s[36] = b36 ^ (~b38 & b30);\n s[37] = b37 ^ (~b39 & b31);\n s[46] = b46 ^ (~b48 & b40);\n s[47] = b47 ^ (~b49 & b41);\n s[8] = b8 ^ (~b0 & b2);\n s[9] = b9 ^ (~b1 & b3);\n s[18] = b18 ^ (~b10 & b12);\n s[19] = b19 ^ (~b11 & b13);\n s[28] = b28 ^ (~b20 & b22);\n s[29] = b29 ^ (~b21 & b23);\n s[38] = b38 ^ (~b30 & b32);\n s[39] = b39 ^ (~b31 & b33);\n s[48] = b48 ^ (~b40 & b42);\n s[49] = b49 ^ (~b41 & b43);\n\n s[0] ^= RC[n];\n s[1] ^= RC[n + 1];\n }\n };\n\n if (COMMON_JS) {\n module.exports = methods;\n } else {\n for (i = 0; i < methodNames.length; ++i) {\n root[methodNames[i]] = methods[methodNames[i]];\n }\n if (AMD) {\n define(function () {\n return methods;\n });\n }\n }\n})();\n", "module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n", "if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n", "'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n", "'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n", "'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n", "'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n", "'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n", "'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n", "'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n", "'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n", "'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n", "'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n", "'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n", "var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n", "\"use strict\";\n\n(function(root) {\n\n function checkInt(value) {\n return (parseInt(value) === value);\n }\n\n function checkInts(arrayish) {\n if (!checkInt(arrayish.length)) { return false; }\n\n for (var i = 0; i < arrayish.length; i++) {\n if (!checkInt(arrayish[i]) || arrayish[i] < 0 || arrayish[i] > 255) {\n return false;\n }\n }\n\n return true;\n }\n\n function coerceArray(arg, copy) {\n\n // ArrayBuffer view\n if (arg.buffer && ArrayBuffer.isView(arg) && arg.name === 'Uint8Array') {\n\n if (copy) {\n if (arg.slice) {\n arg = arg.slice();\n } else {\n arg = Array.prototype.slice.call(arg);\n }\n }\n\n return arg;\n }\n\n // It's an array; check it is a valid representation of a byte\n if (Array.isArray(arg)) {\n if (!checkInts(arg)) {\n throw new Error('Array contains invalid value: ' + arg);\n }\n\n return new Uint8Array(arg);\n }\n\n // Something else, but behaves like an array (maybe a Buffer? Arguments?)\n if (checkInt(arg.length) && checkInts(arg)) {\n return new Uint8Array(arg);\n }\n\n throw new Error('unsupported array-like object');\n }\n\n function createArray(length) {\n return new Uint8Array(length);\n }\n\n function copyArray(sourceArray, targetArray, targetStart, sourceStart, sourceEnd) {\n if (sourceStart != null || sourceEnd != null) {\n if (sourceArray.slice) {\n sourceArray = sourceArray.slice(sourceStart, sourceEnd);\n } else {\n sourceArray = Array.prototype.slice.call(sourceArray, sourceStart, sourceEnd);\n }\n }\n targetArray.set(sourceArray, targetStart);\n }\n\n\n\n var convertUtf8 = (function() {\n function toBytes(text) {\n var result = [], i = 0;\n text = encodeURI(text);\n while (i < text.length) {\n var c = text.charCodeAt(i++);\n\n // if it is a % sign, encode the following 2 bytes as a hex value\n if (c === 37) {\n result.push(parseInt(text.substr(i, 2), 16))\n i += 2;\n\n // otherwise, just the actual byte\n } else {\n result.push(c)\n }\n }\n\n return coerceArray(result);\n }\n\n function fromBytes(bytes) {\n var result = [], i = 0;\n\n while (i < bytes.length) {\n var c = bytes[i];\n\n if (c < 128) {\n result.push(String.fromCharCode(c));\n i++;\n } else if (c > 191 && c < 224) {\n result.push(String.fromCharCode(((c & 0x1f) << 6) | (bytes[i + 1] & 0x3f)));\n i += 2;\n } else {\n result.push(String.fromCharCode(((c & 0x0f) << 12) | ((bytes[i + 1] & 0x3f) << 6) | (bytes[i + 2] & 0x3f)));\n i += 3;\n }\n }\n\n return result.join('');\n }\n\n return {\n toBytes: toBytes,\n fromBytes: fromBytes,\n }\n })();\n\n var convertHex = (function() {\n function toBytes(text) {\n var result = [];\n for (var i = 0; i < text.length; i += 2) {\n result.push(parseInt(text.substr(i, 2), 16));\n }\n\n return result;\n }\n\n // http://ixti.net/development/javascript/2011/11/11/base64-encodedecode-of-utf8-in-browser-with-js.html\n var Hex = '0123456789abcdef';\n\n function fromBytes(bytes) {\n var result = [];\n for (var i = 0; i < bytes.length; i++) {\n var v = bytes[i];\n result.push(Hex[(v & 0xf0) >> 4] + Hex[v & 0x0f]);\n }\n return result.join('');\n }\n\n return {\n toBytes: toBytes,\n fromBytes: fromBytes,\n }\n })();\n\n\n // Number of rounds by keysize\n var numberOfRounds = {16: 10, 24: 12, 32: 14}\n\n // Round constant words\n var rcon = [0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91];\n\n // S-box and Inverse S-box (S is for Substitution)\n var S = [0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16];\n var Si =[0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d];\n\n // Transformations for encryption\n var T1 = [0xc66363a5, 0xf87c7c84, 0xee777799, 0xf67b7b8d, 0xfff2f20d, 0xd66b6bbd, 0xde6f6fb1, 0x91c5c554, 0x60303050, 0x02010103, 0xce6767a9, 0x562b2b7d, 0xe7fefe19, 0xb5d7d762, 0x4dababe6, 0xec76769a, 0x8fcaca45, 0x1f82829d, 0x89c9c940, 0xfa7d7d87, 0xeffafa15, 0xb25959eb, 0x8e4747c9, 0xfbf0f00b, 0x41adadec, 0xb3d4d467, 0x5fa2a2fd, 0x45afafea, 0x239c9cbf, 0x53a4a4f7, 0xe4727296, 0x9bc0c05b, 0x75b7b7c2, 0xe1fdfd1c, 0x3d9393ae, 0x4c26266a, 0x6c36365a, 0x7e3f3f41, 0xf5f7f702, 0x83cccc4f, 0x6834345c, 0x51a5a5f4, 0xd1e5e534, 0xf9f1f108, 0xe2717193, 0xabd8d873, 0x62313153, 0x2a15153f, 0x0804040c, 0x95c7c752, 0x46232365, 0x9dc3c35e, 0x30181828, 0x379696a1, 0x0a05050f, 0x2f9a9ab5, 0x0e070709, 0x24121236, 0x1b80809b, 0xdfe2e23d, 0xcdebeb26, 0x4e272769, 0x7fb2b2cd, 0xea75759f, 0x1209091b, 0x1d83839e, 0x582c2c74, 0x341a1a2e, 0x361b1b2d, 0xdc6e6eb2, 0xb45a5aee, 0x5ba0a0fb, 0xa45252f6, 0x763b3b4d, 0xb7d6d661, 0x7db3b3ce, 0x5229297b, 0xdde3e33e, 0x5e2f2f71, 0x13848497, 0xa65353f5, 0xb9d1d168, 0x00000000, 0xc1eded2c, 0x40202060, 0xe3fcfc1f, 0x79b1b1c8, 0xb65b5bed, 0xd46a6abe, 0x8dcbcb46, 0x67bebed9, 0x7239394b, 0x944a4ade, 0x984c4cd4, 0xb05858e8, 0x85cfcf4a, 0xbbd0d06b, 0xc5efef2a, 0x4faaaae5, 0xedfbfb16, 0x864343c5, 0x9a4d4dd7, 0x66333355, 0x11858594, 0x8a4545cf, 0xe9f9f910, 0x04020206, 0xfe7f7f81, 0xa05050f0, 0x783c3c44, 0x259f9fba, 0x4ba8a8e3, 0xa25151f3, 0x5da3a3fe, 0x804040c0, 0x058f8f8a, 0x3f9292ad, 0x219d9dbc, 0x70383848, 0xf1f5f504, 0x63bcbcdf, 0x77b6b6c1, 0xafdada75, 0x42212163, 0x20101030, 0xe5ffff1a, 0xfdf3f30e, 0xbfd2d26d, 0x81cdcd4c, 0x180c0c14, 0x26131335, 0xc3ecec2f, 0xbe5f5fe1, 0x359797a2, 0x884444cc, 0x2e171739, 0x93c4c457, 0x55a7a7f2, 0xfc7e7e82, 0x7a3d3d47, 0xc86464ac, 0xba5d5de7, 0x3219192b, 0xe6737395, 0xc06060a0, 0x19818198, 0x9e4f4fd1, 0xa3dcdc7f, 0x44222266, 0x542a2a7e, 0x3b9090ab, 0x0b888883, 0x8c4646ca, 0xc7eeee29, 0x6bb8b8d3, 0x2814143c, 0xa7dede79, 0xbc5e5ee2, 0x160b0b1d, 0xaddbdb76, 0xdbe0e03b, 0x64323256, 0x743a3a4e, 0x140a0a1e, 0x924949db, 0x0c06060a, 0x4824246c, 0xb85c5ce4, 0x9fc2c25d, 0xbdd3d36e, 0x43acacef, 0xc46262a6, 0x399191a8, 0x319595a4, 0xd3e4e437, 0xf279798b, 0xd5e7e732, 0x8bc8c843, 0x6e373759, 0xda6d6db7, 0x018d8d8c, 0xb1d5d564, 0x9c4e4ed2, 0x49a9a9e0, 0xd86c6cb4, 0xac5656fa, 0xf3f4f407, 0xcfeaea25, 0xca6565af, 0xf47a7a8e, 0x47aeaee9, 0x10080818, 0x6fbabad5, 0xf0787888, 0x4a25256f, 0x5c2e2e72, 0x381c1c24, 0x57a6a6f1, 0x73b4b4c7, 0x97c6c651, 0xcbe8e823, 0xa1dddd7c, 0xe874749c, 0x3e1f1f21, 0x964b4bdd, 0x61bdbddc, 0x0d8b8b86, 0x0f8a8a85, 0xe0707090, 0x7c3e3e42, 0x71b5b5c4, 0xcc6666aa, 0x904848d8, 0x06030305, 0xf7f6f601, 0x1c0e0e12, 0xc26161a3, 0x6a35355f, 0xae5757f9, 0x69b9b9d0, 0x17868691, 0x99c1c158, 0x3a1d1d27, 0x279e9eb9, 0xd9e1e138, 0xebf8f813, 0x2b9898b3, 0x22111133, 0xd26969bb, 0xa9d9d970, 0x078e8e89, 0x339494a7, 0x2d9b9bb6, 0x3c1e1e22, 0x15878792, 0xc9e9e920, 0x87cece49, 0xaa5555ff, 0x50282878, 0xa5dfdf7a, 0x038c8c8f, 0x59a1a1f8, 0x09898980, 0x1a0d0d17, 0x65bfbfda, 0xd7e6e631, 0x844242c6, 0xd06868b8, 0x824141c3, 0x299999b0, 0x5a2d2d77, 0x1e0f0f11, 0x7bb0b0cb, 0xa85454fc, 0x6dbbbbd6, 0x2c16163a];\n var T2 = [0xa5c66363, 0x84f87c7c, 0x99ee7777, 0x8df67b7b, 0x0dfff2f2, 0xbdd66b6b, 0xb1de6f6f, 0x5491c5c5, 0x50603030, 0x03020101, 0xa9ce6767, 0x7d562b2b, 0x19e7fefe, 0x62b5d7d7, 0xe64dabab, 0x9aec7676, 0x458fcaca, 0x9d1f8282, 0x4089c9c9, 0x87fa7d7d, 0x15effafa, 0xebb25959, 0xc98e4747, 0x0bfbf0f0, 0xec41adad, 0x67b3d4d4, 0xfd5fa2a2, 0xea45afaf, 0xbf239c9c, 0xf753a4a4, 0x96e47272, 0x5b9bc0c0, 0xc275b7b7, 0x1ce1fdfd, 0xae3d9393, 0x6a4c2626, 0x5a6c3636, 0x417e3f3f, 0x02f5f7f7, 0x4f83cccc, 0x5c683434, 0xf451a5a5, 0x34d1e5e5, 0x08f9f1f1, 0x93e27171, 0x73abd8d8, 0x53623131, 0x3f2a1515, 0x0c080404, 0x5295c7c7, 0x65462323, 0x5e9dc3c3, 0x28301818, 0xa1379696, 0x0f0a0505, 0xb52f9a9a, 0x090e0707, 0x36241212, 0x9b1b8080, 0x3ddfe2e2, 0x26cdebeb, 0x694e2727, 0xcd7fb2b2, 0x9fea7575, 0x1b120909, 0x9e1d8383, 0x74582c2c, 0x2e341a1a, 0x2d361b1b, 0xb2dc6e6e, 0xeeb45a5a, 0xfb5ba0a0, 0xf6a45252, 0x4d763b3b, 0x61b7d6d6, 0xce7db3b3, 0x7b522929, 0x3edde3e3, 0x715e2f2f, 0x97138484, 0xf5a65353, 0x68b9d1d1, 0x00000000, 0x2cc1eded, 0x60402020, 0x1fe3fcfc, 0xc879b1b1, 0xedb65b5b, 0xbed46a6a, 0x468dcbcb, 0xd967bebe, 0x4b723939, 0xde944a4a, 0xd4984c4c, 0xe8b05858, 0x4a85cfcf, 0x6bbbd0d0, 0x2ac5efef, 0xe54faaaa, 0x16edfbfb, 0xc5864343, 0xd79a4d4d, 0x55663333, 0x94118585, 0xcf8a4545, 0x10e9f9f9, 0x06040202, 0x81fe7f7f, 0xf0a05050, 0x44783c3c, 0xba259f9f, 0xe34ba8a8, 0xf3a25151, 0xfe5da3a3, 0xc0804040, 0x8a058f8f, 0xad3f9292, 0xbc219d9d, 0x48703838, 0x04f1f5f5, 0xdf63bcbc, 0xc177b6b6, 0x75afdada, 0x63422121, 0x30201010, 0x1ae5ffff, 0x0efdf3f3, 0x6dbfd2d2, 0x4c81cdcd, 0x14180c0c, 0x35261313, 0x2fc3ecec, 0xe1be5f5f, 0xa2359797, 0xcc884444, 0x392e1717, 0x5793c4c4, 0xf255a7a7, 0x82fc7e7e, 0x477a3d3d, 0xacc86464, 0xe7ba5d5d, 0x2b321919, 0x95e67373, 0xa0c06060, 0x98198181, 0xd19e4f4f, 0x7fa3dcdc, 0x66442222, 0x7e542a2a, 0xab3b9090, 0x830b8888, 0xca8c4646, 0x29c7eeee, 0xd36bb8b8, 0x3c281414, 0x79a7dede, 0xe2bc5e5e, 0x1d160b0b, 0x76addbdb, 0x3bdbe0e0, 0x56643232, 0x4e743a3a, 0x1e140a0a, 0xdb924949, 0x0a0c0606, 0x6c482424, 0xe4b85c5c, 0x5d9fc2c2, 0x6ebdd3d3, 0xef43acac, 0xa6c46262, 0xa8399191, 0xa4319595, 0x37d3e4e4, 0x8bf27979, 0x32d5e7e7, 0x438bc8c8, 0x596e3737, 0xb7da6d6d, 0x8c018d8d, 0x64b1d5d5, 0xd29c4e4e, 0xe049a9a9, 0xb4d86c6c, 0xfaac5656, 0x07f3f4f4, 0x25cfeaea, 0xafca6565, 0x8ef47a7a, 0xe947aeae, 0x18100808, 0xd56fbaba, 0x88f07878, 0x6f4a2525, 0x725c2e2e, 0x24381c1c, 0xf157a6a6, 0xc773b4b4, 0x5197c6c6, 0x23cbe8e8, 0x7ca1dddd, 0x9ce87474, 0x213e1f1f, 0xdd964b4b, 0xdc61bdbd, 0x860d8b8b, 0x850f8a8a, 0x90e07070, 0x427c3e3e, 0xc471b5b5, 0xaacc6666, 0xd8904848, 0x05060303, 0x01f7f6f6, 0x121c0e0e, 0xa3c26161, 0x5f6a3535, 0xf9ae5757, 0xd069b9b9, 0x91178686, 0x5899c1c1, 0x273a1d1d, 0xb9279e9e, 0x38d9e1e1, 0x13ebf8f8, 0xb32b9898, 0x33221111, 0xbbd26969, 0x70a9d9d9, 0x89078e8e, 0xa7339494, 0xb62d9b9b, 0x223c1e1e, 0x92158787, 0x20c9e9e9, 0x4987cece, 0xffaa5555, 0x78502828, 0x7aa5dfdf, 0x8f038c8c, 0xf859a1a1, 0x80098989, 0x171a0d0d, 0xda65bfbf, 0x31d7e6e6, 0xc6844242, 0xb8d06868, 0xc3824141, 0xb0299999, 0x775a2d2d, 0x111e0f0f, 0xcb7bb0b0, 0xfca85454, 0xd66dbbbb, 0x3a2c1616];\n var T3 = [0x63a5c663, 0x7c84f87c, 0x7799ee77, 0x7b8df67b, 0xf20dfff2, 0x6bbdd66b, 0x6fb1de6f, 0xc55491c5, 0x30506030, 0x01030201, 0x67a9ce67, 0x2b7d562b, 0xfe19e7fe, 0xd762b5d7, 0xabe64dab, 0x769aec76, 0xca458fca, 0x829d1f82, 0xc94089c9, 0x7d87fa7d, 0xfa15effa, 0x59ebb259, 0x47c98e47, 0xf00bfbf0, 0xadec41ad, 0xd467b3d4, 0xa2fd5fa2, 0xafea45af, 0x9cbf239c, 0xa4f753a4, 0x7296e472, 0xc05b9bc0, 0xb7c275b7, 0xfd1ce1fd, 0x93ae3d93, 0x266a4c26, 0x365a6c36, 0x3f417e3f, 0xf702f5f7, 0xcc4f83cc, 0x345c6834, 0xa5f451a5, 0xe534d1e5, 0xf108f9f1, 0x7193e271, 0xd873abd8, 0x31536231, 0x153f2a15, 0x040c0804, 0xc75295c7, 0x23654623, 0xc35e9dc3, 0x18283018, 0x96a13796, 0x050f0a05, 0x9ab52f9a, 0x07090e07, 0x12362412, 0x809b1b80, 0xe23ddfe2, 0xeb26cdeb, 0x27694e27, 0xb2cd7fb2, 0x759fea75, 0x091b1209, 0x839e1d83, 0x2c74582c, 0x1a2e341a, 0x1b2d361b, 0x6eb2dc6e, 0x5aeeb45a, 0xa0fb5ba0, 0x52f6a452, 0x3b4d763b, 0xd661b7d6, 0xb3ce7db3, 0x297b5229, 0xe33edde3, 0x2f715e2f, 0x84971384, 0x53f5a653, 0xd168b9d1, 0x00000000, 0xed2cc1ed, 0x20604020, 0xfc1fe3fc, 0xb1c879b1, 0x5bedb65b, 0x6abed46a, 0xcb468dcb, 0xbed967be, 0x394b7239, 0x4ade944a, 0x4cd4984c, 0x58e8b058, 0xcf4a85cf, 0xd06bbbd0, 0xef2ac5ef, 0xaae54faa, 0xfb16edfb, 0x43c58643, 0x4dd79a4d, 0x33556633, 0x85941185, 0x45cf8a45, 0xf910e9f9, 0x02060402, 0x7f81fe7f, 0x50f0a050, 0x3c44783c, 0x9fba259f, 0xa8e34ba8, 0x51f3a251, 0xa3fe5da3, 0x40c08040, 0x8f8a058f, 0x92ad3f92, 0x9dbc219d, 0x38487038, 0xf504f1f5, 0xbcdf63bc, 0xb6c177b6, 0xda75afda, 0x21634221, 0x10302010, 0xff1ae5ff, 0xf30efdf3, 0xd26dbfd2, 0xcd4c81cd, 0x0c14180c, 0x13352613, 0xec2fc3ec, 0x5fe1be5f, 0x97a23597, 0x44cc8844, 0x17392e17, 0xc45793c4, 0xa7f255a7, 0x7e82fc7e, 0x3d477a3d, 0x64acc864, 0x5de7ba5d, 0x192b3219, 0x7395e673, 0x60a0c060, 0x81981981, 0x4fd19e4f, 0xdc7fa3dc, 0x22664422, 0x2a7e542a, 0x90ab3b90, 0x88830b88, 0x46ca8c46, 0xee29c7ee, 0xb8d36bb8, 0x143c2814, 0xde79a7de, 0x5ee2bc5e, 0x0b1d160b, 0xdb76addb, 0xe03bdbe0, 0x32566432, 0x3a4e743a, 0x0a1e140a, 0x49db9249, 0x060a0c06, 0x246c4824, 0x5ce4b85c, 0xc25d9fc2, 0xd36ebdd3, 0xacef43ac, 0x62a6c462, 0x91a83991, 0x95a43195, 0xe437d3e4, 0x798bf279, 0xe732d5e7, 0xc8438bc8, 0x37596e37, 0x6db7da6d, 0x8d8c018d, 0xd564b1d5, 0x4ed29c4e, 0xa9e049a9, 0x6cb4d86c, 0x56faac56, 0xf407f3f4, 0xea25cfea, 0x65afca65, 0x7a8ef47a, 0xaee947ae, 0x08181008, 0xbad56fba, 0x7888f078, 0x256f4a25, 0x2e725c2e, 0x1c24381c, 0xa6f157a6, 0xb4c773b4, 0xc65197c6, 0xe823cbe8, 0xdd7ca1dd, 0x749ce874, 0x1f213e1f, 0x4bdd964b, 0xbddc61bd, 0x8b860d8b, 0x8a850f8a, 0x7090e070, 0x3e427c3e, 0xb5c471b5, 0x66aacc66, 0x48d89048, 0x03050603, 0xf601f7f6, 0x0e121c0e, 0x61a3c261, 0x355f6a35, 0x57f9ae57, 0xb9d069b9, 0x86911786, 0xc15899c1, 0x1d273a1d, 0x9eb9279e, 0xe138d9e1, 0xf813ebf8, 0x98b32b98, 0x11332211, 0x69bbd269, 0xd970a9d9, 0x8e89078e, 0x94a73394, 0x9bb62d9b, 0x1e223c1e, 0x87921587, 0xe920c9e9, 0xce4987ce, 0x55ffaa55, 0x28785028, 0xdf7aa5df, 0x8c8f038c, 0xa1f859a1, 0x89800989, 0x0d171a0d, 0xbfda65bf, 0xe631d7e6, 0x42c68442, 0x68b8d068, 0x41c38241, 0x99b02999, 0x2d775a2d, 0x0f111e0f, 0xb0cb7bb0, 0x54fca854, 0xbbd66dbb, 0x163a2c16];\n var T4 = [0x6363a5c6, 0x7c7c84f8, 0x777799ee, 0x7b7b8df6, 0xf2f20dff, 0x6b6bbdd6, 0x6f6fb1de, 0xc5c55491, 0x30305060, 0x01010302, 0x6767a9ce, 0x2b2b7d56, 0xfefe19e7, 0xd7d762b5, 0xababe64d, 0x76769aec, 0xcaca458f, 0x82829d1f, 0xc9c94089, 0x7d7d87fa, 0xfafa15ef, 0x5959ebb2, 0x4747c98e, 0xf0f00bfb, 0xadadec41, 0xd4d467b3, 0xa2a2fd5f, 0xafafea45, 0x9c9cbf23, 0xa4a4f753, 0x727296e4, 0xc0c05b9b, 0xb7b7c275, 0xfdfd1ce1, 0x9393ae3d, 0x26266a4c, 0x36365a6c, 0x3f3f417e, 0xf7f702f5, 0xcccc4f83, 0x34345c68, 0xa5a5f451, 0xe5e534d1, 0xf1f108f9, 0x717193e2, 0xd8d873ab, 0x31315362, 0x15153f2a, 0x04040c08, 0xc7c75295, 0x23236546, 0xc3c35e9d, 0x18182830, 0x9696a137, 0x05050f0a, 0x9a9ab52f, 0x0707090e, 0x12123624, 0x80809b1b, 0xe2e23ddf, 0xebeb26cd, 0x2727694e, 0xb2b2cd7f, 0x75759fea, 0x09091b12, 0x83839e1d, 0x2c2c7458, 0x1a1a2e34, 0x1b1b2d36, 0x6e6eb2dc, 0x5a5aeeb4, 0xa0a0fb5b, 0x5252f6a4, 0x3b3b4d76, 0xd6d661b7, 0xb3b3ce7d, 0x29297b52, 0xe3e33edd, 0x2f2f715e, 0x84849713, 0x5353f5a6, 0xd1d168b9, 0x00000000, 0xeded2cc1, 0x20206040, 0xfcfc1fe3, 0xb1b1c879, 0x5b5bedb6, 0x6a6abed4, 0xcbcb468d, 0xbebed967, 0x39394b72, 0x4a4ade94, 0x4c4cd498, 0x5858e8b0, 0xcfcf4a85, 0xd0d06bbb, 0xefef2ac5, 0xaaaae54f, 0xfbfb16ed, 0x4343c586, 0x4d4dd79a, 0x33335566, 0x85859411, 0x4545cf8a, 0xf9f910e9, 0x02020604, 0x7f7f81fe, 0x5050f0a0, 0x3c3c4478, 0x9f9fba25, 0xa8a8e34b, 0x5151f3a2, 0xa3a3fe5d, 0x4040c080, 0x8f8f8a05, 0x9292ad3f, 0x9d9dbc21, 0x38384870, 0xf5f504f1, 0xbcbcdf63, 0xb6b6c177, 0xdada75af, 0x21216342, 0x10103020, 0xffff1ae5, 0xf3f30efd, 0xd2d26dbf, 0xcdcd4c81, 0x0c0c1418, 0x13133526, 0xecec2fc3, 0x5f5fe1be, 0x9797a235, 0x4444cc88, 0x1717392e, 0xc4c45793, 0xa7a7f255, 0x7e7e82fc, 0x3d3d477a, 0x6464acc8, 0x5d5de7ba, 0x19192b32, 0x737395e6, 0x6060a0c0, 0x81819819, 0x4f4fd19e, 0xdcdc7fa3, 0x22226644, 0x2a2a7e54, 0x9090ab3b, 0x8888830b, 0x4646ca8c, 0xeeee29c7, 0xb8b8d36b, 0x14143c28, 0xdede79a7, 0x5e5ee2bc, 0x0b0b1d16, 0xdbdb76ad, 0xe0e03bdb, 0x32325664, 0x3a3a4e74, 0x0a0a1e14, 0x4949db92, 0x06060a0c, 0x24246c48, 0x5c5ce4b8, 0xc2c25d9f, 0xd3d36ebd, 0xacacef43, 0x6262a6c4, 0x9191a839, 0x9595a431, 0xe4e437d3, 0x79798bf2, 0xe7e732d5, 0xc8c8438b, 0x3737596e, 0x6d6db7da, 0x8d8d8c01, 0xd5d564b1, 0x4e4ed29c, 0xa9a9e049, 0x6c6cb4d8, 0x5656faac, 0xf4f407f3, 0xeaea25cf, 0x6565afca, 0x7a7a8ef4, 0xaeaee947, 0x08081810, 0xbabad56f, 0x787888f0, 0x25256f4a, 0x2e2e725c, 0x1c1c2438, 0xa6a6f157, 0xb4b4c773, 0xc6c65197, 0xe8e823cb, 0xdddd7ca1, 0x74749ce8, 0x1f1f213e, 0x4b4bdd96, 0xbdbddc61, 0x8b8b860d, 0x8a8a850f, 0x707090e0, 0x3e3e427c, 0xb5b5c471, 0x6666aacc, 0x4848d890, 0x03030506, 0xf6f601f7, 0x0e0e121c, 0x6161a3c2, 0x35355f6a, 0x5757f9ae, 0xb9b9d069, 0x86869117, 0xc1c15899, 0x1d1d273a, 0x9e9eb927, 0xe1e138d9, 0xf8f813eb, 0x9898b32b, 0x11113322, 0x6969bbd2, 0xd9d970a9, 0x8e8e8907, 0x9494a733, 0x9b9bb62d, 0x1e1e223c, 0x87879215, 0xe9e920c9, 0xcece4987, 0x5555ffaa, 0x28287850, 0xdfdf7aa5, 0x8c8c8f03, 0xa1a1f859, 0x89898009, 0x0d0d171a, 0xbfbfda65, 0xe6e631d7, 0x4242c684, 0x6868b8d0, 0x4141c382, 0x9999b029, 0x2d2d775a, 0x0f0f111e, 0xb0b0cb7b, 0x5454fca8, 0xbbbbd66d, 0x16163a2c];\n\n // Transformations for decryption\n var T5 = [0x51f4a750, 0x7e416553, 0x1a17a4c3, 0x3a275e96, 0x3bab6bcb, 0x1f9d45f1, 0xacfa58ab, 0x4be30393, 0x2030fa55, 0xad766df6, 0x88cc7691, 0xf5024c25, 0x4fe5d7fc, 0xc52acbd7, 0x26354480, 0xb562a38f, 0xdeb15a49, 0x25ba1b67, 0x45ea0e98, 0x5dfec0e1, 0xc32f7502, 0x814cf012, 0x8d4697a3, 0x6bd3f9c6, 0x038f5fe7, 0x15929c95, 0xbf6d7aeb, 0x955259da, 0xd4be832d, 0x587421d3, 0x49e06929, 0x8ec9c844, 0x75c2896a, 0xf48e7978, 0x99583e6b, 0x27b971dd, 0xbee14fb6, 0xf088ad17, 0xc920ac66, 0x7dce3ab4, 0x63df4a18, 0xe51a3182, 0x97513360, 0x62537f45, 0xb16477e0, 0xbb6bae84, 0xfe81a01c, 0xf9082b94, 0x70486858, 0x8f45fd19, 0x94de6c87, 0x527bf8b7, 0xab73d323, 0x724b02e2, 0xe31f8f57, 0x6655ab2a, 0xb2eb2807, 0x2fb5c203, 0x86c57b9a, 0xd33708a5, 0x302887f2, 0x23bfa5b2, 0x02036aba, 0xed16825c, 0x8acf1c2b, 0xa779b492, 0xf307f2f0, 0x4e69e2a1, 0x65daf4cd, 0x0605bed5, 0xd134621f, 0xc4a6fe8a, 0x342e539d, 0xa2f355a0, 0x058ae132, 0xa4f6eb75, 0x0b83ec39, 0x4060efaa, 0x5e719f06, 0xbd6e1051, 0x3e218af9, 0x96dd063d, 0xdd3e05ae, 0x4de6bd46, 0x91548db5, 0x71c45d05, 0x0406d46f, 0x605015ff, 0x1998fb24, 0xd6bde997, 0x894043cc, 0x67d99e77, 0xb0e842bd, 0x07898b88, 0xe7195b38, 0x79c8eedb, 0xa17c0a47, 0x7c420fe9, 0xf8841ec9, 0x00000000, 0x09808683, 0x322bed48, 0x1e1170ac, 0x6c5a724e, 0xfd0efffb, 0x0f853856, 0x3daed51e, 0x362d3927, 0x0a0fd964, 0x685ca621, 0x9b5b54d1, 0x24362e3a, 0x0c0a67b1, 0x9357e70f, 0xb4ee96d2, 0x1b9b919e, 0x80c0c54f, 0x61dc20a2, 0x5a774b69, 0x1c121a16, 0xe293ba0a, 0xc0a02ae5, 0x3c22e043, 0x121b171d, 0x0e090d0b, 0xf28bc7ad, 0x2db6a8b9, 0x141ea9c8, 0x57f11985, 0xaf75074c, 0xee99ddbb, 0xa37f60fd, 0xf701269f, 0x5c72f5bc, 0x44663bc5, 0x5bfb7e34, 0x8b432976, 0xcb23c6dc, 0xb6edfc68, 0xb8e4f163, 0xd731dcca, 0x42638510, 0x13972240, 0x84c61120, 0x854a247d, 0xd2bb3df8, 0xaef93211, 0xc729a16d, 0x1d9e2f4b, 0xdcb230f3, 0x0d8652ec, 0x77c1e3d0, 0x2bb3166c, 0xa970b999, 0x119448fa, 0x47e96422, 0xa8fc8cc4, 0xa0f03f1a, 0x567d2cd8, 0x223390ef, 0x87494ec7, 0xd938d1c1, 0x8ccaa2fe, 0x98d40b36, 0xa6f581cf, 0xa57ade28, 0xdab78e26, 0x3fadbfa4, 0x2c3a9de4, 0x5078920d, 0x6a5fcc9b, 0x547e4662, 0xf68d13c2, 0x90d8b8e8, 0x2e39f75e, 0x82c3aff5, 0x9f5d80be, 0x69d0937c, 0x6fd52da9, 0xcf2512b3, 0xc8ac993b, 0x10187da7, 0xe89c636e, 0xdb3bbb7b, 0xcd267809, 0x6e5918f4, 0xec9ab701, 0x834f9aa8, 0xe6956e65, 0xaaffe67e, 0x21bccf08, 0xef15e8e6, 0xbae79bd9, 0x4a6f36ce, 0xea9f09d4, 0x29b07cd6, 0x31a4b2af, 0x2a3f2331, 0xc6a59430, 0x35a266c0, 0x744ebc37, 0xfc82caa6, 0xe090d0b0, 0x33a7d815, 0xf104984a, 0x41ecdaf7, 0x7fcd500e, 0x1791f62f, 0x764dd68d, 0x43efb04d, 0xccaa4d54, 0xe49604df, 0x9ed1b5e3, 0x4c6a881b, 0xc12c1fb8, 0x4665517f, 0x9d5eea04, 0x018c355d, 0xfa877473, 0xfb0b412e, 0xb3671d5a, 0x92dbd252, 0xe9105633, 0x6dd64713, 0x9ad7618c, 0x37a10c7a, 0x59f8148e, 0xeb133c89, 0xcea927ee, 0xb761c935, 0xe11ce5ed, 0x7a47b13c, 0x9cd2df59, 0x55f2733f, 0x1814ce79, 0x73c737bf, 0x53f7cdea, 0x5ffdaa5b, 0xdf3d6f14, 0x7844db86, 0xcaaff381, 0xb968c43e, 0x3824342c, 0xc2a3405f, 0x161dc372, 0xbce2250c, 0x283c498b, 0xff0d9541, 0x39a80171, 0x080cb3de, 0xd8b4e49c, 0x6456c190, 0x7bcb8461, 0xd532b670, 0x486c5c74, 0xd0b85742];\n var T6 = [0x5051f4a7, 0x537e4165, 0xc31a17a4, 0x963a275e, 0xcb3bab6b, 0xf11f9d45, 0xabacfa58, 0x934be303, 0x552030fa, 0xf6ad766d, 0x9188cc76, 0x25f5024c, 0xfc4fe5d7, 0xd7c52acb, 0x80263544, 0x8fb562a3, 0x49deb15a, 0x6725ba1b, 0x9845ea0e, 0xe15dfec0, 0x02c32f75, 0x12814cf0, 0xa38d4697, 0xc66bd3f9, 0xe7038f5f, 0x9515929c, 0xebbf6d7a, 0xda955259, 0x2dd4be83, 0xd3587421, 0x2949e069, 0x448ec9c8, 0x6a75c289, 0x78f48e79, 0x6b99583e, 0xdd27b971, 0xb6bee14f, 0x17f088ad, 0x66c920ac, 0xb47dce3a, 0x1863df4a, 0x82e51a31, 0x60975133, 0x4562537f, 0xe0b16477, 0x84bb6bae, 0x1cfe81a0, 0x94f9082b, 0x58704868, 0x198f45fd, 0x8794de6c, 0xb7527bf8, 0x23ab73d3, 0xe2724b02, 0x57e31f8f, 0x2a6655ab, 0x07b2eb28, 0x032fb5c2, 0x9a86c57b, 0xa5d33708, 0xf2302887, 0xb223bfa5, 0xba02036a, 0x5ced1682, 0x2b8acf1c, 0x92a779b4, 0xf0f307f2, 0xa14e69e2, 0xcd65daf4, 0xd50605be, 0x1fd13462, 0x8ac4a6fe, 0x9d342e53, 0xa0a2f355, 0x32058ae1, 0x75a4f6eb, 0x390b83ec, 0xaa4060ef, 0x065e719f, 0x51bd6e10, 0xf93e218a, 0x3d96dd06, 0xaedd3e05, 0x464de6bd, 0xb591548d, 0x0571c45d, 0x6f0406d4, 0xff605015, 0x241998fb, 0x97d6bde9, 0xcc894043, 0x7767d99e, 0xbdb0e842, 0x8807898b, 0x38e7195b, 0xdb79c8ee, 0x47a17c0a, 0xe97c420f, 0xc9f8841e, 0x00000000, 0x83098086, 0x48322bed, 0xac1e1170, 0x4e6c5a72, 0xfbfd0eff, 0x560f8538, 0x1e3daed5, 0x27362d39, 0x640a0fd9, 0x21685ca6, 0xd19b5b54, 0x3a24362e, 0xb10c0a67, 0x0f9357e7, 0xd2b4ee96, 0x9e1b9b91, 0x4f80c0c5, 0xa261dc20, 0x695a774b, 0x161c121a, 0x0ae293ba, 0xe5c0a02a, 0x433c22e0, 0x1d121b17, 0x0b0e090d, 0xadf28bc7, 0xb92db6a8, 0xc8141ea9, 0x8557f119, 0x4caf7507, 0xbbee99dd, 0xfda37f60, 0x9ff70126, 0xbc5c72f5, 0xc544663b, 0x345bfb7e, 0x768b4329, 0xdccb23c6, 0x68b6edfc, 0x63b8e4f1, 0xcad731dc, 0x10426385, 0x40139722, 0x2084c611, 0x7d854a24, 0xf8d2bb3d, 0x11aef932, 0x6dc729a1, 0x4b1d9e2f, 0xf3dcb230, 0xec0d8652, 0xd077c1e3, 0x6c2bb316, 0x99a970b9, 0xfa119448, 0x2247e964, 0xc4a8fc8c, 0x1aa0f03f, 0xd8567d2c, 0xef223390, 0xc787494e, 0xc1d938d1, 0xfe8ccaa2, 0x3698d40b, 0xcfa6f581, 0x28a57ade, 0x26dab78e, 0xa43fadbf, 0xe42c3a9d, 0x0d507892, 0x9b6a5fcc, 0x62547e46, 0xc2f68d13, 0xe890d8b8, 0x5e2e39f7, 0xf582c3af, 0xbe9f5d80, 0x7c69d093, 0xa96fd52d, 0xb3cf2512, 0x3bc8ac99, 0xa710187d, 0x6ee89c63, 0x7bdb3bbb, 0x09cd2678, 0xf46e5918, 0x01ec9ab7, 0xa8834f9a, 0x65e6956e, 0x7eaaffe6, 0x0821bccf, 0xe6ef15e8, 0xd9bae79b, 0xce4a6f36, 0xd4ea9f09, 0xd629b07c, 0xaf31a4b2, 0x312a3f23, 0x30c6a594, 0xc035a266, 0x37744ebc, 0xa6fc82ca, 0xb0e090d0, 0x1533a7d8, 0x4af10498, 0xf741ecda, 0x0e7fcd50, 0x2f1791f6, 0x8d764dd6, 0x4d43efb0, 0x54ccaa4d, 0xdfe49604, 0xe39ed1b5, 0x1b4c6a88, 0xb8c12c1f, 0x7f466551, 0x049d5eea, 0x5d018c35, 0x73fa8774, 0x2efb0b41, 0x5ab3671d, 0x5292dbd2, 0x33e91056, 0x136dd647, 0x8c9ad761, 0x7a37a10c, 0x8e59f814, 0x89eb133c, 0xeecea927, 0x35b761c9, 0xede11ce5, 0x3c7a47b1, 0x599cd2df, 0x3f55f273, 0x791814ce, 0xbf73c737, 0xea53f7cd, 0x5b5ffdaa, 0x14df3d6f, 0x867844db, 0x81caaff3, 0x3eb968c4, 0x2c382434, 0x5fc2a340, 0x72161dc3, 0x0cbce225, 0x8b283c49, 0x41ff0d95, 0x7139a801, 0xde080cb3, 0x9cd8b4e4, 0x906456c1, 0x617bcb84, 0x70d532b6, 0x74486c5c, 0x42d0b857];\n var T7 = [0xa75051f4, 0x65537e41, 0xa4c31a17, 0x5e963a27, 0x6bcb3bab, 0x45f11f9d, 0x58abacfa, 0x03934be3, 0xfa552030, 0x6df6ad76, 0x769188cc, 0x4c25f502, 0xd7fc4fe5, 0xcbd7c52a, 0x44802635, 0xa38fb562, 0x5a49deb1, 0x1b6725ba, 0x0e9845ea, 0xc0e15dfe, 0x7502c32f, 0xf012814c, 0x97a38d46, 0xf9c66bd3, 0x5fe7038f, 0x9c951592, 0x7aebbf6d, 0x59da9552, 0x832dd4be, 0x21d35874, 0x692949e0, 0xc8448ec9, 0x896a75c2, 0x7978f48e, 0x3e6b9958, 0x71dd27b9, 0x4fb6bee1, 0xad17f088, 0xac66c920, 0x3ab47dce, 0x4a1863df, 0x3182e51a, 0x33609751, 0x7f456253, 0x77e0b164, 0xae84bb6b, 0xa01cfe81, 0x2b94f908, 0x68587048, 0xfd198f45, 0x6c8794de, 0xf8b7527b, 0xd323ab73, 0x02e2724b, 0x8f57e31f, 0xab2a6655, 0x2807b2eb, 0xc2032fb5, 0x7b9a86c5, 0x08a5d337, 0x87f23028, 0xa5b223bf, 0x6aba0203, 0x825ced16, 0x1c2b8acf, 0xb492a779, 0xf2f0f307, 0xe2a14e69, 0xf4cd65da, 0xbed50605, 0x621fd134, 0xfe8ac4a6, 0x539d342e, 0x55a0a2f3, 0xe132058a, 0xeb75a4f6, 0xec390b83, 0xefaa4060, 0x9f065e71, 0x1051bd6e, 0x8af93e21, 0x063d96dd, 0x05aedd3e, 0xbd464de6, 0x8db59154, 0x5d0571c4, 0xd46f0406, 0x15ff6050, 0xfb241998, 0xe997d6bd, 0x43cc8940, 0x9e7767d9, 0x42bdb0e8, 0x8b880789, 0x5b38e719, 0xeedb79c8, 0x0a47a17c, 0x0fe97c42, 0x1ec9f884, 0x00000000, 0x86830980, 0xed48322b, 0x70ac1e11, 0x724e6c5a, 0xfffbfd0e, 0x38560f85, 0xd51e3dae, 0x3927362d, 0xd9640a0f, 0xa621685c, 0x54d19b5b, 0x2e3a2436, 0x67b10c0a, 0xe70f9357, 0x96d2b4ee, 0x919e1b9b, 0xc54f80c0, 0x20a261dc, 0x4b695a77, 0x1a161c12, 0xba0ae293, 0x2ae5c0a0, 0xe0433c22, 0x171d121b, 0x0d0b0e09, 0xc7adf28b, 0xa8b92db6, 0xa9c8141e, 0x198557f1, 0x074caf75, 0xddbbee99, 0x60fda37f, 0x269ff701, 0xf5bc5c72, 0x3bc54466, 0x7e345bfb, 0x29768b43, 0xc6dccb23, 0xfc68b6ed, 0xf163b8e4, 0xdccad731, 0x85104263, 0x22401397, 0x112084c6, 0x247d854a, 0x3df8d2bb, 0x3211aef9, 0xa16dc729, 0x2f4b1d9e, 0x30f3dcb2, 0x52ec0d86, 0xe3d077c1, 0x166c2bb3, 0xb999a970, 0x48fa1194, 0x642247e9, 0x8cc4a8fc, 0x3f1aa0f0, 0x2cd8567d, 0x90ef2233, 0x4ec78749, 0xd1c1d938, 0xa2fe8cca, 0x0b3698d4, 0x81cfa6f5, 0xde28a57a, 0x8e26dab7, 0xbfa43fad, 0x9de42c3a, 0x920d5078, 0xcc9b6a5f, 0x4662547e, 0x13c2f68d, 0xb8e890d8, 0xf75e2e39, 0xaff582c3, 0x80be9f5d, 0x937c69d0, 0x2da96fd5, 0x12b3cf25, 0x993bc8ac, 0x7da71018, 0x636ee89c, 0xbb7bdb3b, 0x7809cd26, 0x18f46e59, 0xb701ec9a, 0x9aa8834f, 0x6e65e695, 0xe67eaaff, 0xcf0821bc, 0xe8e6ef15, 0x9bd9bae7, 0x36ce4a6f, 0x09d4ea9f, 0x7cd629b0, 0xb2af31a4, 0x23312a3f, 0x9430c6a5, 0x66c035a2, 0xbc37744e, 0xcaa6fc82, 0xd0b0e090, 0xd81533a7, 0x984af104, 0xdaf741ec, 0x500e7fcd, 0xf62f1791, 0xd68d764d, 0xb04d43ef, 0x4d54ccaa, 0x04dfe496, 0xb5e39ed1, 0x881b4c6a, 0x1fb8c12c, 0x517f4665, 0xea049d5e, 0x355d018c, 0x7473fa87, 0x412efb0b, 0x1d5ab367, 0xd25292db, 0x5633e910, 0x47136dd6, 0x618c9ad7, 0x0c7a37a1, 0x148e59f8, 0x3c89eb13, 0x27eecea9, 0xc935b761, 0xe5ede11c, 0xb13c7a47, 0xdf599cd2, 0x733f55f2, 0xce791814, 0x37bf73c7, 0xcdea53f7, 0xaa5b5ffd, 0x6f14df3d, 0xdb867844, 0xf381caaf, 0xc43eb968, 0x342c3824, 0x405fc2a3, 0xc372161d, 0x250cbce2, 0x498b283c, 0x9541ff0d, 0x017139a8, 0xb3de080c, 0xe49cd8b4, 0xc1906456, 0x84617bcb, 0xb670d532, 0x5c74486c, 0x5742d0b8];\n var T8 = [0xf4a75051, 0x4165537e, 0x17a4c31a, 0x275e963a, 0xab6bcb3b, 0x9d45f11f, 0xfa58abac, 0xe303934b, 0x30fa5520, 0x766df6ad, 0xcc769188, 0x024c25f5, 0xe5d7fc4f, 0x2acbd7c5, 0x35448026, 0x62a38fb5, 0xb15a49de, 0xba1b6725, 0xea0e9845, 0xfec0e15d, 0x2f7502c3, 0x4cf01281, 0x4697a38d, 0xd3f9c66b, 0x8f5fe703, 0x929c9515, 0x6d7aebbf, 0x5259da95, 0xbe832dd4, 0x7421d358, 0xe0692949, 0xc9c8448e, 0xc2896a75, 0x8e7978f4, 0x583e6b99, 0xb971dd27, 0xe14fb6be, 0x88ad17f0, 0x20ac66c9, 0xce3ab47d, 0xdf4a1863, 0x1a3182e5, 0x51336097, 0x537f4562, 0x6477e0b1, 0x6bae84bb, 0x81a01cfe, 0x082b94f9, 0x48685870, 0x45fd198f, 0xde6c8794, 0x7bf8b752, 0x73d323ab, 0x4b02e272, 0x1f8f57e3, 0x55ab2a66, 0xeb2807b2, 0xb5c2032f, 0xc57b9a86, 0x3708a5d3, 0x2887f230, 0xbfa5b223, 0x036aba02, 0x16825ced, 0xcf1c2b8a, 0x79b492a7, 0x07f2f0f3, 0x69e2a14e, 0xdaf4cd65, 0x05bed506, 0x34621fd1, 0xa6fe8ac4, 0x2e539d34, 0xf355a0a2, 0x8ae13205, 0xf6eb75a4, 0x83ec390b, 0x60efaa40, 0x719f065e, 0x6e1051bd, 0x218af93e, 0xdd063d96, 0x3e05aedd, 0xe6bd464d, 0x548db591, 0xc45d0571, 0x06d46f04, 0x5015ff60, 0x98fb2419, 0xbde997d6, 0x4043cc89, 0xd99e7767, 0xe842bdb0, 0x898b8807, 0x195b38e7, 0xc8eedb79, 0x7c0a47a1, 0x420fe97c, 0x841ec9f8, 0x00000000, 0x80868309, 0x2bed4832, 0x1170ac1e, 0x5a724e6c, 0x0efffbfd, 0x8538560f, 0xaed51e3d, 0x2d392736, 0x0fd9640a, 0x5ca62168, 0x5b54d19b, 0x362e3a24, 0x0a67b10c, 0x57e70f93, 0xee96d2b4, 0x9b919e1b, 0xc0c54f80, 0xdc20a261, 0x774b695a, 0x121a161c, 0x93ba0ae2, 0xa02ae5c0, 0x22e0433c, 0x1b171d12, 0x090d0b0e, 0x8bc7adf2, 0xb6a8b92d, 0x1ea9c814, 0xf1198557, 0x75074caf, 0x99ddbbee, 0x7f60fda3, 0x01269ff7, 0x72f5bc5c, 0x663bc544, 0xfb7e345b, 0x4329768b, 0x23c6dccb, 0xedfc68b6, 0xe4f163b8, 0x31dccad7, 0x63851042, 0x97224013, 0xc6112084, 0x4a247d85, 0xbb3df8d2, 0xf93211ae, 0x29a16dc7, 0x9e2f4b1d, 0xb230f3dc, 0x8652ec0d, 0xc1e3d077, 0xb3166c2b, 0x70b999a9, 0x9448fa11, 0xe9642247, 0xfc8cc4a8, 0xf03f1aa0, 0x7d2cd856, 0x3390ef22, 0x494ec787, 0x38d1c1d9, 0xcaa2fe8c, 0xd40b3698, 0xf581cfa6, 0x7ade28a5, 0xb78e26da, 0xadbfa43f, 0x3a9de42c, 0x78920d50, 0x5fcc9b6a, 0x7e466254, 0x8d13c2f6, 0xd8b8e890, 0x39f75e2e, 0xc3aff582, 0x5d80be9f, 0xd0937c69, 0xd52da96f, 0x2512b3cf, 0xac993bc8, 0x187da710, 0x9c636ee8, 0x3bbb7bdb, 0x267809cd, 0x5918f46e, 0x9ab701ec, 0x4f9aa883, 0x956e65e6, 0xffe67eaa, 0xbccf0821, 0x15e8e6ef, 0xe79bd9ba, 0x6f36ce4a, 0x9f09d4ea, 0xb07cd629, 0xa4b2af31, 0x3f23312a, 0xa59430c6, 0xa266c035, 0x4ebc3774, 0x82caa6fc, 0x90d0b0e0, 0xa7d81533, 0x04984af1, 0xecdaf741, 0xcd500e7f, 0x91f62f17, 0x4dd68d76, 0xefb04d43, 0xaa4d54cc, 0x9604dfe4, 0xd1b5e39e, 0x6a881b4c, 0x2c1fb8c1, 0x65517f46, 0x5eea049d, 0x8c355d01, 0x877473fa, 0x0b412efb, 0x671d5ab3, 0xdbd25292, 0x105633e9, 0xd647136d, 0xd7618c9a, 0xa10c7a37, 0xf8148e59, 0x133c89eb, 0xa927eece, 0x61c935b7, 0x1ce5ede1, 0x47b13c7a, 0xd2df599c, 0xf2733f55, 0x14ce7918, 0xc737bf73, 0xf7cdea53, 0xfdaa5b5f, 0x3d6f14df, 0x44db8678, 0xaff381ca, 0x68c43eb9, 0x24342c38, 0xa3405fc2, 0x1dc37216, 0xe2250cbc, 0x3c498b28, 0x0d9541ff, 0xa8017139, 0x0cb3de08, 0xb4e49cd8, 0x56c19064, 0xcb84617b, 0x32b670d5, 0x6c5c7448, 0xb85742d0];\n\n // Transformations for decryption key expansion\n var U1 = [0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927, 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45, 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb, 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381, 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf, 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66, 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28, 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012, 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec, 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e, 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd, 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7, 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89, 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b, 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815, 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f, 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa, 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8, 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36, 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c, 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742, 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea, 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4, 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e, 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360, 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502, 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87, 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd, 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3, 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621, 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f, 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55, 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26, 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844, 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba, 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480, 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce, 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67, 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929, 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713, 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed, 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f, 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3];\n var U2 = [0x00000000, 0x0b0e090d, 0x161c121a, 0x1d121b17, 0x2c382434, 0x27362d39, 0x3a24362e, 0x312a3f23, 0x58704868, 0x537e4165, 0x4e6c5a72, 0x4562537f, 0x74486c5c, 0x7f466551, 0x62547e46, 0x695a774b, 0xb0e090d0, 0xbbee99dd, 0xa6fc82ca, 0xadf28bc7, 0x9cd8b4e4, 0x97d6bde9, 0x8ac4a6fe, 0x81caaff3, 0xe890d8b8, 0xe39ed1b5, 0xfe8ccaa2, 0xf582c3af, 0xc4a8fc8c, 0xcfa6f581, 0xd2b4ee96, 0xd9bae79b, 0x7bdb3bbb, 0x70d532b6, 0x6dc729a1, 0x66c920ac, 0x57e31f8f, 0x5ced1682, 0x41ff0d95, 0x4af10498, 0x23ab73d3, 0x28a57ade, 0x35b761c9, 0x3eb968c4, 0x0f9357e7, 0x049d5eea, 0x198f45fd, 0x12814cf0, 0xcb3bab6b, 0xc035a266, 0xdd27b971, 0xd629b07c, 0xe7038f5f, 0xec0d8652, 0xf11f9d45, 0xfa119448, 0x934be303, 0x9845ea0e, 0x8557f119, 0x8e59f814, 0xbf73c737, 0xb47dce3a, 0xa96fd52d, 0xa261dc20, 0xf6ad766d, 0xfda37f60, 0xe0b16477, 0xebbf6d7a, 0xda955259, 0xd19b5b54, 0xcc894043, 0xc787494e, 0xaedd3e05, 0xa5d33708, 0xb8c12c1f, 0xb3cf2512, 0x82e51a31, 0x89eb133c, 0x94f9082b, 0x9ff70126, 0x464de6bd, 0x4d43efb0, 0x5051f4a7, 0x5b5ffdaa, 0x6a75c289, 0x617bcb84, 0x7c69d093, 0x7767d99e, 0x1e3daed5, 0x1533a7d8, 0x0821bccf, 0x032fb5c2, 0x32058ae1, 0x390b83ec, 0x241998fb, 0x2f1791f6, 0x8d764dd6, 0x867844db, 0x9b6a5fcc, 0x906456c1, 0xa14e69e2, 0xaa4060ef, 0xb7527bf8, 0xbc5c72f5, 0xd50605be, 0xde080cb3, 0xc31a17a4, 0xc8141ea9, 0xf93e218a, 0xf2302887, 0xef223390, 0xe42c3a9d, 0x3d96dd06, 0x3698d40b, 0x2b8acf1c, 0x2084c611, 0x11aef932, 0x1aa0f03f, 0x07b2eb28, 0x0cbce225, 0x65e6956e, 0x6ee89c63, 0x73fa8774, 0x78f48e79, 0x49deb15a, 0x42d0b857, 0x5fc2a340, 0x54ccaa4d, 0xf741ecda, 0xfc4fe5d7, 0xe15dfec0, 0xea53f7cd, 0xdb79c8ee, 0xd077c1e3, 0xcd65daf4, 0xc66bd3f9, 0xaf31a4b2, 0xa43fadbf, 0xb92db6a8, 0xb223bfa5, 0x83098086, 0x8807898b, 0x9515929c, 0x9e1b9b91, 0x47a17c0a, 0x4caf7507, 0x51bd6e10, 0x5ab3671d, 0x6b99583e, 0x60975133, 0x7d854a24, 0x768b4329, 0x1fd13462, 0x14df3d6f, 0x09cd2678, 0x02c32f75, 0x33e91056, 0x38e7195b, 0x25f5024c, 0x2efb0b41, 0x8c9ad761, 0x8794de6c, 0x9a86c57b, 0x9188cc76, 0xa0a2f355, 0xabacfa58, 0xb6bee14f, 0xbdb0e842, 0xd4ea9f09, 0xdfe49604, 0xc2f68d13, 0xc9f8841e, 0xf8d2bb3d, 0xf3dcb230, 0xeecea927, 0xe5c0a02a, 0x3c7a47b1, 0x37744ebc, 0x2a6655ab, 0x21685ca6, 0x10426385, 0x1b4c6a88, 0x065e719f, 0x0d507892, 0x640a0fd9, 0x6f0406d4, 0x72161dc3, 0x791814ce, 0x48322bed, 0x433c22e0, 0x5e2e39f7, 0x552030fa, 0x01ec9ab7, 0x0ae293ba, 0x17f088ad, 0x1cfe81a0, 0x2dd4be83, 0x26dab78e, 0x3bc8ac99, 0x30c6a594, 0x599cd2df, 0x5292dbd2, 0x4f80c0c5, 0x448ec9c8, 0x75a4f6eb, 0x7eaaffe6, 0x63b8e4f1, 0x68b6edfc, 0xb10c0a67, 0xba02036a, 0xa710187d, 0xac1e1170, 0x9d342e53, 0x963a275e, 0x8b283c49, 0x80263544, 0xe97c420f, 0xe2724b02, 0xff605015, 0xf46e5918, 0xc544663b, 0xce4a6f36, 0xd3587421, 0xd8567d2c, 0x7a37a10c, 0x7139a801, 0x6c2bb316, 0x6725ba1b, 0x560f8538, 0x5d018c35, 0x40139722, 0x4b1d9e2f, 0x2247e964, 0x2949e069, 0x345bfb7e, 0x3f55f273, 0x0e7fcd50, 0x0571c45d, 0x1863df4a, 0x136dd647, 0xcad731dc, 0xc1d938d1, 0xdccb23c6, 0xd7c52acb, 0xe6ef15e8, 0xede11ce5, 0xf0f307f2, 0xfbfd0eff, 0x92a779b4, 0x99a970b9, 0x84bb6bae, 0x8fb562a3, 0xbe9f5d80, 0xb591548d, 0xa8834f9a, 0xa38d4697];\n var U3 = [0x00000000, 0x0d0b0e09, 0x1a161c12, 0x171d121b, 0x342c3824, 0x3927362d, 0x2e3a2436, 0x23312a3f, 0x68587048, 0x65537e41, 0x724e6c5a, 0x7f456253, 0x5c74486c, 0x517f4665, 0x4662547e, 0x4b695a77, 0xd0b0e090, 0xddbbee99, 0xcaa6fc82, 0xc7adf28b, 0xe49cd8b4, 0xe997d6bd, 0xfe8ac4a6, 0xf381caaf, 0xb8e890d8, 0xb5e39ed1, 0xa2fe8cca, 0xaff582c3, 0x8cc4a8fc, 0x81cfa6f5, 0x96d2b4ee, 0x9bd9bae7, 0xbb7bdb3b, 0xb670d532, 0xa16dc729, 0xac66c920, 0x8f57e31f, 0x825ced16, 0x9541ff0d, 0x984af104, 0xd323ab73, 0xde28a57a, 0xc935b761, 0xc43eb968, 0xe70f9357, 0xea049d5e, 0xfd198f45, 0xf012814c, 0x6bcb3bab, 0x66c035a2, 0x71dd27b9, 0x7cd629b0, 0x5fe7038f, 0x52ec0d86, 0x45f11f9d, 0x48fa1194, 0x03934be3, 0x0e9845ea, 0x198557f1, 0x148e59f8, 0x37bf73c7, 0x3ab47dce, 0x2da96fd5, 0x20a261dc, 0x6df6ad76, 0x60fda37f, 0x77e0b164, 0x7aebbf6d, 0x59da9552, 0x54d19b5b, 0x43cc8940, 0x4ec78749, 0x05aedd3e, 0x08a5d337, 0x1fb8c12c, 0x12b3cf25, 0x3182e51a, 0x3c89eb13, 0x2b94f908, 0x269ff701, 0xbd464de6, 0xb04d43ef, 0xa75051f4, 0xaa5b5ffd, 0x896a75c2, 0x84617bcb, 0x937c69d0, 0x9e7767d9, 0xd51e3dae, 0xd81533a7, 0xcf0821bc, 0xc2032fb5, 0xe132058a, 0xec390b83, 0xfb241998, 0xf62f1791, 0xd68d764d, 0xdb867844, 0xcc9b6a5f, 0xc1906456, 0xe2a14e69, 0xefaa4060, 0xf8b7527b, 0xf5bc5c72, 0xbed50605, 0xb3de080c, 0xa4c31a17, 0xa9c8141e, 0x8af93e21, 0x87f23028, 0x90ef2233, 0x9de42c3a, 0x063d96dd, 0x0b3698d4, 0x1c2b8acf, 0x112084c6, 0x3211aef9, 0x3f1aa0f0, 0x2807b2eb, 0x250cbce2, 0x6e65e695, 0x636ee89c, 0x7473fa87, 0x7978f48e, 0x5a49deb1, 0x5742d0b8, 0x405fc2a3, 0x4d54ccaa, 0xdaf741ec, 0xd7fc4fe5, 0xc0e15dfe, 0xcdea53f7, 0xeedb79c8, 0xe3d077c1, 0xf4cd65da, 0xf9c66bd3, 0xb2af31a4, 0xbfa43fad, 0xa8b92db6, 0xa5b223bf, 0x86830980, 0x8b880789, 0x9c951592, 0x919e1b9b, 0x0a47a17c, 0x074caf75, 0x1051bd6e, 0x1d5ab367, 0x3e6b9958, 0x33609751, 0x247d854a, 0x29768b43, 0x621fd134, 0x6f14df3d, 0x7809cd26, 0x7502c32f, 0x5633e910, 0x5b38e719, 0x4c25f502, 0x412efb0b, 0x618c9ad7, 0x6c8794de, 0x7b9a86c5, 0x769188cc, 0x55a0a2f3, 0x58abacfa, 0x4fb6bee1, 0x42bdb0e8, 0x09d4ea9f, 0x04dfe496, 0x13c2f68d, 0x1ec9f884, 0x3df8d2bb, 0x30f3dcb2, 0x27eecea9, 0x2ae5c0a0, 0xb13c7a47, 0xbc37744e, 0xab2a6655, 0xa621685c, 0x85104263, 0x881b4c6a, 0x9f065e71, 0x920d5078, 0xd9640a0f, 0xd46f0406, 0xc372161d, 0xce791814, 0xed48322b, 0xe0433c22, 0xf75e2e39, 0xfa552030, 0xb701ec9a, 0xba0ae293, 0xad17f088, 0xa01cfe81, 0x832dd4be, 0x8e26dab7, 0x993bc8ac, 0x9430c6a5, 0xdf599cd2, 0xd25292db, 0xc54f80c0, 0xc8448ec9, 0xeb75a4f6, 0xe67eaaff, 0xf163b8e4, 0xfc68b6ed, 0x67b10c0a, 0x6aba0203, 0x7da71018, 0x70ac1e11, 0x539d342e, 0x5e963a27, 0x498b283c, 0x44802635, 0x0fe97c42, 0x02e2724b, 0x15ff6050, 0x18f46e59, 0x3bc54466, 0x36ce4a6f, 0x21d35874, 0x2cd8567d, 0x0c7a37a1, 0x017139a8, 0x166c2bb3, 0x1b6725ba, 0x38560f85, 0x355d018c, 0x22401397, 0x2f4b1d9e, 0x642247e9, 0x692949e0, 0x7e345bfb, 0x733f55f2, 0x500e7fcd, 0x5d0571c4, 0x4a1863df, 0x47136dd6, 0xdccad731, 0xd1c1d938, 0xc6dccb23, 0xcbd7c52a, 0xe8e6ef15, 0xe5ede11c, 0xf2f0f307, 0xfffbfd0e, 0xb492a779, 0xb999a970, 0xae84bb6b, 0xa38fb562, 0x80be9f5d, 0x8db59154, 0x9aa8834f, 0x97a38d46];\n var U4 = [0x00000000, 0x090d0b0e, 0x121a161c, 0x1b171d12, 0x24342c38, 0x2d392736, 0x362e3a24, 0x3f23312a, 0x48685870, 0x4165537e, 0x5a724e6c, 0x537f4562, 0x6c5c7448, 0x65517f46, 0x7e466254, 0x774b695a, 0x90d0b0e0, 0x99ddbbee, 0x82caa6fc, 0x8bc7adf2, 0xb4e49cd8, 0xbde997d6, 0xa6fe8ac4, 0xaff381ca, 0xd8b8e890, 0xd1b5e39e, 0xcaa2fe8c, 0xc3aff582, 0xfc8cc4a8, 0xf581cfa6, 0xee96d2b4, 0xe79bd9ba, 0x3bbb7bdb, 0x32b670d5, 0x29a16dc7, 0x20ac66c9, 0x1f8f57e3, 0x16825ced, 0x0d9541ff, 0x04984af1, 0x73d323ab, 0x7ade28a5, 0x61c935b7, 0x68c43eb9, 0x57e70f93, 0x5eea049d, 0x45fd198f, 0x4cf01281, 0xab6bcb3b, 0xa266c035, 0xb971dd27, 0xb07cd629, 0x8f5fe703, 0x8652ec0d, 0x9d45f11f, 0x9448fa11, 0xe303934b, 0xea0e9845, 0xf1198557, 0xf8148e59, 0xc737bf73, 0xce3ab47d, 0xd52da96f, 0xdc20a261, 0x766df6ad, 0x7f60fda3, 0x6477e0b1, 0x6d7aebbf, 0x5259da95, 0x5b54d19b, 0x4043cc89, 0x494ec787, 0x3e05aedd, 0x3708a5d3, 0x2c1fb8c1, 0x2512b3cf, 0x1a3182e5, 0x133c89eb, 0x082b94f9, 0x01269ff7, 0xe6bd464d, 0xefb04d43, 0xf4a75051, 0xfdaa5b5f, 0xc2896a75, 0xcb84617b, 0xd0937c69, 0xd99e7767, 0xaed51e3d, 0xa7d81533, 0xbccf0821, 0xb5c2032f, 0x8ae13205, 0x83ec390b, 0x98fb2419, 0x91f62f17, 0x4dd68d76, 0x44db8678, 0x5fcc9b6a, 0x56c19064, 0x69e2a14e, 0x60efaa40, 0x7bf8b752, 0x72f5bc5c, 0x05bed506, 0x0cb3de08, 0x17a4c31a, 0x1ea9c814, 0x218af93e, 0x2887f230, 0x3390ef22, 0x3a9de42c, 0xdd063d96, 0xd40b3698, 0xcf1c2b8a, 0xc6112084, 0xf93211ae, 0xf03f1aa0, 0xeb2807b2, 0xe2250cbc, 0x956e65e6, 0x9c636ee8, 0x877473fa, 0x8e7978f4, 0xb15a49de, 0xb85742d0, 0xa3405fc2, 0xaa4d54cc, 0xecdaf741, 0xe5d7fc4f, 0xfec0e15d, 0xf7cdea53, 0xc8eedb79, 0xc1e3d077, 0xdaf4cd65, 0xd3f9c66b, 0xa4b2af31, 0xadbfa43f, 0xb6a8b92d, 0xbfa5b223, 0x80868309, 0x898b8807, 0x929c9515, 0x9b919e1b, 0x7c0a47a1, 0x75074caf, 0x6e1051bd, 0x671d5ab3, 0x583e6b99, 0x51336097, 0x4a247d85, 0x4329768b, 0x34621fd1, 0x3d6f14df, 0x267809cd, 0x2f7502c3, 0x105633e9, 0x195b38e7, 0x024c25f5, 0x0b412efb, 0xd7618c9a, 0xde6c8794, 0xc57b9a86, 0xcc769188, 0xf355a0a2, 0xfa58abac, 0xe14fb6be, 0xe842bdb0, 0x9f09d4ea, 0x9604dfe4, 0x8d13c2f6, 0x841ec9f8, 0xbb3df8d2, 0xb230f3dc, 0xa927eece, 0xa02ae5c0, 0x47b13c7a, 0x4ebc3774, 0x55ab2a66, 0x5ca62168, 0x63851042, 0x6a881b4c, 0x719f065e, 0x78920d50, 0x0fd9640a, 0x06d46f04, 0x1dc37216, 0x14ce7918, 0x2bed4832, 0x22e0433c, 0x39f75e2e, 0x30fa5520, 0x9ab701ec, 0x93ba0ae2, 0x88ad17f0, 0x81a01cfe, 0xbe832dd4, 0xb78e26da, 0xac993bc8, 0xa59430c6, 0xd2df599c, 0xdbd25292, 0xc0c54f80, 0xc9c8448e, 0xf6eb75a4, 0xffe67eaa, 0xe4f163b8, 0xedfc68b6, 0x0a67b10c, 0x036aba02, 0x187da710, 0x1170ac1e, 0x2e539d34, 0x275e963a, 0x3c498b28, 0x35448026, 0x420fe97c, 0x4b02e272, 0x5015ff60, 0x5918f46e, 0x663bc544, 0x6f36ce4a, 0x7421d358, 0x7d2cd856, 0xa10c7a37, 0xa8017139, 0xb3166c2b, 0xba1b6725, 0x8538560f, 0x8c355d01, 0x97224013, 0x9e2f4b1d, 0xe9642247, 0xe0692949, 0xfb7e345b, 0xf2733f55, 0xcd500e7f, 0xc45d0571, 0xdf4a1863, 0xd647136d, 0x31dccad7, 0x38d1c1d9, 0x23c6dccb, 0x2acbd7c5, 0x15e8e6ef, 0x1ce5ede1, 0x07f2f0f3, 0x0efffbfd, 0x79b492a7, 0x70b999a9, 0x6bae84bb, 0x62a38fb5, 0x5d80be9f, 0x548db591, 0x4f9aa883, 0x4697a38d];\n\n function convertToInt32(bytes) {\n var result = [];\n for (var i = 0; i < bytes.length; i += 4) {\n result.push(\n (bytes[i ] << 24) |\n (bytes[i + 1] << 16) |\n (bytes[i + 2] << 8) |\n bytes[i + 3]\n );\n }\n return result;\n }\n\n var AES = function(key) {\n if (!(this instanceof AES)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n Object.defineProperty(this, 'key', {\n value: coerceArray(key, true)\n });\n\n this._prepare();\n }\n\n\n AES.prototype._prepare = function() {\n\n var rounds = numberOfRounds[this.key.length];\n if (rounds == null) {\n throw new Error('invalid key size (must be 16, 24 or 32 bytes)');\n }\n\n // encryption round keys\n this._Ke = [];\n\n // decryption round keys\n this._Kd = [];\n\n for (var i = 0; i <= rounds; i++) {\n this._Ke.push([0, 0, 0, 0]);\n this._Kd.push([0, 0, 0, 0]);\n }\n\n var roundKeyCount = (rounds + 1) * 4;\n var KC = this.key.length / 4;\n\n // convert the key into ints\n var tk = convertToInt32(this.key);\n\n // copy values into round key arrays\n var index;\n for (var i = 0; i < KC; i++) {\n index = i >> 2;\n this._Ke[index][i % 4] = tk[i];\n this._Kd[rounds - index][i % 4] = tk[i];\n }\n\n // key expansion (fips-197 section 5.2)\n var rconpointer = 0;\n var t = KC, tt;\n while (t < roundKeyCount) {\n tt = tk[KC - 1];\n tk[0] ^= ((S[(tt >> 16) & 0xFF] << 24) ^\n (S[(tt >> 8) & 0xFF] << 16) ^\n (S[ tt & 0xFF] << 8) ^\n S[(tt >> 24) & 0xFF] ^\n (rcon[rconpointer] << 24));\n rconpointer += 1;\n\n // key expansion (for non-256 bit)\n if (KC != 8) {\n for (var i = 1; i < KC; i++) {\n tk[i] ^= tk[i - 1];\n }\n\n // key expansion for 256-bit keys is \"slightly different\" (fips-197)\n } else {\n for (var i = 1; i < (KC / 2); i++) {\n tk[i] ^= tk[i - 1];\n }\n tt = tk[(KC / 2) - 1];\n\n tk[KC / 2] ^= (S[ tt & 0xFF] ^\n (S[(tt >> 8) & 0xFF] << 8) ^\n (S[(tt >> 16) & 0xFF] << 16) ^\n (S[(tt >> 24) & 0xFF] << 24));\n\n for (var i = (KC / 2) + 1; i < KC; i++) {\n tk[i] ^= tk[i - 1];\n }\n }\n\n // copy values into round key arrays\n var i = 0, r, c;\n while (i < KC && t < roundKeyCount) {\n r = t >> 2;\n c = t % 4;\n this._Ke[r][c] = tk[i];\n this._Kd[rounds - r][c] = tk[i++];\n t++;\n }\n }\n\n // inverse-cipher-ify the decryption round key (fips-197 section 5.3)\n for (var r = 1; r < rounds; r++) {\n for (var c = 0; c < 4; c++) {\n tt = this._Kd[r][c];\n this._Kd[r][c] = (U1[(tt >> 24) & 0xFF] ^\n U2[(tt >> 16) & 0xFF] ^\n U3[(tt >> 8) & 0xFF] ^\n U4[ tt & 0xFF]);\n }\n }\n }\n\n AES.prototype.encrypt = function(plaintext) {\n if (plaintext.length != 16) {\n throw new Error('invalid plaintext size (must be 16 bytes)');\n }\n\n var rounds = this._Ke.length - 1;\n var a = [0, 0, 0, 0];\n\n // convert plaintext to (ints ^ key)\n var t = convertToInt32(plaintext);\n for (var i = 0; i < 4; i++) {\n t[i] ^= this._Ke[0][i];\n }\n\n // apply round transforms\n for (var r = 1; r < rounds; r++) {\n for (var i = 0; i < 4; i++) {\n a[i] = (T1[(t[ i ] >> 24) & 0xff] ^\n T2[(t[(i + 1) % 4] >> 16) & 0xff] ^\n T3[(t[(i + 2) % 4] >> 8) & 0xff] ^\n T4[ t[(i + 3) % 4] & 0xff] ^\n this._Ke[r][i]);\n }\n t = a.slice();\n }\n\n // the last round is special\n var result = createArray(16), tt;\n for (var i = 0; i < 4; i++) {\n tt = this._Ke[rounds][i];\n result[4 * i ] = (S[(t[ i ] >> 24) & 0xff] ^ (tt >> 24)) & 0xff;\n result[4 * i + 1] = (S[(t[(i + 1) % 4] >> 16) & 0xff] ^ (tt >> 16)) & 0xff;\n result[4 * i + 2] = (S[(t[(i + 2) % 4] >> 8) & 0xff] ^ (tt >> 8)) & 0xff;\n result[4 * i + 3] = (S[ t[(i + 3) % 4] & 0xff] ^ tt ) & 0xff;\n }\n\n return result;\n }\n\n AES.prototype.decrypt = function(ciphertext) {\n if (ciphertext.length != 16) {\n throw new Error('invalid ciphertext size (must be 16 bytes)');\n }\n\n var rounds = this._Kd.length - 1;\n var a = [0, 0, 0, 0];\n\n // convert plaintext to (ints ^ key)\n var t = convertToInt32(ciphertext);\n for (var i = 0; i < 4; i++) {\n t[i] ^= this._Kd[0][i];\n }\n\n // apply round transforms\n for (var r = 1; r < rounds; r++) {\n for (var i = 0; i < 4; i++) {\n a[i] = (T5[(t[ i ] >> 24) & 0xff] ^\n T6[(t[(i + 3) % 4] >> 16) & 0xff] ^\n T7[(t[(i + 2) % 4] >> 8) & 0xff] ^\n T8[ t[(i + 1) % 4] & 0xff] ^\n this._Kd[r][i]);\n }\n t = a.slice();\n }\n\n // the last round is special\n var result = createArray(16), tt;\n for (var i = 0; i < 4; i++) {\n tt = this._Kd[rounds][i];\n result[4 * i ] = (Si[(t[ i ] >> 24) & 0xff] ^ (tt >> 24)) & 0xff;\n result[4 * i + 1] = (Si[(t[(i + 3) % 4] >> 16) & 0xff] ^ (tt >> 16)) & 0xff;\n result[4 * i + 2] = (Si[(t[(i + 2) % 4] >> 8) & 0xff] ^ (tt >> 8)) & 0xff;\n result[4 * i + 3] = (Si[ t[(i + 1) % 4] & 0xff] ^ tt ) & 0xff;\n }\n\n return result;\n }\n\n\n /**\n * Mode Of Operation - Electonic Codebook (ECB)\n */\n var ModeOfOperationECB = function(key) {\n if (!(this instanceof ModeOfOperationECB)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Electronic Code Block\";\n this.name = \"ecb\";\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationECB.prototype.encrypt = function(plaintext) {\n plaintext = coerceArray(plaintext);\n\n if ((plaintext.length % 16) !== 0) {\n throw new Error('invalid plaintext size (must be multiple of 16 bytes)');\n }\n\n var ciphertext = createArray(plaintext.length);\n var block = createArray(16);\n\n for (var i = 0; i < plaintext.length; i += 16) {\n copyArray(plaintext, block, 0, i, i + 16);\n block = this._aes.encrypt(block);\n copyArray(block, ciphertext, i);\n }\n\n return ciphertext;\n }\n\n ModeOfOperationECB.prototype.decrypt = function(ciphertext) {\n ciphertext = coerceArray(ciphertext);\n\n if ((ciphertext.length % 16) !== 0) {\n throw new Error('invalid ciphertext size (must be multiple of 16 bytes)');\n }\n\n var plaintext = createArray(ciphertext.length);\n var block = createArray(16);\n\n for (var i = 0; i < ciphertext.length; i += 16) {\n copyArray(ciphertext, block, 0, i, i + 16);\n block = this._aes.decrypt(block);\n copyArray(block, plaintext, i);\n }\n\n return plaintext;\n }\n\n\n /**\n * Mode Of Operation - Cipher Block Chaining (CBC)\n */\n var ModeOfOperationCBC = function(key, iv) {\n if (!(this instanceof ModeOfOperationCBC)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Cipher Block Chaining\";\n this.name = \"cbc\";\n\n if (!iv) {\n iv = createArray(16);\n\n } else if (iv.length != 16) {\n throw new Error('invalid initialation vector size (must be 16 bytes)');\n }\n\n this._lastCipherblock = coerceArray(iv, true);\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationCBC.prototype.encrypt = function(plaintext) {\n plaintext = coerceArray(plaintext);\n\n if ((plaintext.length % 16) !== 0) {\n throw new Error('invalid plaintext size (must be multiple of 16 bytes)');\n }\n\n var ciphertext = createArray(plaintext.length);\n var block = createArray(16);\n\n for (var i = 0; i < plaintext.length; i += 16) {\n copyArray(plaintext, block, 0, i, i + 16);\n\n for (var j = 0; j < 16; j++) {\n block[j] ^= this._lastCipherblock[j];\n }\n\n this._lastCipherblock = this._aes.encrypt(block);\n copyArray(this._lastCipherblock, ciphertext, i);\n }\n\n return ciphertext;\n }\n\n ModeOfOperationCBC.prototype.decrypt = function(ciphertext) {\n ciphertext = coerceArray(ciphertext);\n\n if ((ciphertext.length % 16) !== 0) {\n throw new Error('invalid ciphertext size (must be multiple of 16 bytes)');\n }\n\n var plaintext = createArray(ciphertext.length);\n var block = createArray(16);\n\n for (var i = 0; i < ciphertext.length; i += 16) {\n copyArray(ciphertext, block, 0, i, i + 16);\n block = this._aes.decrypt(block);\n\n for (var j = 0; j < 16; j++) {\n plaintext[i + j] = block[j] ^ this._lastCipherblock[j];\n }\n\n copyArray(ciphertext, this._lastCipherblock, 0, i, i + 16);\n }\n\n return plaintext;\n }\n\n\n /**\n * Mode Of Operation - Cipher Feedback (CFB)\n */\n var ModeOfOperationCFB = function(key, iv, segmentSize) {\n if (!(this instanceof ModeOfOperationCFB)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Cipher Feedback\";\n this.name = \"cfb\";\n\n if (!iv) {\n iv = createArray(16);\n\n } else if (iv.length != 16) {\n throw new Error('invalid initialation vector size (must be 16 size)');\n }\n\n if (!segmentSize) { segmentSize = 1; }\n\n this.segmentSize = segmentSize;\n\n this._shiftRegister = coerceArray(iv, true);\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationCFB.prototype.encrypt = function(plaintext) {\n if ((plaintext.length % this.segmentSize) != 0) {\n throw new Error('invalid plaintext size (must be segmentSize bytes)');\n }\n\n var encrypted = coerceArray(plaintext, true);\n\n var xorSegment;\n for (var i = 0; i < encrypted.length; i += this.segmentSize) {\n xorSegment = this._aes.encrypt(this._shiftRegister);\n for (var j = 0; j < this.segmentSize; j++) {\n encrypted[i + j] ^= xorSegment[j];\n }\n\n // Shift the register\n copyArray(this._shiftRegister, this._shiftRegister, 0, this.segmentSize);\n copyArray(encrypted, this._shiftRegister, 16 - this.segmentSize, i, i + this.segmentSize);\n }\n\n return encrypted;\n }\n\n ModeOfOperationCFB.prototype.decrypt = function(ciphertext) {\n if ((ciphertext.length % this.segmentSize) != 0) {\n throw new Error('invalid ciphertext size (must be segmentSize bytes)');\n }\n\n var plaintext = coerceArray(ciphertext, true);\n\n var xorSegment;\n for (var i = 0; i < plaintext.length; i += this.segmentSize) {\n xorSegment = this._aes.encrypt(this._shiftRegister);\n\n for (var j = 0; j < this.segmentSize; j++) {\n plaintext[i + j] ^= xorSegment[j];\n }\n\n // Shift the register\n copyArray(this._shiftRegister, this._shiftRegister, 0, this.segmentSize);\n copyArray(ciphertext, this._shiftRegister, 16 - this.segmentSize, i, i + this.segmentSize);\n }\n\n return plaintext;\n }\n\n /**\n * Mode Of Operation - Output Feedback (OFB)\n */\n var ModeOfOperationOFB = function(key, iv) {\n if (!(this instanceof ModeOfOperationOFB)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Output Feedback\";\n this.name = \"ofb\";\n\n if (!iv) {\n iv = createArray(16);\n\n } else if (iv.length != 16) {\n throw new Error('invalid initialation vector size (must be 16 bytes)');\n }\n\n this._lastPrecipher = coerceArray(iv, true);\n this._lastPrecipherIndex = 16;\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationOFB.prototype.encrypt = function(plaintext) {\n var encrypted = coerceArray(plaintext, true);\n\n for (var i = 0; i < encrypted.length; i++) {\n if (this._lastPrecipherIndex === 16) {\n this._lastPrecipher = this._aes.encrypt(this._lastPrecipher);\n this._lastPrecipherIndex = 0;\n }\n encrypted[i] ^= this._lastPrecipher[this._lastPrecipherIndex++];\n }\n\n return encrypted;\n }\n\n // Decryption is symetric\n ModeOfOperationOFB.prototype.decrypt = ModeOfOperationOFB.prototype.encrypt;\n\n\n /**\n * Counter object for CTR common mode of operation\n */\n var Counter = function(initialValue) {\n if (!(this instanceof Counter)) {\n throw Error('Counter must be instanitated with `new`');\n }\n\n // We allow 0, but anything false-ish uses the default 1\n if (initialValue !== 0 && !initialValue) { initialValue = 1; }\n\n if (typeof(initialValue) === 'number') {\n this._counter = createArray(16);\n this.setValue(initialValue);\n\n } else {\n this.setBytes(initialValue);\n }\n }\n\n Counter.prototype.setValue = function(value) {\n if (typeof(value) !== 'number' || parseInt(value) != value) {\n throw new Error('invalid counter value (must be an integer)');\n }\n\n for (var index = 15; index >= 0; --index) {\n this._counter[index] = value % 256;\n value = value >> 8;\n }\n }\n\n Counter.prototype.setBytes = function(bytes) {\n bytes = coerceArray(bytes, true);\n\n if (bytes.length != 16) {\n throw new Error('invalid counter bytes size (must be 16 bytes)');\n }\n\n this._counter = bytes;\n };\n\n Counter.prototype.increment = function() {\n for (var i = 15; i >= 0; i--) {\n if (this._counter[i] === 255) {\n this._counter[i] = 0;\n } else {\n this._counter[i]++;\n break;\n }\n }\n }\n\n\n /**\n * Mode Of Operation - Counter (CTR)\n */\n var ModeOfOperationCTR = function(key, counter) {\n if (!(this instanceof ModeOfOperationCTR)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Counter\";\n this.name = \"ctr\";\n\n if (!(counter instanceof Counter)) {\n counter = new Counter(counter)\n }\n\n this._counter = counter;\n\n this._remainingCounter = null;\n this._remainingCounterIndex = 16;\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationCTR.prototype.encrypt = function(plaintext) {\n var encrypted = coerceArray(plaintext, true);\n\n for (var i = 0; i < encrypted.length; i++) {\n if (this._remainingCounterIndex === 16) {\n this._remainingCounter = this._aes.encrypt(this._counter._counter);\n this._remainingCounterIndex = 0;\n this._counter.increment();\n }\n encrypted[i] ^= this._remainingCounter[this._remainingCounterIndex++];\n }\n\n return encrypted;\n }\n\n // Decryption is symetric\n ModeOfOperationCTR.prototype.decrypt = ModeOfOperationCTR.prototype.encrypt;\n\n\n ///////////////////////\n // Padding\n\n // See:https://tools.ietf.org/html/rfc2315\n function pkcs7pad(data) {\n data = coerceArray(data, true);\n var padder = 16 - (data.length % 16);\n var result = createArray(data.length + padder);\n copyArray(data, result);\n for (var i = data.length; i < result.length; i++) {\n result[i] = padder;\n }\n return result;\n }\n\n function pkcs7strip(data) {\n data = coerceArray(data, true);\n if (data.length < 16) { throw new Error('PKCS#7 invalid length'); }\n\n var padder = data[data.length - 1];\n if (padder > 16) { throw new Error('PKCS#7 padding byte out of range'); }\n\n var length = data.length - padder;\n for (var i = 0; i < padder; i++) {\n if (data[length + i] !== padder) {\n throw new Error('PKCS#7 invalid padding byte');\n }\n }\n\n var result = createArray(length);\n copyArray(data, result, 0, 0, length);\n return result;\n }\n\n ///////////////////////\n // Exporting\n\n\n // The block cipher\n var aesjs = {\n AES: AES,\n Counter: Counter,\n\n ModeOfOperation: {\n ecb: ModeOfOperationECB,\n cbc: ModeOfOperationCBC,\n cfb: ModeOfOperationCFB,\n ofb: ModeOfOperationOFB,\n ctr: ModeOfOperationCTR\n },\n\n utils: {\n hex: convertHex,\n utf8: convertUtf8\n },\n\n padding: {\n pkcs7: {\n pad: pkcs7pad,\n strip: pkcs7strip\n }\n },\n\n _arrayTest: {\n coerceArray: coerceArray,\n createArray: createArray,\n copyArray: copyArray,\n }\n };\n\n\n // node.js\n if (typeof exports !== 'undefined') {\n module.exports = aesjs\n\n // RequireJS/AMD\n // http://www.requirejs.org/docs/api.html\n // https://github.com/amdjs/amdjs-api/wiki/AMD\n } else if (typeof(define) === 'function' && define.amd) {\n define(aesjs);\n\n // Web Browsers\n } else {\n\n // If there was an existing library at \"aesjs\" make sure it's still available\n if (root.aesjs) {\n aesjs._aesjs = root.aesjs;\n }\n\n root.aesjs = aesjs;\n }\n\n\n})(this);\n", "\"use strict\";\n\n(function(root) {\n const MAX_VALUE = 0x7fffffff;\n\n // The SHA256 and PBKDF2 implementation are from scrypt-async-js:\n // See: https://github.com/dchest/scrypt-async-js\n function SHA256(m) {\n const K = new Uint32Array([\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\n let h0 = 0x6a09e667, h1 = 0xbb67ae85, h2 = 0x3c6ef372, h3 = 0xa54ff53a;\n let h4 = 0x510e527f, h5 = 0x9b05688c, h6 = 0x1f83d9ab, h7 = 0x5be0cd19;\n const w = new Uint32Array(64);\n\n function blocks(p) {\n let off = 0, len = p.length;\n while (len >= 64) {\n let a = h0, b = h1, c = h2, d = h3, e = h4, f = h5, g = h6, h = h7, u, i, j, t1, t2;\n\n for (i = 0; i < 16; i++) {\n j = off + i*4;\n w[i] = ((p[j] & 0xff)<<24) | ((p[j+1] & 0xff)<<16) |\n ((p[j+2] & 0xff)<<8) | (p[j+3] & 0xff);\n }\n\n for (i = 16; i < 64; i++) {\n u = w[i-2];\n t1 = ((u>>>17) | (u<<(32-17))) ^ ((u>>>19) | (u<<(32-19))) ^ (u>>>10);\n\n u = w[i-15];\n 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)) | 0;\n }\n\n for (i = 0; i < 64; i++) {\n 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 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 h0 = (h0 + a) | 0;\n h1 = (h1 + b) | 0;\n h2 = (h2 + c) | 0;\n h3 = (h3 + d) | 0;\n h4 = (h4 + e) | 0;\n h5 = (h5 + f) | 0;\n h6 = (h6 + g) | 0;\n h7 = (h7 + h) | 0;\n\n off += 64;\n len -= 64;\n }\n }\n\n blocks(m);\n\n let i, bytesLeft = m.length % 64,\n bitLenHi = (m.length / 0x20000000) | 0,\n bitLenLo = m.length << 3,\n numZeros = (bytesLeft < 56) ? 56 : 120,\n p = m.slice(m.length - bytesLeft, m.length);\n\n p.push(0x80);\n for (i = bytesLeft + 1; i < numZeros; i++) { p.push(0); }\n p.push((bitLenHi >>> 24) & 0xff);\n p.push((bitLenHi >>> 16) & 0xff);\n p.push((bitLenHi >>> 8) & 0xff);\n p.push((bitLenHi >>> 0) & 0xff);\n p.push((bitLenLo >>> 24) & 0xff);\n p.push((bitLenLo >>> 16) & 0xff);\n p.push((bitLenLo >>> 8) & 0xff);\n p.push((bitLenLo >>> 0) & 0xff);\n\n blocks(p);\n\n return [\n (h0 >>> 24) & 0xff, (h0 >>> 16) & 0xff, (h0 >>> 8) & 0xff, (h0 >>> 0) & 0xff,\n (h1 >>> 24) & 0xff, (h1 >>> 16) & 0xff, (h1 >>> 8) & 0xff, (h1 >>> 0) & 0xff,\n (h2 >>> 24) & 0xff, (h2 >>> 16) & 0xff, (h2 >>> 8) & 0xff, (h2 >>> 0) & 0xff,\n (h3 >>> 24) & 0xff, (h3 >>> 16) & 0xff, (h3 >>> 8) & 0xff, (h3 >>> 0) & 0xff,\n (h4 >>> 24) & 0xff, (h4 >>> 16) & 0xff, (h4 >>> 8) & 0xff, (h4 >>> 0) & 0xff,\n (h5 >>> 24) & 0xff, (h5 >>> 16) & 0xff, (h5 >>> 8) & 0xff, (h5 >>> 0) & 0xff,\n (h6 >>> 24) & 0xff, (h6 >>> 16) & 0xff, (h6 >>> 8) & 0xff, (h6 >>> 0) & 0xff,\n (h7 >>> 24) & 0xff, (h7 >>> 16) & 0xff, (h7 >>> 8) & 0xff, (h7 >>> 0) & 0xff\n ];\n }\n\n function PBKDF2_HMAC_SHA256_OneIter(password, salt, dkLen) {\n // compress password if it's longer than hash block length\n password = (password.length <= 64) ? password : SHA256(password);\n\n const innerLen = 64 + salt.length + 4;\n const inner = new Array(innerLen);\n const outerKey = new Array(64);\n\n let i;\n let dk = [];\n\n // inner = (password ^ ipad) || salt || counter\n for (i = 0; i < 64; i++) { inner[i] = 0x36; }\n for (i = 0; i < password.length; i++) { inner[i] ^= password[i]; }\n for (i = 0; i < salt.length; i++) { inner[64 + i] = salt[i]; }\n for (i = innerLen - 4; i < innerLen; i++) { inner[i] = 0; }\n\n // outerKey = password ^ opad\n for (i = 0; i < 64; i++) outerKey[i] = 0x5c;\n for (i = 0; i < password.length; i++) outerKey[i] ^= password[i];\n\n // increments counter inside inner\n function incrementCounter() {\n for (let i = innerLen - 1; i >= innerLen - 4; i--) {\n inner[i]++;\n if (inner[i] <= 0xff) return;\n inner[i] = 0;\n }\n }\n\n // output blocks = SHA256(outerKey || SHA256(inner)) ...\n while (dkLen >= 32) {\n incrementCounter();\n dk = dk.concat(SHA256(outerKey.concat(SHA256(inner))));\n dkLen -= 32;\n }\n if (dkLen > 0) {\n incrementCounter();\n dk = dk.concat(SHA256(outerKey.concat(SHA256(inner))).slice(0, dkLen));\n }\n\n return dk;\n }\n\n // The following is an adaptation of scryptsy\n // See: https://www.npmjs.com/package/scryptsy\n function blockmix_salsa8(BY, Yi, r, x, _X) {\n let i;\n\n arraycopy(BY, (2 * r - 1) * 16, _X, 0, 16);\n for (i = 0; i < 2 * r; i++) {\n blockxor(BY, i * 16, _X, 16);\n salsa20_8(_X, x);\n arraycopy(_X, 0, BY, Yi + (i * 16), 16);\n }\n\n for (i = 0; i < r; i++) {\n arraycopy(BY, Yi + (i * 2) * 16, BY, (i * 16), 16);\n }\n\n for (i = 0; i < r; i++) {\n arraycopy(BY, Yi + (i * 2 + 1) * 16, BY, (i + r) * 16, 16);\n }\n }\n\n function R(a, b) {\n return (a << b) | (a >>> (32 - b));\n }\n\n function salsa20_8(B, x) {\n arraycopy(B, 0, x, 0, 16);\n\n for (let i = 8; i > 0; i -= 2) {\n x[ 4] ^= R(x[ 0] + x[12], 7);\n x[ 8] ^= R(x[ 4] + x[ 0], 9);\n x[12] ^= R(x[ 8] + x[ 4], 13);\n x[ 0] ^= R(x[12] + x[ 8], 18);\n x[ 9] ^= R(x[ 5] + x[ 1], 7);\n x[13] ^= R(x[ 9] + x[ 5], 9);\n x[ 1] ^= R(x[13] + x[ 9], 13);\n x[ 5] ^= R(x[ 1] + x[13], 18);\n x[14] ^= R(x[10] + x[ 6], 7);\n x[ 2] ^= R(x[14] + x[10], 9);\n x[ 6] ^= R(x[ 2] + x[14], 13);\n x[10] ^= R(x[ 6] + x[ 2], 18);\n x[ 3] ^= R(x[15] + x[11], 7);\n x[ 7] ^= R(x[ 3] + x[15], 9);\n x[11] ^= R(x[ 7] + x[ 3], 13);\n x[15] ^= R(x[11] + x[ 7], 18);\n x[ 1] ^= R(x[ 0] + x[ 3], 7);\n x[ 2] ^= R(x[ 1] + x[ 0], 9);\n x[ 3] ^= R(x[ 2] + x[ 1], 13);\n x[ 0] ^= R(x[ 3] + x[ 2], 18);\n x[ 6] ^= R(x[ 5] + x[ 4], 7);\n x[ 7] ^= R(x[ 6] + x[ 5], 9);\n x[ 4] ^= R(x[ 7] + x[ 6], 13);\n x[ 5] ^= R(x[ 4] + x[ 7], 18);\n x[11] ^= R(x[10] + x[ 9], 7);\n x[ 8] ^= R(x[11] + x[10], 9);\n x[ 9] ^= R(x[ 8] + x[11], 13);\n x[10] ^= R(x[ 9] + x[ 8], 18);\n x[12] ^= R(x[15] + x[14], 7);\n x[13] ^= R(x[12] + x[15], 9);\n x[14] ^= R(x[13] + x[12], 13);\n x[15] ^= R(x[14] + x[13], 18);\n }\n\n for (let i = 0; i < 16; ++i) {\n B[i] += x[i];\n }\n }\n\n // naive approach... going back to loop unrolling may yield additional performance\n function blockxor(S, Si, D, len) {\n for (let i = 0; i < len; i++) {\n D[i] ^= S[Si + i]\n }\n }\n\n function arraycopy(src, srcPos, dest, destPos, length) {\n while (length--) {\n dest[destPos++] = src[srcPos++];\n }\n }\n\n function checkBufferish(o) {\n if (!o || typeof(o.length) !== 'number') { return false; }\n\n for (let i = 0; i < o.length; i++) {\n const v = o[i];\n if (typeof(v) !== 'number' || v % 1 || v < 0 || v >= 256) {\n return false;\n }\n }\n\n return true;\n }\n\n function ensureInteger(value, name) {\n if (typeof(value) !== \"number\" || (value % 1)) { throw new Error('invalid ' + name); }\n return value;\n }\n\n // N = Cpu cost, r = Memory cost, p = parallelization cost\n // callback(error, progress, key)\n function _scrypt(password, salt, N, r, p, dkLen, callback) {\n\n N = ensureInteger(N, 'N');\n r = ensureInteger(r, 'r');\n p = ensureInteger(p, 'p');\n\n dkLen = ensureInteger(dkLen, 'dkLen');\n\n if (N === 0 || (N & (N - 1)) !== 0) { throw new Error('N must be power of 2'); }\n\n if (N > MAX_VALUE / 128 / r) { throw new Error('N too large'); }\n if (r > MAX_VALUE / 128 / p) { throw new Error('r too large'); }\n\n if (!checkBufferish(password)) {\n throw new Error('password must be an array or buffer');\n }\n password = Array.prototype.slice.call(password);\n\n if (!checkBufferish(salt)) {\n throw new Error('salt must be an array or buffer');\n }\n salt = Array.prototype.slice.call(salt);\n\n let b = PBKDF2_HMAC_SHA256_OneIter(password, salt, p * 128 * r);\n const B = new Uint32Array(p * 32 * r)\n for (let i = 0; i < B.length; i++) {\n const j = i * 4;\n B[i] = ((b[j + 3] & 0xff) << 24) |\n ((b[j + 2] & 0xff) << 16) |\n ((b[j + 1] & 0xff) << 8) |\n ((b[j + 0] & 0xff) << 0);\n }\n\n const XY = new Uint32Array(64 * r);\n const V = new Uint32Array(32 * r * N);\n\n const Yi = 32 * r;\n\n // scratch space\n const x = new Uint32Array(16); // salsa20_8\n const _X = new Uint32Array(16); // blockmix_salsa8\n\n const totalOps = p * N * 2;\n let currentOp = 0;\n let lastPercent10 = null;\n\n // Set this to true to abandon the scrypt on the next step\n let stop = false;\n\n // State information\n let state = 0;\n let i0 = 0, i1;\n let Bi;\n\n // How many blockmix_salsa8 can we do per step?\n const limit = callback ? parseInt(1000 / r): 0xffffffff;\n\n // Trick from scrypt-async; if there is a setImmediate shim in place, use it\n const nextTick = (typeof(setImmediate) !== 'undefined') ? setImmediate : setTimeout;\n\n // This is really all I changed; making scryptsy a state machine so we occasionally\n // stop and give other evnts on the evnt loop a chance to run. ~RicMoo\n const incrementalSMix = function() {\n if (stop) {\n return callback(new Error('cancelled'), currentOp / totalOps);\n }\n\n let steps;\n\n switch (state) {\n case 0:\n // for (var i = 0; i < p; i++)...\n Bi = i0 * 32 * r;\n\n arraycopy(B, Bi, XY, 0, Yi); // ROMix - 1\n\n state = 1; // Move to ROMix 2\n i1 = 0;\n\n // Fall through\n\n case 1:\n\n // Run up to 1000 steps of the first inner smix loop\n steps = N - i1;\n if (steps > limit) { steps = limit; }\n for (let i = 0; i < steps; i++) { // ROMix - 2\n arraycopy(XY, 0, V, (i1 + i) * Yi, Yi) // ROMix - 3\n blockmix_salsa8(XY, Yi, r, x, _X); // ROMix - 4\n }\n\n // for (var i = 0; i < N; i++)\n i1 += steps;\n currentOp += steps;\n\n if (callback) {\n // Call the callback with the progress (optionally stopping us)\n const percent10 = parseInt(1000 * currentOp / totalOps);\n if (percent10 !== lastPercent10) {\n stop = callback(null, currentOp / totalOps);\n if (stop) { break; }\n lastPercent10 = percent10;\n }\n }\n\n if (i1 < N) { break; }\n\n i1 = 0; // Move to ROMix 6\n state = 2;\n\n // Fall through\n\n case 2:\n\n // Run up to 1000 steps of the second inner smix loop\n steps = N - i1;\n if (steps > limit) { steps = limit; }\n for (let i = 0; i < steps; i++) { // ROMix - 6\n const offset = (2 * r - 1) * 16; // ROMix - 7\n const j = XY[offset] & (N - 1);\n blockxor(V, j * Yi, XY, Yi); // ROMix - 8 (inner)\n blockmix_salsa8(XY, Yi, r, x, _X); // ROMix - 9 (outer)\n }\n\n // for (var i = 0; i < N; i++)...\n i1 += steps;\n currentOp += steps;\n\n // Call the callback with the progress (optionally stopping us)\n if (callback) {\n const percent10 = parseInt(1000 * currentOp / totalOps);\n if (percent10 !== lastPercent10) {\n stop = callback(null, currentOp / totalOps);\n if (stop) { break; }\n lastPercent10 = percent10;\n }\n }\n\n if (i1 < N) { break; }\n\n arraycopy(XY, 0, B, Bi, Yi); // ROMix - 10\n\n // for (var i = 0; i < p; i++)...\n i0++;\n if (i0 < p) {\n state = 0;\n break;\n }\n\n b = [];\n for (let i = 0; i < B.length; i++) {\n b.push((B[i] >> 0) & 0xff);\n b.push((B[i] >> 8) & 0xff);\n b.push((B[i] >> 16) & 0xff);\n b.push((B[i] >> 24) & 0xff);\n }\n\n const derivedKey = PBKDF2_HMAC_SHA256_OneIter(password, b, dkLen);\n\n // Send the result to the callback\n if (callback) { callback(null, 1.0, derivedKey); }\n\n // Done; don't break (which would reschedule)\n return derivedKey;\n }\n\n // Schedule the next steps\n if (callback) { nextTick(incrementalSMix); }\n }\n\n // Run the smix state machine until completion\n if (!callback) {\n while (true) {\n const derivedKey = incrementalSMix();\n if (derivedKey != undefined) { return derivedKey; }\n }\n }\n\n // Bootstrap the async incremental smix\n incrementalSMix();\n }\n\n const lib = {\n scrypt: function(password, salt, N, r, p, dkLen, progressCallback) {\n return new Promise(function(resolve, reject) {\n let lastProgress = 0;\n if (progressCallback) { progressCallback(0); }\n _scrypt(password, salt, N, r, p, dkLen, function(error, progress, key) {\n if (error) {\n reject(error);\n } else if (key) {\n if (progressCallback && lastProgress !== 1) {\n progressCallback(1);\n }\n resolve(new Uint8Array(key));\n } else if (progressCallback && progress !== lastProgress) {\n lastProgress = progress;\n return progressCallback(progress);\n }\n });\n });\n },\n syncScrypt: function(password, salt, N, r, p, dkLen) {\n return new Uint8Array(_scrypt(password, salt, N, r, p, dkLen));\n }\n };\n\n // node.js\n if (typeof(exports) !== 'undefined') {\n module.exports = lib;\n\n // RequireJS/AMD\n // http://www.requirejs.org/docs/api.html\n // https://github.com/amdjs/amdjs-api/wiki/AMD\n } else if (typeof(define) === 'function' && define.amd) {\n define(lib);\n\n // Web Browsers\n } else if (root) {\n\n // If there was an existing library \"scrypt\", make sure it is still available\n if (root.scrypt) {\n root._scrypt = root.scrypt;\n }\n\n root.scrypt = lib;\n }\n\n})(this);\n", "'use strict'\nvar ALPHABET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l'\n\n// pre-compute lookup table\nvar ALPHABET_MAP = {}\nfor (var z = 0; z < ALPHABET.length; z++) {\n var x = ALPHABET.charAt(z)\n\n if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')\n ALPHABET_MAP[x] = z\n}\n\nfunction polymodStep (pre) {\n var b = pre >> 25\n return ((pre & 0x1FFFFFF) << 5) ^\n (-((b >> 0) & 1) & 0x3b6a57b2) ^\n (-((b >> 1) & 1) & 0x26508e6d) ^\n (-((b >> 2) & 1) & 0x1ea119fa) ^\n (-((b >> 3) & 1) & 0x3d4233dd) ^\n (-((b >> 4) & 1) & 0x2a1462b3)\n}\n\nfunction prefixChk (prefix) {\n var chk = 1\n for (var i = 0; i < prefix.length; ++i) {\n var c = prefix.charCodeAt(i)\n if (c < 33 || c > 126) return 'Invalid prefix (' + prefix + ')'\n\n chk = polymodStep(chk) ^ (c >> 5)\n }\n chk = polymodStep(chk)\n\n for (i = 0; i < prefix.length; ++i) {\n var v = prefix.charCodeAt(i)\n chk = polymodStep(chk) ^ (v & 0x1f)\n }\n return chk\n}\n\nfunction encode (prefix, words, LIMIT) {\n LIMIT = LIMIT || 90\n if ((prefix.length + 7 + words.length) > LIMIT) throw new TypeError('Exceeds length limit')\n\n prefix = prefix.toLowerCase()\n\n // determine chk mod\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') throw new Error(chk)\n\n var result = prefix + '1'\n for (var i = 0; i < words.length; ++i) {\n var x = words[i]\n if ((x >> 5) !== 0) throw new Error('Non 5-bit word')\n\n chk = polymodStep(chk) ^ x\n result += ALPHABET.charAt(x)\n }\n\n for (i = 0; i < 6; ++i) {\n chk = polymodStep(chk)\n }\n chk ^= 1\n\n for (i = 0; i < 6; ++i) {\n var v = (chk >> ((5 - i) * 5)) & 0x1f\n result += ALPHABET.charAt(v)\n }\n\n return result\n}\n\nfunction __decode (str, LIMIT) {\n LIMIT = LIMIT || 90\n if (str.length < 8) return str + ' too short'\n if (str.length > LIMIT) return 'Exceeds length limit'\n\n // don't allow mixed case\n var lowered = str.toLowerCase()\n var uppered = str.toUpperCase()\n if (str !== lowered && str !== uppered) return 'Mixed-case string ' + str\n str = lowered\n\n var split = str.lastIndexOf('1')\n if (split === -1) return 'No separator character for ' + str\n if (split === 0) return 'Missing prefix for ' + str\n\n var prefix = str.slice(0, split)\n var wordChars = str.slice(split + 1)\n if (wordChars.length < 6) return 'Data too short'\n\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') return chk\n\n var words = []\n for (var i = 0; i < wordChars.length; ++i) {\n var c = wordChars.charAt(i)\n var v = ALPHABET_MAP[c]\n if (v === undefined) return 'Unknown character ' + c\n chk = polymodStep(chk) ^ v\n\n // not in the checksum?\n if (i + 6 >= wordChars.length) continue\n words.push(v)\n }\n\n if (chk !== 1) return 'Invalid checksum for ' + str\n return { prefix: prefix, words: words }\n}\n\nfunction decodeUnsafe () {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n}\n\nfunction decode (str) {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n\n throw new Error(res)\n}\n\nfunction convert (data, inBits, outBits, pad) {\n var value = 0\n var bits = 0\n var maxV = (1 << outBits) - 1\n\n var result = []\n for (var i = 0; i < data.length; ++i) {\n value = (value << inBits) | data[i]\n bits += inBits\n\n while (bits >= outBits) {\n bits -= outBits\n result.push((value >> bits) & maxV)\n }\n }\n\n if (pad) {\n if (bits > 0) {\n result.push((value << (outBits - bits)) & maxV)\n }\n } else {\n if (bits >= inBits) return 'Excess padding'\n if ((value << (outBits - bits)) & maxV) return 'Non-zero padding'\n }\n\n return result\n}\n\nfunction toWordsUnsafe (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n}\n\nfunction toWords (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nfunction fromWordsUnsafe (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n}\n\nfunction fromWords (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nmodule.exports = {\n decodeUnsafe: decodeUnsafe,\n decode: decode,\n encode: encode,\n toWordsUnsafe: toWordsUnsafe,\n toWords: toWords,\n fromWordsUnsafe: fromWordsUnsafe,\n fromWords: fromWords\n}\n", "import { Buffer } from 'buffer';\n\nimport { LearnCard } from '@learncard/core';\nimport { ethers } from 'ethers';\n\nimport { EthereumConfig, EthereumPlugin, TokenList } from './types';\nimport {\n formatUnits,\n parseUnits,\n getTokenFromSymbolOrAddress,\n getChainIdFromProvider,\n} from './helpers';\nimport hardcodedTokens from './hardcodedTokens';\n\nexport * from './types';\n\nconst ERC20ABI = require('./erc20.abi.json');\n\n/**\n * @group Plugins\n */\nexport const getEthereumPlugin = (\n initLearnCard: LearnCard<any, 'id'>,\n config: EthereumConfig\n): EthereumPlugin => {\n let { infuraProjectId, network = 'mainnet' } = config;\n\n // Ethers wallet\n const secpKeypair = initLearnCard.id.keypair('secp256k1');\n\n if (!secpKeypair) {\n throw new Error('LearnCard must support secp256k1 JWK in order to add Ethereum Plugin');\n }\n\n const privateKey = Buffer.from(secpKeypair.d, 'base64').toString('hex');\n let ethersWallet = new ethers.Wallet(privateKey);\n const publicKey: string = ethersWallet.address;\n\n // Provider\n const getProvider = () => {\n let provider: ethers.providers.Provider;\n if (infuraProjectId) {\n provider = new ethers.providers.InfuraProvider(network, infuraProjectId);\n } else {\n provider = ethers.getDefaultProvider(network);\n }\n\n ethersWallet = ethersWallet.connect(provider);\n return provider;\n };\n let provider: ethers.providers.Provider;\n\n const getDefaultTokenList = (): TokenList => {\n return require('@uniswap/default-token-list/build/uniswap-default.tokenlist.json').tokens.concat(\n hardcodedTokens\n );\n };\n const defaultTokenList: TokenList = getDefaultTokenList();\n\n const getTokenAddress = async (tokenSymbolOrAddress: string) => {\n if (!provider) provider = getProvider();\n\n return (\n await getTokenFromSymbolOrAddress(\n tokenSymbolOrAddress,\n defaultTokenList,\n await getChainIdFromProvider(provider)\n )\n )?.address;\n };\n\n const getErc20TokenBalance = async (\n tokenContractAddress: string,\n walletPublicAddress = publicKey\n ) => {\n if (!provider) provider = getProvider();\n\n const contract = new ethers.Contract(tokenContractAddress, ERC20ABI, provider);\n\n const balance = await contract.balanceOf(walletPublicAddress);\n const formattedBalance = formatUnits(\n balance,\n tokenContractAddress,\n defaultTokenList,\n await getChainIdFromProvider(provider)\n );\n\n return formattedBalance;\n };\n\n // Core Methods\n const getBalance = async (walletAddress = publicKey, tokenSymbolOrAddress = 'ETH') => {\n if (!provider) provider = getProvider();\n\n if (!tokenSymbolOrAddress || tokenSymbolOrAddress === 'ETH') {\n // check ETH by default\n const balance = await provider.getBalance(walletAddress);\n const formattedBalance = ethers.utils.formatEther(balance);\n\n return formattedBalance;\n }\n\n const tokenAddress = await getTokenAddress(tokenSymbolOrAddress);\n\n if (!tokenAddress) {\n throw new Error(`Unable to determine token address for \\\"${tokenSymbolOrAddress}\\\"`);\n }\n\n const balance = await getErc20TokenBalance(tokenAddress, walletAddress);\n\n return balance;\n };\n\n return {\n name: 'Ethereum',\n displayName: 'Ethereum',\n description: 'Provides access to currency',\n methods: {\n getEthereumAddress: () => publicKey,\n\n getBalance: async (_learnCard, symbolOrAddress = 'ETH') =>\n getBalance(publicKey, symbolOrAddress),\n getBalanceForAddress: async (_learnCard, walletAddress, symbolOrAddress) =>\n getBalance(walletAddress, symbolOrAddress),\n\n transferTokens: async (_learnCard, tokenSymbolOrAddress, amount, toAddress) => {\n if (!provider) provider = getProvider();\n\n if (tokenSymbolOrAddress === 'ETH') {\n const transaction = {\n to: toAddress,\n\n // Convert ETH to wei\n value: ethers.utils.parseEther(amount.toString()),\n };\n\n return (await ethersWallet.sendTransaction(transaction)).hash;\n }\n\n const tokenAddress = await getTokenAddress(tokenSymbolOrAddress);\n if (!tokenAddress) {\n throw new Error(\n `Unable to determine token address for \\\"${tokenSymbolOrAddress}\\\"`\n );\n }\n\n const tokenContract = new ethers.Contract(tokenAddress, ERC20ABI, ethersWallet);\n\n return (\n await tokenContract.transfer(\n toAddress,\n await parseUnits(\n amount.toString(),\n tokenContract.address,\n defaultTokenList,\n await getChainIdFromProvider(provider)\n )\n )\n ).hash;\n },\n\n getGasPrice: async () => {\n if (!provider) provider = getProvider();\n\n return ethers.utils.formatUnits(await provider.getGasPrice());\n },\n\n /* Configuration-type methods */\n getCurrentNetwork: () => {\n return network;\n },\n changeNetwork: (_learnCard, _network: ethers.providers.Networkish) => {\n const oldNetwork = network;\n try {\n network = _network;\n provider = getProvider();\n } catch (e) {\n network = oldNetwork;\n provider = getProvider();\n throw e;\n }\n },\n addInfuraProjectId: (_learnCard, infuraProjectIdToAdd) => {\n infuraProjectId = infuraProjectIdToAdd;\n provider = getProvider();\n },\n },\n };\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, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n", "'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n", "'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n", "'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n", "if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n", "'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '<EC Point Infinity>';\n return '<EC Point x: ' + this.x.fromRed().toString(16, 2) +\n ' y: ' + this.y.fromRed().toString(16, 2) + '>';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '<EC JPoint Infinity>';\n return '<EC JPoint x: ' + this.x.toString(16, 2) +\n ' y: ' + this.y.toString(16, 2) +\n ' z: ' + this.z.toString(16, 2) + '>';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n", "'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n", "'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n", "'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n", "'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '<Key priv: ' + (this.priv && this.priv.toString(16, 2)) +\n ' pub: ' + (this.pub && this.pub.inspect()) + ' >';\n};\n", "'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n", "'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n", "'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n", "import _ec from \"elliptic\";\nvar EC = _ec.ec;\nexport { EC };\n//# sourceMappingURL=elliptic.js.map", 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, 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, null, "import { ethers } from 'ethers';\n\nimport { Token, TokenList } from './types';\n\nexport const isAddress = (maybeAddress: string) => {\n return maybeAddress.startsWith('0x') && maybeAddress.length === 42;\n};\n\n/* From Ethereum-compatible numbers to human-readable numbers */\nexport const formatUnits = async (\n units: ethers.BigNumberish,\n symbolOrAddress: string,\n tokenList: TokenList,\n chainId: number\n) => {\n const token = await getTokenFromSymbolOrAddress(symbolOrAddress, tokenList, chainId);\n\n return ethers.utils.formatUnits(units, token?.decimals);\n};\n\n/* From human-readable numbers to Ethereum-compatible numbers */\nexport const parseUnits = async (\n units: string,\n symbolOrAddress: string,\n tokenList: TokenList,\n chainId: number\n) => {\n const token = await getTokenFromSymbolOrAddress(symbolOrAddress, tokenList, chainId);\n\n return ethers.utils.parseUnits(units, token?.decimals);\n};\n\nexport const getTokenFromSymbolOrAddress = async (\n symbolOrAddress: string,\n tokenList: TokenList,\n chainId: number\n): Promise<Token | undefined> => {\n let token;\n if (isAddress(symbolOrAddress)) {\n token = await getTokenFromAddress(symbolOrAddress, tokenList, chainId);\n } else {\n token = await getTokenFromSymbol(symbolOrAddress, tokenList, chainId);\n }\n return token;\n};\n\nconst getTokenFromAddress = async (address: string, tokenList: TokenList, chainId: number) => {\n const token = tokenList.find(token => token.chainId === chainId && token.address === address);\n\n return token;\n};\n\nconst getTokenFromSymbol = async (symbol: string, tokenList: TokenList, chainId: number) => {\n const token = tokenList.find(\n token => token.chainId === chainId && token.symbol.toUpperCase() === symbol.toUpperCase()\n );\n\n return token;\n};\n\nexport const getChainIdFromProvider = async (provider: ethers.providers.Provider) => {\n return (await provider.getNetwork()).chainId;\n};\n", "export const hardcodedTokens = [\n {\n name: 'USDCoin',\n address: '0x07865c6e87b9f70255377e024ace6630c1eaa37f',\n symbol: 'USDC',\n decimals: 6,\n chainId: 5,\n logoURI:\n 'https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png',\n extensions: {\n bridgeInfo: {\n '10': {\n tokenAddress: '0x7F5c764cBc14f9669B88837ca1490cCa17c31607',\n },\n '137': {\n tokenAddress: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174',\n },\n '42161': {\n tokenAddress: '0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8',\n },\n },\n },\n },\n];\n\nexport default hardcodedTokens;\n"],
|
5
|
+
"mappings": "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KAAK,KAAK,GAAG,IAAK;AAClC,cAAO,MAAM,KAAK,KAAK,KAAK,GAAG,IAAK;AACpC,cAAO,MAAM,KAAK,KAAK,KAAK,GAAG,IAAK;AACpC,aAAM,KAAK,KAAK,KAAK,KAAK,GAAG,IAAK;AAClC,aAAM,KAAK,KAAK,KAAK,KAAK,GAAG,IAAK;AAClC,cAAO,MAAM,KAAK,KAAK,KAAK,GAAG,IAAK;AACpC,cAAO,MAAM,KAAK,KAAK,KAAK,GAAG,IAAK;AACpC,aAAM,KAAK,KAAK,KAAK,KAAK,GAAG,IAAK;AAClC,aAAM,KAAK,KAAK,KAAK,KAAK,GAAG,IAAK;AAClC,cAAO,MAAM,KAAK,KAAK,KAAK,GAAG,IAAK;AACpC,cAAO,MAAM,KAAK,KAAK,KAAK,GAAG,IAAK;AACpC,aAAM,KAAK,KAAK,KAAK,KAAK,GAAG,IAAK;AAClC,aAAM,KAAK,KAAK,KAAK,KAAK,GAAG,IAAK;AAClC,cAAO,MAAM,KAAK,KAAK,KAAK,GAAG,IAAK;AACpC,cAAO,MAAM,KAAK,KAAK,KAAK,GAAG,IAAK;AACpC,aAAM,KAAK,KAAK,KAAK,KAAK,GAAG,IAAK;AAClC,aAAM,KAAK,KAAK,KAAK,KAAK,GAAG,IAAK;AAClC,cAAO,MAAM,KAAK,KAAK,KAAK,GAAG,IAAK;AACpC,cAAO,MAAM,KAAK,KAAK,KAAK,GAAG,IAAK;AACpC,aAAM,KAAK,KAAK,KAAK,KAAK,GAAG,IAAK;AAClC,aAAM,KAAK,KAAK,KAAK,KAAK,GAAG,IAAK;AAClC,cAAO,MAAM,KAAK,KAAK,KAAK,GAAG,IAAK;AACpC,cAAO,MAAM,KAAK,KAAK,KAAK,GAAG,IAAK;AACpC,aAAM,KAAK,KAAK,KAAK,KAAK,GAAG,IAAK;AAClC,aAAM,KAAK,KAAK,KAAK,KAAK,GAAG,IAAK;AAClC,cAAO,MAAM,KAAK,KAAK,KAAK,GAAG,IAAK;AACpC,cAAO,MAAM,KAAK,KAAK,KAAK,GAAG,IAAK;AACpC,aAAM,KAAK,KAAK,KAAK,KAAK,GAAG,IAAK;AAClC,aAAM,KAAK,KAAK,KAAK,KAAK,GAAG,IAAK;AAClC,cAAO,MAAM,KAAK,KAAK,KAAK,G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,IAAM,KAAM,IAAM,IAAM,KAAM,KAAM,KAAM,IAAM,KAAM,IAAM,IAAM,KAAM,IAAM,KAAM,IAAM,KAAM,IAAM,IAAM,KAAM,KAAM,IAAM,KAAM,KAAM,IAAM,KAAM,IAAM,IAAM,KAAM,KAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAM,KAAM,KAAM,IAAM,IAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,IAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,IAAM,GAAM,KAAM,IAAM,IAAM,IAAM,IAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,IAAM,IAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,IAAM,KAAM,IAAM,KAAM,IAAM,IAAM,KAAM,IAAM,KAAM,EAAI;AACvgD,UAAI,KAAI,CAAC,IAAM,GAAM,KAAM,KAAM,IAAM,IAAM,KAAM,IAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,IAAM,KAAM,KAAM,IAAM,KAAM,IAAM,IAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,IAAM,KAAM,KAAM,IAAM,IAAM,KAAM,IAAM,KAAM,IAAM,IAAM,KAAM,KAAM,IAAM,GAAM,IAAM,KAAM,KAAM,IAAM,KAAM,IAAM,KAAM,KAAM,IAAM,KAAM,IAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,IAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,IAAM,KAAM,KAAM,KAAM,KAAM,IAAM,IAAM,IAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,IAAM,GAAM,KAAM,KAAM,IAAM,GAAM,KAAM,IAAM,IAAM,KAAM,KAAM,IAAM,IAAM,GAAM,KAAM,KAAM,KAAM,GAAM,GAAM,IAAM,KAAM,KAAM,IAAM,KAAM,IAAM,IAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,IAAM,KAAM,IAAM,KAAM,KAAM,KAAM,IAAM,KAAM,IAAM,KAAM,IAAM,IAAM,KAAM,KAAM,KAAM,KAAM,IAAM,IAAM,KAAM,IAAM,KAAM,IAAM,KAAM,IAAM,IAAM,IAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,IAAM,KAAM,KAAM,IAAM,KAAM,GAAM,KAAM,IAAM,KAAM,IAAM,IAAM,IAAM,IAAM,KAAM,KAAM,IAAM,IAAM,IAAM,KAAM,KAAM,IAAM,KAAM,IAAM,IAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,IAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,IAAM,KAAM,IAAM,IAAM,IAAM,GAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAI;AAGvgD,UAAI,KAAK,CAAC,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,GAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,UAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,WAAY,WAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,SAAU;AACxgG,UAAI,KAAK,CAAC,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,GAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,YAAY,YAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,UAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,SAAU;AACxgG,UAAI,KAAK,CAAC,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,UAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,UAAY,YAAY,WAAY,YAAY,WAAY,YAAY,UAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,GAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,WAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,SAAU;AACxgG,UAAI,KAAK,CAAC,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,UAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,UAAY,YAAY,WAAY,YAAY,WAAY,YAAY,UAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,GAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,WAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,SAAU;AAGxgG,UAAI,KAAK,CAAC,YAAY,YAAY,WAAY,WAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,WAAY,UAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,UAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,GAAY,WAAY,WAAY,WAAY,YAAY,YAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAU;AACxgG,UAAI,KAAK,CAAC,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,WAAY,UAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,GAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,WAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,UAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,UAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAU;AACxgG,UAAI,KAAK,CAAC,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,UAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,GAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,YAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,UAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAU;AACxgG,UAAI,KAAK,CAAC,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,UAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,UAAY,YAAY,UAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,UAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,GAAY,YAAY,WAAY,WAAY,YAAY,WAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,WAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,UAAU;AAGxgG,UAAI,KAAK,CAAC,GAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,WAAY,YAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,UAAY,WAAY,WAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAU;AACxgG,UAAI,KAAK,CAAC,GAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,YAAY,WAAY,UAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,YAAY,WAAY,UAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAU;AACxgG,UAAI,KAAK,CAAC,GAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,WAAY,WAAY,WAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,UAAY,WAAY,WAAY,YAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,UAAY,WAAY,WAAY,YAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAU;AACxgG,UAAI,KAAK,CAAC,GAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,WAAY,WAA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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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",
|
6
6
|
"names": []
|
7
7
|
}
|